En 2025, plusieurs bourses majeures ont progressivement retiré les cryptomonnaies axées sur la confidentialité. La transparence publique est un risque : la réglementation renforce ce risque, et les solutions de confidentialité se retrouvent à nouveau réprimées par la régulation. Trois forces se compriment en même temps, laissant presque aucune marge de manœuvre.

J’ai donc parcouru la documentation de Dusk avec cette question. En tombant sur le livre blanc « Confidential Security Contract Standard v2.0 » de XSC, j’ai remarqué Zedger. Zedger est le modèle de transaction sous-jacent de XSC : il fusionne les capacités UTXO et compte, et traite spécifiquement la tokenisation sécurisée. Le cœur de sa structure de données est un arbre de Merkle clairsemé segmenté. La première fois, je n’ai pas compris comment Balance Trie et Memory Tree étaient liés ; j’ai dû relire deux fois pour remarquer que, après chaque mise à jour, la racine est enregistrée dans Memory Tree, tout en générant le nullifier correspondant. Ce design ne sert pas simplement à empêcher la double dépense : il « attache » confidentialité et protection contre la double dépense au niveau de l’état. Le nullifier garantit qu’une transaction ne peut être consommée qu’une seule fois, et l’arbre de Merkle clairsemé permet aux validateurs de ne pas voir le solde exact

Le transfert d’actifs suit un processus en deux étapes : l’émetteur encaisse d’abord un Coin ; le destinataire doit le consommer dans un délai imparti. S’il ne le fait pas, l’émetteur peut récupérer l’actif et annuler les modifications du Balance Trie. Ce n’est pas seulement un transfert : c’est une machine d’état complète — chaque transaction doit passer par quatre transitions d’état : Create, Send, Approve et Consume. XSC utilise un schéma de signatures Schnorr pour l’authentification d’identité, et un schéma de preuves à divulgation nulle de connaissance PLONK pour générer les preuves. En plus, les contrats XSC prennent en charge des restrictions de transfert : les règles KYC et AML peuvent être codées directement dans la machine virtuelle Rusk. Rusk est une implémentation en Rust du nœud DuskDS : il exécute le consensus, maintient l’état de la chaîne et expose des API vers l’extérieur. Les nœuds de régulation vérifient en permanence la légalité de la machine d’état via des preuves à connaissance nulle, mais un explorateur de blockchain ne peut pas reconstituer les trajets précis des transactions ni exposer le montant

En clair, cette confidentialité vérifiable s’appuie sur Citadel — un protocole autonome de gestion d’identité basé sur des preuves à connaissance nulle pour Dusk, qui supporte la divulgation sélective. Les utilisateurs peuvent ainsi prouver aux nœuds de régulation qu’ils détiennent des justificatifs valides et conformes, sans révéler des informations de confidentialité comme le nom ou le numéro de document

Honnêtement, je pensais au départ que le point le plus difficile de Dusk était de savoir si la cryptographie est suffisamment robuste. En fin de compte, en relisant la documentation, j’ai découvert que la véritable difficulté réside dans la conception structurelle : intégrer directement les règles de conformité dans la logique des transitions d’état, de sorte que chaque changement d’état soit accompagné d’une vérifiabilité. Cette différence est bien plus grande que celle d’une simple preuve à divulgation nulle de connaissance