#dusk $DUSK @Dusk Dusk 里 há duas séries de sistemas de contas: uma é uma conta comum que pode ser consultada publicamente; a outra é uma conta de privacidade criptografada e escondida. Antes eu ouvia gente dizendo que essas duas partes podem ser convertidas entre si. Desta vez, fui especificamente testar como operar essa função de conversão, e o resto eu não vou analisar.
O fluxo é o seguinte: no nível mais baixo, o Dusk tem um contrato específico responsável pela lógica de transferências. Para que o mesmo token mude de estado — do oculto para o público, ou do público para o oculto — a operação é sempre um único comando de conversão dentro desse contrato. Não é algo simplista e “bruto” como: primeiro sacar o dinheiro oculto e depois depositar novamente uma nova quantia na conta pública. Em vez disso, o mesmo ativo faz a troca de estado diretamente em uma única operação, sem passar por um passo intermediário que possa ser observado externamente de forma separada.
Quando eu testei na testnet, na primeira vez cliquei no sentido errado. Eu queria converter a operação de uma conta oculta para uma conta pública, mas preenchi ao contrário, como se fosse converter do público para o oculto. O dinheiro foi transferido com sucesso, mas o resultado ficou totalmente diferente do que eu queria. Eu só percebi depois de ficar mexendo um pouco, quando entendi que eu tinha invertido as duas direções na interface de operação — não era um problema da própria função de conversão.
Depois de testar, minha impressão é que essa função de conversão é bem suave: é “um passo até o fim”, diferente de algumas soluções que precisam passar por um endereço intermediário para fazer um tipo de alternância semelhante. Mas também notei um detalhe fácil de ignorar: essa conversão só trata da troca do estado do dinheiro em si. Se for um tipo de ativo de valores mobiliários que tenha regras de conformidade vinculadas (por exemplo, ativos que precisam passar por uma lista de aprovação, ou que precisam seguir regras específicas de transferência), então isso segue um conjunto totalmente diferente de mecanismos. Não dá para simplesmente usar essa função de conversão para tratar os dois casos — eles foram desenhados separadamente. No começo, eu imaginei no automático que todos os ativos poderiam ser convertidos dessa forma, mas depois confirmei que eu me equivoquei.