Então deixe-me guiá-lo por esta arquitetura completa de privacidade da Dusk. Ela é realmente construída sobre uma pilha específica de primitivas criptográficas, e aqui está a questão: cada uma está fazendo um trabalho que nenhuma das outras consegue fazer.
Comece com a BLS12-381 — é o que @Dusk_Foundation usa para dar suporte a assinaturas e à maior parte de sua criptografia relacionada a ZK. Agora, especificamente para a camada de privacidade Phoenix, a Dusk depende de algo chamado JubJub, que é uma curva compatível com SNARKs. E, honestamente, sem isso, as provas shielded na Dusk seriam lentas demais para rodar de forma prática.
Para autenticação através da rede, $DUSK adota assinaturas de Schnorr — uma escolha limpa e bem testada, nada experimental. Agora, dentro dos circuitos ZK da Dusk, o hash é tratado pelo Poseidon, e este foi construído especificamente para permanecer barato em um contexto em que funções de hash mais antigas simplesmente ficam caras muito rápido quando você as coloca dentro de um circuito.
Quando se trata de provas de estado e de associação, #dusk usa uma árvore Merkle esparsa, e toda a camada de prover e verificar roda em PLONK. E, em cima de tudo isso, a Dusk também aplica algo chamado agregação BLS — basicamente ela comprime as assinaturas de um comitê inteiro em um único pacote, em vez de a rede precisar verificar cada uma individualmente.
Deixe-me apenas listar o alinhamento completo para ficar claro:
BLS12-381 — assinaturas e criptografia relacionada a ZK
JubJub — curva compatível com SNARKs que dá suporte à privacidade estilo Phoenix
Schnorr — assinatura e autenticação
Poseidon — hashing compatível com ZK
Árvore Merkle esparsa — provas de associação e de estado
PLONK — prover e verificação ZK
Agregação BLS — comprime assinaturas do comitê em uma
Agora, aqui vai algo que vale a pena ter em mente: nenhuma dessas primitivas, por si só, significa muito apenas por estar lá no papel. A criptografia da Dusk pode estar completamente correta matematicamente e ainda assim ser enfraquecida na prática — pense em serialização ruim, uma verificação de subgrupo perdida, fraca vinculação de transcript ou separação de domínios ignorada. Então, se você realmente está tentando avaliar de forma justa a base criptográfica da Dusk.
Comece com a BLS12-381 — é o que @Dusk_Foundation usa para dar suporte a assinaturas e à maior parte de sua criptografia relacionada a ZK. Agora, especificamente para a camada de privacidade Phoenix, a Dusk depende de algo chamado JubJub, que é uma curva compatível com SNARKs. E, honestamente, sem isso, as provas shielded na Dusk seriam lentas demais para rodar de forma prática.
Para autenticação através da rede, $DUSK adota assinaturas de Schnorr — uma escolha limpa e bem testada, nada experimental. Agora, dentro dos circuitos ZK da Dusk, o hash é tratado pelo Poseidon, e este foi construído especificamente para permanecer barato em um contexto em que funções de hash mais antigas simplesmente ficam caras muito rápido quando você as coloca dentro de um circuito.
Quando se trata de provas de estado e de associação, #dusk usa uma árvore Merkle esparsa, e toda a camada de prover e verificar roda em PLONK. E, em cima de tudo isso, a Dusk também aplica algo chamado agregação BLS — basicamente ela comprime as assinaturas de um comitê inteiro em um único pacote, em vez de a rede precisar verificar cada uma individualmente.
Deixe-me apenas listar o alinhamento completo para ficar claro:
BLS12-381 — assinaturas e criptografia relacionada a ZK
JubJub — curva compatível com SNARKs que dá suporte à privacidade estilo Phoenix
Schnorr — assinatura e autenticação
Poseidon — hashing compatível com ZK
Árvore Merkle esparsa — provas de associação e de estado
PLONK — prover e verificação ZK
Agregação BLS — comprime assinaturas do comitê em uma
Agora, aqui vai algo que vale a pena ter em mente: nenhuma dessas primitivas, por si só, significa muito apenas por estar lá no papel. A criptografia da Dusk pode estar completamente correta matematicamente e ainda assim ser enfraquecida na prática — pense em serialização ruim, uma verificação de subgrupo perdida, fraca vinculação de transcript ou separação de domínios ignorada. Então, se você realmente está tentando avaliar de forma justa a base criptográfica da Dusk.