Cryptology Academy · Aula

Funções Aleatórias Verificáveis em Consenso

Compreenda as VRFs e como elas permitem aleatoriedade imprevisível, porém verificável, na eleição de líderes (Algorand, Cardano).

Aula 3 de 413 etapas

Funções Aleatórias Verificáveis em Consenso é uma aula grátis de Cryptology Academy no CoddyKit. Esta é a aula 3 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.

A Necessidade de Aleatoriedade Verificável

Os protocolos de consenso exigem aleatoriedade para a eleição de líderes, a seleção de comitês e a atribuição de fragmentos. A aleatoriedade precisa ter três propriedades: imprevisibilidade, isto é, ninguém pode prever o resultado antes que ele seja revelado; impossibilidade de enviesamento, isto é, nenhum participante pode manipular o resultado em seu benefício; e verificabilidade pública, isto é, qualquer pessoa pode verificar se o resultado está correto sem confiar no gerador. Abordagens ingênuas falham: o número aleatório de um único nó pode ser manipulado, e os esquemas de compromisso e revelação permitem o viés do último participante a revelar seu valor. As Funções Aleatórias Verificáveis (VRFs) resolvem os três requisitos.

Definição Formal de VRF

Uma Função Aleatória Verificável (VRF), introduzida por Micali, Rabin e Vadhan em 1999, é uma função pseudoaleatória que fornece uma prova de correção. Uma VRF tem três algoritmos: KeyGen gera um par de chaves (SK, PK); Provar(SK, alpha) produz (beta, pi), em que beta é o resultado e pi é uma prova; e Verificar(PK, alpha, beta, pi) retorna válido ou inválido. O resultado beta é indistinguível de um valor aleatório para qualquer pessoa que não conheça SK, uma propriedade de pseudoaleatoriedade da VRF, e a prova pi não pode ser falsificada, uma propriedade de unicidade da VRF. O tamanho da prova é O(1), constante independentemente da entrada.

ECVRF: VRF em Curvas Elípticas

A construção de VRF mais amplamente implementada é a ECVRF (IETF RFC 9381), baseada na dificuldade do logaritmo discreto em curvas elípticas. Dada uma chave privada x e uma entrada alpha, o provador calcula H = resumo-para-curva(PK, alpha), mapeando alpha para um ponto da curva, e então gamma = x * H, por multiplicação escalar. O resultado da VRF é beta = keccak(gamma). A prova pi usa um argumento de conhecimento zero semelhante ao de Schnorr: o provador se compromete com um k aleatório, calcula o desafio c = resumo(H, gamma, k*G, k*H), calcula a resposta s = k - c*x e produz pi = (gamma, c, s). A verificação confere as equações de Schnorr e recalcula beta.

VRF no Algorand

Algorand (Silvio Micali et al., 2017) foi pioneira no uso de VRF no consenso da cadeia de blocos. Em cada rodada, cada validador avalia privadamente VRF(SK, round || seed) para obter uma saída aleatória. A saída é comparada a um limiar: se VRF_output < stake_fraction * threshold, o validador é selecionado como membro do comitê ou proponente de bloco. Somente o validador sabe que foi selecionado até transmitir seu bloco/voto junto com a prova VRF. Essa autoseleção criptográfica elimina a necessidade de uma eleição pública de líder, tornando Algorand resistente a ataques direcionados de negação de serviço contra líderes conhecidos que assumirão em breve.

VRF no Ouroboros da Cardano

O Ouroboros Praos da Cardano (a versão atualmente implantada) usa VRF para eleger líderes de intervalo. A cada época, uma nova semente aleatória é derivada da cadeia de blocos. Cada operador de grupo de participação (SPO) avalia VRF(SK, slot || epoch_seed) para cada intervalo da época. Se a saída ficar abaixo de um limiar proporcional à sua participação, o operador se torna o líder do intervalo e pode produzir um bloco. A prova VRF é incluída no cabeçalho do bloco, permitindo que qualquer pessoa verifique se o SPO foi eleito legitimamente. Isso proporciona à Cardano segurança comprovável contra adversários adaptativos que descobrem o cronograma de líderes no meio da época.

VRF versus RANDAO: Compromissos

Ethereum usa RANDAO (assinaturas BLS acumuladas), em vez de VRF, como fonte de aleatoriedade. RANDAO é mais simples — não exige nenhuma primitiva criptográfica adicional além de BLS —, mas é suscetível ao viés do último revelador: um proponente de bloco que consiga prever que sua contribuição para RANDAO produzirá um resultado desfavorável pode omitir seu bloco, arcando com a perda da recompensa do bloco. A eleição baseada em VRF oculta quem foi eleito até que essa pessoa se revele, eliminando completamente esse vetor. O compromisso é que VRF acrescenta complexidade criptográfica (hash para curva, geração de provas), enquanto RANDAO reutiliza a infraestrutura BLS existente.

Chainlink VRF: Aleatoriedade fora da cadeia

Chainlink VRF fornece aleatoriedade verificável como serviço para contratos inteligentes. Um contrato cliente solicita aleatoriedade pagando tokens LINK. Um nó oráculo da Chainlink mantém um par de chaves VRF. O nó avalia ECVRF(SK, seed), em que a semente é derivada do hash do bloco e de um contador fornecido pelo usuário, e então envia (beta, pi) para a cadeia. O contrato coordenador de VRF verifica a prova antes de encaminhar a saída aleatória ao cliente. Isso dá aos contratos inteligentes acesso a uma aleatoriedade resistente à manipulação, sem exigir que a cadeia implemente uma fonte VRF nativa — algo útil para criação de NFT, sorteios e jogos.

VXEdDSA e o protocolo Signal

O protocolo Signal usa VXEdDSA (EdDSA verificável sobre X25519), uma construção VRF sobre Curve25519. Quando um remetente gera uma assinatura de pré-chave de uso único, a VRF é usada para produzir, a partir da mensagem e da chave do remetente, um valor de uso único determinístico, mas imprevisível. Isso evita a reutilização desse valor, que comprometeria a segurança de EdDSA, mantendo as assinaturas verificáveis. A prova VRF permite que o destinatário verifique se o valor foi derivado corretamente, impedindo que o remetente escolha um valor malicioso que pudesse possibilitar ataques de recuperação de chave. VXEdDSA demonstra que VRF é uma ferramenta criptográfica geral, além do consenso.

Funções de atraso verificável versus VRF

Funções de atraso verificável (VDF) às vezes são confundidas com VRF. Uma VDF exige um cálculo sequencial de pelo menos T etapas (propriedade de bloqueio temporal), produzindo uma saída acompanhada de uma prova curta de correção. VDF é usada para mitigar o viés do último revelador no RANDAO: a camada VDF planejada para Ethereum faria com que qualquer tentativa de manipulação exigisse executar uma VDF antecipadamente, o que demora mais do que a janela do ataque. VRF oferece avaliação privada instantânea; VDF oferece avaliação pública lenta. Elas são complementares: VDF impede o viés do último revelador, enquanto VRF impede a previsão do líder.

Modelo de segurança: adversários adaptativos versus estáticos

A seleção por VRF proporciona uma importante melhoria de segurança contra adversários adaptativos. Em PBFT e Tendermint, a identidade do líder é conhecida antecipadamente, seguindo um esquema de rodízio, o que permite que um adversário realize um ataque de negação de serviço distribuído contra o próximo líder antes que ele proponha um bloco. A seleção baseada em VRF mantém a identidade do líder em segredo até que o bloco seja transmitido — nesse momento, o bloco já terá sido proposto, portanto um ataque de negação de serviço chega tarde demais. Isso é chamado de segurança adaptativa ou eleição imprevisível de líderes. A propriedade criptográfica que possibilita isso é o fato de a saída da VRF parecer pseudoaleatória para qualquer pessoa que não possua a chave privada.

Notas de implementação para VRF

Implementar VRF corretamente exige atenção a vários pontos. A conversão de hash para curva deve usar um algoritmo uniforme e de tempo constante (IETF RFC 9380 define métodos padronizados para evitar vazamentos de temporização). O valor k de uso único da VRF na prova deve ser derivado deterministicamente de (SK, alpha) usando RFC 6979 — reutilizar k ou usar um k aleatório fraco expõe a chave secreta, devido à mesma vulnerabilidade da reutilização de valores de uso único em ECDSA. O tamanho da prova para ECVRF-P256-SHA256-TAI é de 80 bytes; para ECVRF-ED25519-SHA512-ELL2, também é de 80 bytes — ambos são adequados para inclusão na cadeia. A propriedade de unicidade da VRF garante que não existam duas provas válidas para o mesmo par (SK, alpha).

Questionário sobre seleção imprevisível por VRF

Por que a eleição de líderes baseada em VRF oferece segurança mais forte do que o agendamento de líderes em rodízio?

Recapitulação sobre VRF no consenso

VRF produz saídas pseudoaleatórias acompanhadas de provas criptográficas de correção, atendendo aos requisitos de imprevisibilidade, ausência de viés e verificabilidade pública. ECVRF (RFC 9381) é a construção padrão sobre curvas elípticas. Algorand usa autoseleção criptográfica baseada em VRF para resistir a adversários adaptativos. Cardano Ouroboros Praos usa VRF para a eleição de líderes em cada intervalo. Chainlink VRF fornece aleatoriedade verificável a contratos inteligentes. VRF complementa VDF, que trata do viés do último revelador, e contrasta com RANDAO, que usa assinaturas BLS acumuladas e apresenta uma conhecida vulnerabilidade relacionada ao último revelador.

Grátis para começar

Aprenda Cryptology Academy com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
67
Aulas
261

Perguntas Frequentes

A aula “Funções Aleatórias Verificáveis em Consenso” é grátis?

Sim — o texto completo de “Funções Aleatórias Verificáveis em Consenso” é 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 “Funções Aleatórias Verificáveis em Consenso”?

Compreenda as VRFs e como elas permitem aleatoriedade imprevisível, porém verificável, na eleição de líderes (Algorand, Cardano). 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 3 de 4.

Quanto tempo leva a aula “Funções Aleatórias Verificáveis em Consenso”?

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. Mecanismos Criptográficos de Prova de Participação
  2. Protocolos BFT: PBFT e Tendermint
  3. Funções Aleatórias Verificáveis em Consenso
  4. Assinaturas BLS e Esquemas de Agregação de Assinaturas
← Voltar para Cryptology Academy