#dusk $DUSK @Dusk
Eu costumava assumir que, quando o código de uma blockchain é open source, o número de equipes que o implementam não importava de verdade. O protocolo é o protocolo. Se as regras são públicas, qualquer pessoa poderia escrever uma segunda versão, e o fato de que ninguém ainda tinha sentido vontade por um detalhe.
Então fui procurar o software de nó da Dusk e encontrei algo que mudou a forma como eu li todo o projeto.
Existe um único cliente. Rusk, escrito em Rust. A implementação anterior em Go ainda está no GitHub, publicamente marcada como depreciada e não é mais mantida, com uma observação orientando todo mundo a usar o Rusk.
Assim, todo nó na rede executa o mesmo código.
Vale a pena ficar com isso, porque existe um motivo para a abordagem alternativa. O Ethereum incentiva vários clientes independentes, de modo que um bug em um deles não pare a cadeia — os outros continuam produzindo blocos enquanto isso é corrigido. É caro, lento e duplicativo de propósito. A duplicação é a característica de segurança.
Com um único cliente, um bug de consenso não é parcial. Ele é a rede.
Eu não acho que isso seja um erro. Para uma equipe pequena, um cliente excelente é um uso muito melhor de recursos do que dois medianos, e o Rusk foi auditado repetidamente — a biblioteca de nós, a camada de consenso, o protocolo de rede, todos revisados por firmas externas. Concentrar esforços é uma decisão de engenharia defensável.
Mas isso significa que uma cadeia feita para liquidação regulada atualmente não tem diversidade de clientes. A própria coisa que a infraestrutura tradicional de mercado obceca — redundância, caminhos de falha independentes, ausência de um único ponto de falha — é exatamente o que ainda não está lá.
O que eu não consigo saber de fora é se uma segunda implementação sequer está planejada, ou se ela é considerada desnecessária neste estágio de vida da rede. Ambas as respostas seriam plausíveis. Eu só gostaria de saber qual delas é.
A partir daqui, passei a ler "open source" como se não significasse automaticamente resiliente. Código aberto é um convite. Diversidade de clientes é o que acontece quando alguém aceita isso.
Eu costumava assumir que, quando o código de uma blockchain é open source, o número de equipes que o implementam não importava de verdade. O protocolo é o protocolo. Se as regras são públicas, qualquer pessoa poderia escrever uma segunda versão, e o fato de que ninguém ainda tinha sentido vontade por um detalhe.
Então fui procurar o software de nó da Dusk e encontrei algo que mudou a forma como eu li todo o projeto.
Existe um único cliente. Rusk, escrito em Rust. A implementação anterior em Go ainda está no GitHub, publicamente marcada como depreciada e não é mais mantida, com uma observação orientando todo mundo a usar o Rusk.
Assim, todo nó na rede executa o mesmo código.
Vale a pena ficar com isso, porque existe um motivo para a abordagem alternativa. O Ethereum incentiva vários clientes independentes, de modo que um bug em um deles não pare a cadeia — os outros continuam produzindo blocos enquanto isso é corrigido. É caro, lento e duplicativo de propósito. A duplicação é a característica de segurança.
Com um único cliente, um bug de consenso não é parcial. Ele é a rede.
Eu não acho que isso seja um erro. Para uma equipe pequena, um cliente excelente é um uso muito melhor de recursos do que dois medianos, e o Rusk foi auditado repetidamente — a biblioteca de nós, a camada de consenso, o protocolo de rede, todos revisados por firmas externas. Concentrar esforços é uma decisão de engenharia defensável.
Mas isso significa que uma cadeia feita para liquidação regulada atualmente não tem diversidade de clientes. A própria coisa que a infraestrutura tradicional de mercado obceca — redundância, caminhos de falha independentes, ausência de um único ponto de falha — é exatamente o que ainda não está lá.
O que eu não consigo saber de fora é se uma segunda implementação sequer está planejada, ou se ela é considerada desnecessária neste estágio de vida da rede. Ambas as respostas seriam plausíveis. Eu só gostaria de saber qual delas é.
A partir daqui, passei a ler "open source" como se não significasse automaticamente resiliente. Código aberto é um convite. Diversidade de clientes é o que acontece quando alguém aceita isso.