Noite tarde, rolando o feed em vez de dormir, e acabei caindo numa página de documentação do Rust — de todas as coisas. Enterrado nos créditos:

a primeira implementação em Rust de PLONK foi construída por @Dusk . Não adotada, não derivada. Feita primeiro.

PLONK importa porque do que substituiu. Sistemas mais antigos de zk-SNARK como o Groth16 precisam de uma nova cerimônia de configuração confiável para cada circuito — um ritual fresco e sensível toda vez que a lógica muda. A configuração do PLONK é universal:

uma string de referência estruturada, reutilizável em circuitos arbitrários, e atualizável, o que significa que qualquer pessoa pode continuar adicionando aleatoriedade ao longo do tempo para fortalecer ainda mais a confiança nela.

A implementação do Dusk roda isso sobre as curvas BLS12-381 e JubJub, usando compromissos polinomiais Kate/KZG10 para manter o tamanho das provas constante, não importa quão complexo o circuito fique. Os benchmarks no repositório mostram verificação em torno de 6 milissegundos, independentemente do tamanho do circuito — o ponto inteiro de "succinct" realmente entregue, não apenas prometido.

aqui está a tensão com a qual vale a pena ficar: PLONK ainda precisa dessa configuração confiável inicial, universal ou não. Se a aleatoriedade da cerimônia alguma vez for totalmente comprometida, todo circuito construído sobre ela herda esse risco, para sempre. O Dusk escolheu velocidade e reutilização em vez da garantia de "nenhuma configuração confiável" que alguns outros sistemas de provas oferecem.

toda transação do Hedger, toda prova do XSC, cada nota Phoenix protegida, no fim das contas, passa por isso. Contratos protegidos pelo $DUSK são tão sólidos quanto este sistema de provas por baixo deles. Vale o custo-benefício, ou conveniência sempre acaba custando algo em criptografia?#dusk $DUSK @Dusk