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:
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.