No metrô, o sinal fica falhando de forma intermitente; eu tive que atualizar o documento três vezes para ele carregar. Quanto mais eu lia, mais desperto eu ficava, e percebi que antes fui levado ao lugar errado por aqueles artigos de análise.

Quando o assunto é privacidade no Dusk, todo mundo fala, e sempre é, do esquema da Phoenix para provas de conhecimento zero: note, nullifier, endereços ocultos… parece bem avançado. Mas quase ninguém menciona a camada de rede. O protocolo de broadcast usado pelo Dusk chama-se Kadcast; na base está aquela estrutura do Kademlia, com roteamento em camadas de acordo com a distância entre nós. As mensagens não são enviadas “cegamente” para um grupo inteiro como no gossip tradicional; em vez disso, elas são repassadas em uma rota em que a distância vai aumentando, camada por camada, formando uma árvore de multicast em cascata. Esse desenho foi feito para buscar eficiência — os dados de um artigo citado no whitepaper dizem que dá para economizar bastante banda em comparação com o gossip, e, quando o bloco é criado rápido, também reduzir a taxa de blocos antigos. Números específicos eu não lembro; no fim, eram medições do artigo, não testes próprios do Dusk.

O interessante é que esse desenho também traz um efeito colateral: como a mensagem precisa passar por várias camadas de retransmissão antes de se espalhar, e não é broadcast direto dos nós, fica bem mais difícil tentar deduzir “de onde exatamente essa mensagem surgiu primeiro”. Mas isso é completamente diferente da privacidade de transações sustentada pela criptografia, como a Phoenix. Num caso, a matemática é que aguenta; no outro, a tal imprecisão vem da topologia da rede — e a intensidade, francamente, é de ordens de grandeza.

O mais absurdo é que muitos artigos de divulgação misturam essas duas coisas, dando a entender que o Dusk é todo privativo do começo ao fim. Na verdade, essa opacidade da camada de rede no máximo serve como um “bônus” — e, quando aparece uma investigação mais profissional e uma atribuição de origem de verdade, não chega. Eu também quase caí nisso; por exemplo, quando alguém dizia que a privacidade do Dusk na propagação de mensagens era forte, eu automaticamente assumi que a privacidade das transações também era boa — mas não era. Só quando separei as duas camadas é que eu entendi.

Agora, quando vejo projetos de privacidade, eu sempre faço uma pergunta antes: essa privacidade depende de criptografia ou de estrutura de rede? A força é totalmente diferente.

Vocês, quando fazem análise técnica, também já caíram em alguma armadilha de “misturar as características da camada de rede com a privacidade da camada de aplicação”? Comentem aí na caixa de comentários. #dusk $DUSK @Dusk