Verso do conhecimento zero: um backdoor no zk-SNARK que não pode ser detectado

Usando o protocolo de evidência de divulgação zero da família SNARK, você nunca conhece as regras do jogo. Essas regras são estabelecidas pelos participantes no procedimento para gerar parâmetros confiáveis ​​do sistema, mas após sua conclusão, não é possível verificar essas regras. Você pode acreditar na correção da geração, mas se você não participou dela, não possui cem por cento de garantias.



Recentemente, vários protocolos de conhecimento zero foram mencionados na comunidade blockchain (para obter uma idéia geral sobre eles, recomendo este artigo ): principalmente no contexto de privacidade, menos frequentemente no contexto de escalabilidade e outros.

Um dos mais estudados e, mais importante, implementado é a família de protocolos zk-SNARK (Argumento não interativo sucinto de conhecimento zero). Esse protocolo é usado, em particular, na criptomoeda Zcash. A popularidade de SNARK é justificada: o protocolo nos permite provar fatos com divulgação zero, as evidências são relativamente pequenas e tudo isso com a segurança garante que a criptografia moderna nas curvas elípticas nos fornece.

No entanto, não houve desvantagens, como sempre: a principal desvantagem dessa família de protocolos zk é a necessidade de gerar parâmetros iniciais (confiáveis) do sistema - esse processo também é chamado de cerimônia. Afinal, os parâmetros secretos a serem destruídos são usados ​​para geração - eles são chamados tóxicos. O principal problema é que, se os parâmetros tóxicos forem preservados, a pessoa que os possui poderá provar fatos falsos (no caso do Zcash, gerar criptomoeda a partir do ar).

Geração inicial de parâmetros


Além disso, a matemática subjacente aos protocolos SNARK será apenas superficialmente afetada. Se você estiver interessado em resolver o problema, sugiro uma série de artigos de Vitalik Buterin sobre esse tópico.

Vejamos o processo de geração de parâmetros confiáveis. Portanto, temos uma declaração do problema, cuja solução queremos provar com zero divulgação. Por exemplo, queremos testar o conhecimento da raiz de uma equação quadrática:

x26x+5=0


De acordo com o protocolo, devemos levar essa equação para a forma QAP (Quadratic Arithmetic Programs). Além disso, para gerar e verificar evidências, é necessário obter os parâmetros iniciais. Vamos deixar de fora de parênteses como os parâmetros confiáveis ​​são obtidos do QAP, quais são esses parâmetros e como, com sua ajuda, as evidências podem ser verificadas para não se aprofundar em matemática pesada. Observamos apenas que os parâmetros são apresentados como pontos em uma curva elíptica:


Eles são obtidos a partir da declaração do problema na forma de QAP usando a operação irreversível de multiplicação em uma curva elíptica usando parâmetros tóxicos.

Agora que os parâmetros iniciais foram criados, podemos começar a trabalhar com as evidências. No nosso caso, podemos gerar e verificar a prova de que a raiz da equação é conhecida (por exemplo, x=1) Além disso, a prova não revelará o valor do segredo (a raiz da equação) e consistirá em vários pontos da curva elíptica.

No entanto, em virtude da matemática subjacente ao protocolo, se os parâmetros tóxicos forem preservados por alguém após a cerimônia, essa pessoa poderá provar fatos falsos. Voltando ao nosso exemplo, podemos provar que 2 é a raiz da equação, embora esse obviamente não seja o caso.

A cerimônia


Projetos sérios usando protocolos SNARK estão bem cientes do problema dos parâmetros tóxicos e levam a sério a correção do procedimento para gerar os parâmetros iniciais. O exemplo mais famoso é a cerimônia de Zcash .

A primeira cerimônia foi realizada em outubro de 2016, com a participação de 6 desenvolvedores famosos da comunidade de criptomoedas. O protocolo da cerimônia fornece garantias de segurança suficientes. Ou seja, se pelo menos um participante da cerimônia for honesto - destrói corretamente sua parte dos parâmetros tóxicos - e não for invadido, a cerimônia estará segura.

A segunda e mais avançada cerimônia de geração de parâmetros confiáveis ​​foi realizada em 2017-2018. Já consistia em duas etapas, na primeira parte (Poderes de Tau) participaram 87 pessoas e na parte final (Sapling MPC) mais de 90 pessoas. Como no caso da cerimônia original, com a honestidade de pelo menos um participante, a cerimônia pode ser considerada segura. Uma característica importante da segunda cerimônia foi que qualquer pessoa poderia se tornar um participante. Assim, todos tiveram a chance de obter 100% de garantia da correção do protocolo.

Em conclusão, vale ressaltar que a criticidade da cerimônia e as ameaças decorrentes dela devem ser consideradas separadamente para cada sistema específico. E, ao mesmo tempo, para todos os sistemas que usam protocolos SNARK, é necessário um procedimento confiável para gerar parâmetros iniciais com garantias para a destruição de parâmetros tóxicos.

Source: https://habr.com/ru/post/pt434720/


All Articles