Je viens de passer du temps à relire encore une fois Phoenix de Dusk, et la partie qui me semble toujours légèrement étrange, c’est à quel point un validateur a peu besoin d’informations.

Pour une transaction classique, je suis habitué à ce que le réseau voie suffisamment de données pour déterminer qui a dépensé quoi et où cela est allé. Phoenix emprunte un autre chemin. La transaction est construite autour d’UTXO protégés par des mécanismes de masquage et d’une preuve à divulgation nulle de connaissance : le réseau peut ainsi vérifier que la dépense est valide, que l’entrée n’a pas déjà été dépensée, et que la valeur est suffisante, sans pour autant apprendre l’expéditeur, le destinataire ou le montant.

Ça paraît évident une fois qu’on le relit deux fois. Le point intéressant, c’est ce qui disparaît du travail du validateur. Il n’a pas besoin de reconstituer mon historique financier pour vérifier une simple transition d’état.

Il y a toutefois un coût. Les informations privées ne font pas disparaître la complexité de calcul par magie. Le client doit générer la preuve avant que la transaction n’atteigne le réseau, et la génération de preuves à divulgation nulle de connaissance peut être bien plus lourde que la signature d’une transaction classique.

C’est probablement la partie qui me préoccuperait davantage en pratique.
Un validateur peut rester relativement ignorant tout en vérifiant les règles, ce qui est utile. Mais si produire ces preuves devient douloureux sur du matériel ordinaire, la confidentialité commence à devenir une exigence matérielle.

J’aime davantage l’architecture une fois que je la regarde ainsi. Le réseau peut vérifier la règle sans transformer le compte de l’utilisateur en infrastructure publique. La question pour laquelle j’aimerais un indicateur de référence est simple : quel est le temps réel de génération et l’empreinte mémoire d’une transaction Phoenix sur du matériel client grand public ?

#dusk $DUSK @Dusk $HEMI $ACE #BNBChain #satoshiNakamato #SaudiArabia #the