Cardano Foundation mostra como verificar uma prova de conhecimento zero em Cardano

A primeira parte de uma série para desenvolvedores em cinco partes mostra como construir uma prova Groth16 de 192 bytes e verificá-la em Aiken usando operações criptográficas já disponíveis no Plutus V3.

By SongMarketCap

Updated:

Cardano News - Cardano Foundation mostra como verificar uma prova de conhecimento zero em Cardano

Um contrato inteligente em Cardano pode verificar se alguém conhece oito números que satisfazem uma equação sem receber os próprios números. A Cardano Foundation usa esse exemplo para apresentar sua nova série sobre provas de conhecimento zero. O primeiro tutorial acompanha o processo desde escrever a equação como um conjunto de restrições até gerar a prova fora da cadeia e verificá-la em um teste em Aiken.

Oito números privados, um resultado público

O exemplo agrupa oito números em quatro pares. O provador multiplica os dois números de cada par e soma os quatro produtos. A soma deve ser igual a 100. Esse resultado é público enquanto os oito números permanecem privados.

O tutorial expressa o cálculo como cinco restrições matemáticas. Quatro verificam os produtos individuais e a quinta verifica que eles somam o resultado público. Uma prova válida estabelece que o provador conhece um conjunto de números que satisfaz essas restrições sem revelar qual conjunto foi usado.

Como Aiken verifica uma prova Groth16 de 192 bytes

O tutorial gera a prova fora da cadeia. A prova Groth16 consiste em três pontos de curva elíptica que ocupam 192 bytes no formato BLS12-381 compactado usado no exemplo. O verificador confere a prova em relação às entradas públicas e a uma chave de verificação vinculada ao circuito.

O passo a passo termina com um teste em Aiken que usa as mesmas operações BLS12-381 disponíveis para scripts Plutus V3 na rede principal de Cardano. Para tornar o exemplo reproduzível, o tutorial usa valores fixos e publicamente conhecidos para a parte normalmente secreta da configuração. Em uma configuração Groth16 de produção, qualquer pessoa que retenha esses valores secretos de configuração poderia forjar provas.

Por que a verificação em cadeia é importante para Cardano

Os desenvolvedores de Cardano podem incorporar um verificador Groth16 em um contrato inteligente Aiken usando as operações existentes do Plutus V3. Um aplicativo pode gerar a prova fora da cadeia e então passá-la ao contrato para que o validador decida se uma transação satisfaz uma condição. A prova e quaisquer entradas públicas necessárias ficam disponíveis para o validador, enquanto os dados privados subjacentes podem permanecer fora da cadeia.

Para um aplicativo de credenciais, essa divisão determina o que um usuário precisa divulgar. Um contrato poderia verificar se o titular de uma credencial atende a um requisito de idade sem receber sua data de nascimento, desde que o circuito e o design da credencial imponham a afirmação que está sendo provada.

[NEWSBREAK]

O que as próximas quatro partes abordarão

A segunda parte mostrará como acelerar a geração de provas e como funcionam as cerimônias de configuração em produção. Também comparará Groth16 com outros sistemas de prova e explorará como máquinas virtuais de conhecimento zero podem provar que um programa foi executado corretamente sem exigir que os desenvolvedores projetem um circuito manualmente.

A terceira parte mostrará como provas de propriedade de chave podem ser vinculadas a endereços Cardano. A quarta tratará de divulgação seletiva. Em um exemplo planejado, um titular de credencial prova que tem pelo menos 21 anos sem revelar sua data de nascimento ou endereço de blockchain.

A parte final examinará sistemas de prova resistentes à computação quântica, com foco em abordagens baseadas em reticulados que podem substituir as suposições de curva elíptica usadas em Groth16.