0Pricing
Cryptology Academy · Aula

Protocolos Sigma e identificação de Schnorr

Implemente um protocolo Sigma e acompanhe o funcionamento da prova de Schnorr.

Protocolos Sigma e identificação de Schnorr é uma aula grátis de Cryptology Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cryptology Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cryptology Academy inclui 4 aulas no total.

Estrutura de um protocolo Sigma

Um protocolo Sigma tem 3 mensagens: (1) Compromisso: o provador envia um compromisso com um valor aleatório. (2) Desafio: o verificador envia um desafio aleatório. (3) Resposta: o provador envia uma resposta calculada a partir do desafio e do segredo. O verificador aceita ou rejeita.

Identificação de Schnorr

O provador conhece o segredo x (chave privada); chave pública = g^x mod p (ou ponto X = x*G em uma curva elíptica). Objetivo: demonstrar conhecimento de x sem revelá-lo. Esta é uma prova de conhecimento do logaritmo discreto.

Etapas do protocolo de Schnorr

(1) O provador escolhe um r aleatório e envia o compromisso R = r*G. (2) O verificador envia o desafio c (inteiro aleatório). (3) O provador envia a resposta s = r + c*x. (4) O verificador verifica se s*G == R + c*X. Se sim, aceita. O provador conhece x; a resposta s só pode ser calculada com x.

Análise de segurança

Completude: um provador honesto sempre satisfaz s*G = r*G + c*x*G = R + c*X. Solidez: duas transcrições com o mesmo R, mas com desafios diferentes c e c', produzem s e s', a partir dos quais é possível recuperar x = (s-s')/(c-c') — portanto, um trapaceiro não consegue produzir duas respostas válidas para o mesmo R.

Conhecimento zero de Schnorr

Simulador (sem conhecer x): escolha s e c aleatórios e defina R = s*G - c*X. Essa distribuição de transcrições (R, c, s) é válida. O verificador não consegue distinguir transcrições reais das simuladas — Schnorr oferece conhecimento zero para verificadores honestos.

Transformação de Fiat-Shamir

Torne Schnorr não interativo: substitua o desafio do verificador por c = resumo(R || mensagem). O provador calcula c por conta própria e responde. Resultado: uma prova com 2 elementos (R, s) que qualquer pessoa pode verificar. Este é o esquema de assinatura de Schnorr.

Assinaturas de Schnorr

Assinar(x, m): r ← aleatório; R = r*G; c = resumo(R||m); s = r + c*x. Assinatura = (R, s). Verificar: s*G == R + resumo(R||m)*X. Compacta (64 octetos para P-256), verificável em lote e com segurança demonstrável no ROM. Adotada no Taproot do Bitcoin (BIP-340).

Compromissos de Pedersen

C = r*G + v*H, onde H é um segundo gerador independente. Compromete o valor v usando a aleatoriedade r. Vinculação: não é possível abrir o compromisso para um v diferente (logaritmo discreto). Ocultação: C tem distribuição uniforme. Usado em provas de intervalo baseadas em Schnorr e em Bulletproofs.

Composição: provas AND

Demonstrar conhecimento de x1 AND x2 simultaneamente: execute dois protocolos de Schnorr com o mesmo desafio (compartilhe o desafio por meio de Fiat-Shamir). O verificador aceita somente se ambas as subprovas forem válidas. Isso permite demonstrar várias afirmações em uma única interação.

Composição: provas OR

Demonstrar conhecimento de x1 OR x2 sem revelar qual deles: use o simulador para um dos ramos a fim de calcular uma transcrição falsa e depois divida o desafio entre os dois. O verificador vê duas transcrições aparentemente válidas cuja soma é igual ao desafio real. São chamadas de «assinaturas de anel».

Aplicações

Identificações Schnorr: passaportes eletrônicos (protocolo PACE). Assinaturas Schnorr: Bitcoin Taproot, Monero (RingCT usa provas OR de Schnorr), protocolo Signal (acordo de chaves X3DH). Compromissos de Pedersen: Transações confidenciais, Bulletproofs e criptografia de notas Sapling do Zcash.

Verificação rápida

No protocolo de identificação de Schnorr, o que o verificador verifica na etapa final?

Recapitulação

Protocolos Sigma: compromisso–desafio–resposta. Schnorr demonstra conhecimento de um logaritmo discreto. Fiat-Shamir torna o protocolo não interativo (assinatura Schnorr). A seguir: provas SNARK de conhecimento zero para provas não interativas sucintas.

Perguntas Frequentes

A aula “Protocolos Sigma e identificação de Schnorr” é grátis?

Sim — o texto completo de “Protocolos Sigma e identificação de Schnorr” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cryptology Academy, atualize para CoddyKit PRO. O curso de Cryptology Academy inclui 4 aulas no total.

O que vou aprender em “Protocolos Sigma e identificação de Schnorr”?

Implemente um protocolo Sigma e acompanhe o funcionamento da prova de Schnorr. Você pratica Cryptology Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Cryptology Academy?

Nenhuma experiência prévia é necessária. Cryptology Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Protocolos Sigma e identificação de Schnorr”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Cryptology Academy?

Sim. Cada aula de Cryptology Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Intuição sobre ZKP: a caverna de Ali Babá
  2. Protocolos Sigma e identificação de Schnorr
  3. zk-SNARKs: argumentos sucintos não interativos
  4. Aplicações de ZKP: ZK Rollups e moedas de privacidade
← Voltar para Cryptology Academy