Pular para o conteúdo principal

Por que provas?

Um indexador verifica o blockchain ZCash e constrói um registro de nomes. Mas por que alguém deveria confiar nisso? E se:

  • Fabrica um cadastro que nunca aconteceu on-chain?
  • Cobra a taxa errada?
  • Registra um nome duas vezes?
  • Altera o estado do registro?

As provas ZK eliminam essas questões. Cada prova é um certificado criptográfico de que o registro foi processado corretamente. Qualquer pessoa pode verificar a prova de forma independente.

O que cada prova verifica

O ZCash Prover usa SP1 - uma máquina virtual de conhecimento zero RISC-V. Para cada transação com domínio, o provador realiza as seguintes verificações dentro do zkVM:

  1. Validade do nome - 1-64 caracteres, letras minúsculas + hifens
  2. Suficiência de taxa - a transação pagou o suficiente ZEC para Comprimento do nome
  3. Integridade do comando do protocolo - todas as condições do protocolo são atendidas
  4. Assinatura Ed25519 – a assinatura sobre memo command é válida
  5. Inserção da árvore Merkle – o nome ainda não existia e a nova raiz do estado está correta

Se alguma verificação falhar, a prova não poderá ser gerada.

Resultados públicos

Cada prova compromete 3 valores que estão permanentemente vinculados a ela:

SaídaDescrição
old_rootRaiz da árvore Merkle antes deste registro
new_rootRaiz da árvore Merkle após este registro
end_block_heightO último bloco ZCash do lote de registro

O block_height fixa a prova em um bloco ZCash específico (como um ponto de verificação). Qualquer pessoa pode procurar transações em um nó ZCash e confirmar o memorando e a correspondência de valor.