#dusk $DUSK @Dusk À Dusk, il existe deux systèmes de comptes : l’un est un compte standard ordinaire, consultable publiquement, et l’autre est un compte de confidentialité chiffré et masqué. On m’a déjà souvent dit que ces deux côtés pouvaient être convertis l’un en l’autre. Cette fois, je suis allé tester précisément comment utiliser cette fonction de conversion, sans m’attarder sur le reste.
Le processus est le suivant : au niveau de Dusk, il y a un contrat spécialisé qui gère la logique de transfert. Pour qu’un même token passe d’un état masqué à un état public (ou l’inverse), il faut utiliser une opération de conversion fournie par ce contrat. Ce n’est pas du « on extrait d’abord l’argent masqué, puis on dépose à nouveau dans le compte public », de manière brutale. Au contraire, pour un même montant d’actifs, le changement d’état est effectué en une seule opération : il n’y a pas d’étape intermédiaire que des observateurs externes pourraient suivre séparément.
Lors de mes tests sur le réseau de test, la première fois, j’ai cliqué dans le mauvais sens. Je voulais convertir un compte masqué en compte public, mais j’ai rempli l’option à l’envers : au lieu de passer du masqué vers le public, j’ai indiqué l’opération depuis le public vers le masqué. L’argent a bien été transféré, mais le résultat était totalement différent de ce que je voulais. Après m’être un peu agité, j’ai fini par comprendre que le problème ne venait pas de la fonction de conversion elle-même : c’était simplement que j’avais inversé les deux directions dans l’interface.
Après l’avoir essayé, mon impression est que cette fonction de conversion est assez fluide : elle est « one-shot », sans passer par plusieurs étapes. Elle ne ressemble pas à certaines solutions qui doivent d’abord passer par une adresse relais pour réaliser un basculement équivalent. Mais j’ai aussi repéré un détail facile à négliger : cette conversion ne s’occupe que du changement d’état de l’argent lui-même. S’il s’agit d’un actif financier du type valeurs mobilières, lié à des règles de conformité (par exemple, nécessitant une validation de liste, ou impliquant des règles de transfert spécifiques), alors le fonctionnement suit entièrement un autre mécanisme. On ne peut pas réutiliser directement cette fonction de conversion pour ce cas : les deux systèmes sont conçus séparément. Au début, j’ai eu le réflexe de penser que tous les actifs pouvaient se convertir ainsi, puis j’ai finalement vérifié que je m’étais trompé.