Protocolos de Geração Distribuída de Chaves
Explore os protocolos DKG, que permitem às partes gerar conjuntamente uma chave compartilhada sem que nenhuma delas conheça todo o segredo.
Protocolos de Geração Distribuída de Chaves é 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.
Objetivo e Motivação da DKG
A Geração Distribuída de Chaves (DKG) resolve o problema do distribuidor confiável na criptografia de limiar. Sem a DKG, uma entidade central precisa gerar o par de chaves e distribuir as partes, tendo conhecimento momentâneo da chave privada completa. A DKG permite que n participantes gerem conjuntamente um par de chaves pública e privada por meio de um protocolo no qual nenhum participante individual toma conhecimento da chave privada, nem mesmo o coordenador do protocolo.
DKG de Pedersen (1991)
A DKG de Pedersen foi o primeiro protocolo DKG prático, publicado em 1991. Cada um dos n participantes gera um segredo aleatório s_i e executa um protocolo de Compartilhamento Verificável de Segredos (VSS) para compartilhá-lo. Cada participante divulga compromissos com os coeficientes de seu polinômio. Depois que todos os participantes compartilham suas contribuições, o segredo combinado é a soma de todos os valores s_i, e cada participante detém uma parte dessa soma.
VSS de Feldman como Bloco de Construção
O VSS de Feldman (Compartilhamento Verificável de Segredos de Feldman, 1987) é o principal bloco de construção da maioria dos protocolos DKG. O distribuidor se compromete com os coeficientes do polinômio como elementos do grupo (C_j = g^{a_j} mod p). Cada participante que recebe uma parte f(i) pode verificá-la em relação a esses compromissos, verificando se g^{f(i)} é igual ao produto de C_j^{i^j}. Isso permite que os participantes detectem se o distribuidor enviou partes incorretas.
DKG Joint-Feldman e Limitações
A DKG Joint-Feldman executa o VSS de Feldman em paralelo para todos os n participantes, com cada participante atuando como distribuidor de seu próprio segredo. Em seguida, os participantes apresentam reclamações quando recebem partes inválidas. A chave final é a soma dos segredos dos distribuidores que não foram alvo de reclamações. No entanto, a DKG Joint-Feldman não é segura contra adversários adaptativos que corrompem participantes com base nas mensagens do protocolo, uma vulnerabilidade identificada por Gennaro, Jarecki, Krawczyk e Rabin.
DKG Segura de GJKR
O protocolo DKG de GJKR (Gennaro, Jarecki, Krawczyk e Rabin, 1999 e 2007) solucionou as limitações da Joint-Feldman. A GJKR usa o VSS de Pedersen (compromissos que ocultam informações no sentido teórico da informação) em vez do VSS de Feldman e adiciona rodadas de reclamações nas quais os participantes podem contestar partes inválidas. A DKG resultante é segura contra adversários adaptativos e tornou-se a principal referência teórica para DKG segura.
Rodadas de Comunicação da DKG
A DKG de GJKR exige três rodadas: a rodada de compromissos (cada participante divulga os compromissos do VSS), a rodada de distribuição de partes (os participantes enviam partes uns aos outros ponto a ponto) e a rodada de reclamações (os participantes divulgam reclamações sobre partes inválidas). Os participantes que não conseguem resolver as reclamações são desqualificados. Uma quarta rodada combina as contribuições dos participantes válidos na chave pública final e nas partes distribuídas da chave privada.
DKG nas Chaves de Validadores do Ethereum
O gerenciamento das chaves de validadores do Ethereum usa DKG para a tecnologia de validadores distribuídos (DVT). A EIP-4844 e o ecossistema de DVT (Obol Network, SSV Network) usam assinaturas BLS de limiar sobre BLS12-381 para permitir que comitês de validadores assinem blocos sem que um único operador conheça a chave completa do validador. Isso melhora a tolerância a falhas dos validadores e reduz o risco de penalização decorrente do comprometimento da chave.
Farol de Aleatoriedade Distribuída do DRAND
O DRAND é um farol distribuído de aleatoriedade usado pela cadeia Beacon do Ethereum para a geração imprevisível de números aleatórios. O DRAND executa DKG entre um conjunto de nós da League of Entropy (Cloudflare, EPFL, Protocol Labs etc.) para gerar uma chave BLS de limiar. A cada rodada, nós t-of-n contribuem com assinaturas parciais que se combinam em um valor aleatório imprevisível. Nenhum nó individual pode influenciar ou prever o resultado.
DKG para Schnorr em Comparação com ECDSA
A DKG é muito mais simples para esquemas de limiar Schnorr/EdDSA do que para ECDSA. Nos esquemas de limiar Schnorr, a chave privada distribuída é simplesmente a soma dos segredos dos participantes (x = x1 + x2 + ... + xn), e a chave pública é a soma das partes da chave pública (X = X1 + X2 + ... + Xn). Para ECDSA, a não linearidade significa que a DKG precisa produzir partes multiplicativas, o que exige protocolos mais complexos.
Protocolos de Atualização das Partes da Chave
Partes de chaves de limiar mantidas por muito tempo podem ser comprometidas gradualmente se um adversário corromper participantes lentamente ao longo do tempo. O compartilhamento proativo de segredos (protocolos de atualização) randomiza novamente as partes periodicamente, sem alterar a chave subjacente. Depois de uma atualização, as partes anteriores a ela tornam-se inúteis, limitando a janela de vulnerabilidade. A GJKR e seus derivados incluem protocolos de atualização que seguem a mesma estrutura da DKG inicial.
Implementações Práticas de DKG
A DKG é implementada em vários sistemas de produção. O cliente de DVT do Ethereum, Obol Charon, usa uma cerimônia DKG baseada no VSS de Pedersen sobre BLS12-381. O Silent Shard, da Silence Laboratories, usa DKG para carteiras MPC móveis. A biblioteca dkg-go implementa GJKR para aplicações em Go. A Threshold Network (anteriormente Keep Network) usa DKG em seu serviço de ECDSA de limiar que protege tBTC no Bitcoin.
Questionário sobre a DKG de Pedersen
Qual é a principal propriedade que torna a DKG de Pedersen superior a uma configuração com um único distribuidor confiável?
Recapitulação dos Protocolos DKG
A DKG elimina o distribuidor confiável ao fazer com que todos os n participantes gerem conjuntamente um par de chaves de limiar, sem que nenhum participante conheça a chave privada. Na DKG de Pedersen, cada participante executa VSS sobre sua contribuição. A GJKR adiciona segurança contra adversários adaptativos com rodadas de reclamações. A DKG sustenta a DVT do Ethereum (Obol, SSV), o farol de aleatoriedade DRAND e configurações de carteiras MPC de produção. Os protocolos de atualização ampliam a segurança ao randomizar novamente as partes periodicamente.
Perguntas Frequentes
A aula “Protocolos de Geração Distribuída de Chaves” é grátis?
Sim — o texto completo de “Protocolos de Geração Distribuída de Chaves” é 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 de Geração Distribuída de Chaves”?
Explore os protocolos DKG, que permitem às partes gerar conjuntamente uma chave compartilhada sem que nenhuma delas conheça todo o segredo. 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 “Protocolos de Geração Distribuída de Chaves”?
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
- Esquemas de Assinatura de Limiar: Conceitos
- ECDSA de Limiar: Assinatura Multiparticipante
- Protocolos de Geração Distribuída de Chaves
- Esquemas de Limiar em Blockchains e HSMs