Hoje quero me aprofundar em provas de conhecimento zero, porque posts anteriores apenas esboçaram a ideia.
Uma analogia simples: provar que você tem mais de 18 anos sem mostrar a sua data exata de nascimento. Você não está escondendo se a afirmação é verdadeira — apenas não está divulgando mais do que o necessário para prová-la. Provas de conhecimento zero permitem que um computador faça o equivalente com matemática, em vez de um cartão de identidade.
Tecnicamente, @Dusk depende do PLONK, um sistema de provas que ele ajudou a desenvolver desde seus primeiros dias de testnet, rodando sobre a curva BLS12-381. O PLONK é o que permite que a rede confirme que uma transação ou contrato seguiu as regras sem nunca ver as entradas privadas por trás dessa afirmação.
Mas há um porém, e é um recente que vale a pena mencionar com honestidade. Em abril, pesquisadores de segurança da OtterSec divulgaram uma falha de robustez (soundness) na implementação do PLONK de #dusk : o verificador não estava checando quatro dos compromissos polinomiais do provador, uma lacuna que, em teoria, poderia ter permitido a alguém forjar uma prova para uma transação protegida. A equipe da Dusk resolveu isso adicionando essas verificações ausentes na etapa de verificação.
Menciono isso não para alarmar ninguém, mas porque é um lembrete útil: a criptografia pode ser sólida enquanto o código que a implementa ainda pode ter bugs. A verificação do verificador também importa.
$DUSK $HEMI $TUT
Uma analogia simples: provar que você tem mais de 18 anos sem mostrar a sua data exata de nascimento. Você não está escondendo se a afirmação é verdadeira — apenas não está divulgando mais do que o necessário para prová-la. Provas de conhecimento zero permitem que um computador faça o equivalente com matemática, em vez de um cartão de identidade.
Tecnicamente, @Dusk depende do PLONK, um sistema de provas que ele ajudou a desenvolver desde seus primeiros dias de testnet, rodando sobre a curva BLS12-381. O PLONK é o que permite que a rede confirme que uma transação ou contrato seguiu as regras sem nunca ver as entradas privadas por trás dessa afirmação.
Mas há um porém, e é um recente que vale a pena mencionar com honestidade. Em abril, pesquisadores de segurança da OtterSec divulgaram uma falha de robustez (soundness) na implementação do PLONK de #dusk : o verificador não estava checando quatro dos compromissos polinomiais do provador, uma lacuna que, em teoria, poderia ter permitido a alguém forjar uma prova para uma transação protegida. A equipe da Dusk resolveu isso adicionando essas verificações ausentes na etapa de verificação.
Menciono isso não para alarmar ninguém, mas porque é um lembrete útil: a criptografia pode ser sólida enquanto o código que a implementa ainda pode ter bugs. A verificação do verificador também importa.
$DUSK $HEMI $TUT
