A Dusk Network é mais do que apenas mais uma moeda de privacidade. É um esforço consciente para criar uma blockchain na qual transações financeiras do mundo real podem ocorrer sem revelar quem está enviando o quê para quem e por quê. Para alcançar isso, a rede depende fortemente de uma lista restrita de primitivos criptográficos muito específicos: compromissos de Pedersen, Bulletproofs, EdDSA, bLSAG, assinaturas BLS e provas de conhecimento zero em geral.

Estes não são selecionados porque são da moda. Eles são selecionados porque cada um aborda um problema específico que não pode ser resolvido por ferramentas mais simples (ECDSA básico, hashes básicos, chaves públicas básicas) sem comprometer a privacidade ou o desempenho.

Posso te levar por cada componente e explicar a necessidade do mundo real que levou à sua criação e como todos eles funcionam juntos no design do Dusk.

1. Compromissos de Pedersen - Ocultando valores enquanto ainda é possível provar que eles somam

Suponha que você quisesse enviar fundos na cadeia, mas não quisesse que o valor fosse visível. No entanto, a rede ainda precisa ser capaz de verificar que o total de dinheiro que entra é igual ao total de dinheiro que sai (sem inflação, sem criação mágica de dinheiro).

Um esquema simples de criptografia de chave pública permitiria que você ocultasse o valor. No entanto, então você nunca poderia provar que os dois valores ocultos somavam algo.

Compromissos de Pedersen resolvem exatamente este problema.

Você escolhe dois elementos de grupo G e H, onde a relação do logaritmo discreto entre H e G é desconhecida (na prática, H é computado a partir de G via um hash-para-ponto para que ninguém saiba o log). Para se comprometer a um valor x, você calcula C = rG + xH.

A "magia" aqui é:

  • Ocultação: Mesmo que um atacante tenha poder computacional ilimitado, ele não pode descobrir x a partir de C (já que isso exigiria resolver o problema do logaritmo discreto para H).

  • Vinculação: Você não pode abrir o mesmo C para dois valores diferentes (dificuldade do logaritmo discreto novamente).

  • Homomorfismo aditivo: C(x1, r1) + C(x2, r2) = C(x1+x2, r1+r2). Você pode adicionar compromissos sem conhecer os valores.

No Dusk, isso é usado para cada saída de transação confidencial. O remetente se compromete com a quantia que está enviando e a quantia que está recebendo (o troco). A rede vê apenas os compromissos, mas pode provar que eles somam zero usando o homomorfismo. Nenhum valor vai para a cadeia de forma clara.

O Pedersen Vetorial aplica o mesmo conceito a múltiplos valores de uma só vez (quantidade + ofuscação + campo de memo + qualquer outra coisa que você queira ocultar junto). É por isso que o artigo apresenta a forma vetorial - o Dusk frequentemente precisa se comprometer a múltiplos escalares de uma vez.

2. Bulletproofs - Provando "este número oculto está entre 0 e 2⁶⁴" sem revelá-lo

Com números ocultos vem o próximo desafio: como provar que o número é não negativo (ou dentro de um intervalo válido) sem revelar o número em si?

Provas de intervalo tradicionais (como nas antigas transações confidenciais no Monero antes dos Bulletproofs) eram massivas - vários kilobytes por saída.

Os Bulletproofs reduziram isso para ~2 KB para um intervalo de 64 bits, e, o mais importante, sem configuração confiável.

A chave para a eficiência dos Bulletproofs é que eles provam afirmações sobre circuitos aritméticos usando provas de produto interno. O provador e o verificador operam em vetores cujo produto interno representa a restrição de intervalo. O tamanho da prova é meramente logarítmico no tamanho em bits do intervalo.

No Dusk, os Bulletproofs são usados para provar:

  • Os valores das transações estão em [0, 2⁶⁴)

  • Cálculo correto do hash de Poseidon (usado para compromissos de notas) em um circuito

  • Vários outros pequenos testes de integridade do circuito

Poseidon é selecionado especificamente por sua adequação para circuitos aritméticos (baixa profundidade multiplicativa), que mantém o circuito Bulletproof pequeno e eficiente para provar/verificar.

O tempo de verificação é linear em relação ao tamanho do circuito, mas já que os circuitos que o Dusk emprega são muito pequenos (principalmente chamadas de Poseidon), isso continua viável mesmo em hardware móvel.

3. Esquemas de assinatura - os vários papéis que desempenham no Dusk

EdDSA - eficiente, determinístico, autenticação de mensagem não manipulável

Para mensagens regulares de ponto a ponto (fofocas, anúncios de blocos, e assim por diante), o Dusk emprega EdDSA na Curve25519.

Por que não ECDSA?

EdDSA é determinístico → nenhuma aleatoriedade ruim pode revelar a chave privada.

A curva de Edwards torcida fornece aritmética mais rápida e leis de adição completas (sem casos especiais).

  • A assinatura consiste em apenas dois elementos de grupo - muito compacta e eficiente para verificar.

  • É o esquema preferido para qualquer coisa que não exija anonimato.

  • bLSAG (Assinaturas Anônimas de Grupo Espontâneas Ligáveis) - gastos anônimos com proteção contra gastos duplicados

  • Esta é a variante de assinatura de anel usada para gastar notas.

Você tem um conjunto de chaves públicas (o anel). Você prova que conhece a chave secreta para uma delas, sem revelar qual. O tamanho da assinatura é constante, independentemente do tamanho do anel.

A vinculabilidade é fornecida pela imagem da chave: um valor determinístico computado a partir da chave secreta, e as imagens de chave são únicas para cada chave. Se você tentar gastar o mesmo bilhete duas vezes, as imagens de chave combinam → gasto duplo detectado.

O componente "espontâneo" indica que não há processo de configuração, e qualquer um pode escolher qualquer anel em tempo real. O componente "Back" se refere à solução de Adam Back que possibilitou a vinculabilidade sem comprometer a anonimidade.

Isso é o que permite que o Dusk tenha transações anônimas como o Monero, mas também permite a detecção de gastos duplicados na cadeia.

Assinaturas BLS - agregação para consenso

As assinaturas BLS (Boneh-Lynn-Shacham) vivem em curvas amigáveis à emparelhamento (BN-254 ou BLS12-381). O emparelhamento permite a agregação de muitas assinaturas em uma única assinatura curta que verifica contra a chave pública agregada.

Em $DUSK , isso é aplicado na camada de consenso: centenas de validadores podem assinar o mesmo bloco, e suas assinaturas são agregadas em tempo real, deixando apenas uma assinatura na cadeia. O tamanho do bloco permanece pequeno mesmo com milhares de signatários.

A desvantagem é que as assinaturas BLS precisam de uma configuração confiável para os parâmetros da curva (ou cerimônia MPC), mas depois disso, é muito poderosa.

4. Provas de conhecimento zero - a filosofia geral

Todos os blocos de construção acima são, em última análise, empregados dentro de provas maiores de conhecimento zero.

As provas de conhecimento zero de $DUSK devem cumprir três propriedades (que são explicitamente declaradas no artigo):

  • Completude - provador honesto sempre convence verificador honesto.

  • Solidez - provador trapaceiro não pode convencer verificador, exceto com probabilidade negligenciável.

  • Conhecimento zero - verificador não aprende nada além da verdade da afirmação.

A explicação do porquê essas três propriedades são absolutamente essenciais é simples: em uma moeda de privacidade, a prova é literalmente a única coisa entre a privacidade financeira do usuário e a transparência completa. Se a solidez for quebrada, então alguém pode imprimir dinheiro falso. Se o conhecimento zero for quebrado, então todo o ponto da privacidade é inútil.

O Dusk emprega uma mistura de Bulletproofs (para provas de intervalo e circuito) e outros métodos amigáveis a SNARK dentro de suas provas de transação. Isso significa que o observador pode ver apenas a prova e os compromissos, enquanto tudo o mais permanece oculto.

Por que este conjunto particular de ferramentas?

Não é possível fazer tudo com um único primitivo. O esquema de Pedersen lhe dá anonimato + vinculação + aditividade. Os Bulletproofs fornecem provas de intervalo e circuito eficientes em cima desses compromissos. O bLSAG proporciona anonimato para gastos. O BLS oferece consenso eficiente. O EdDSA fornece assinaturas rápidas para o dia a dia. Todos eles se combinam para criar um sistema em camadas onde cada camada resolve exatamente o problema que a camada acima não consegue resolver.

É por isso que o design do Dusk parece "superdimensionado" em comparação a outras blockchains mais simples - porque é um conjunto de problemas mais difíceis de resolver. A maioria das outras blockchains tem que abrir mão da privacidade ou escalabilidade. O Dusk está tentando preservar ambos, e isso requer o uso deste conjunto particular de ferramentas criptográficas.

#dusk $DUSK @Dusk