Le mainnet d'Aptos permettra très bientôt des actifs 🔒 confidentiels 💸 !! a.k.a., des soldes et des montants de transaction chiffrés 🔐, bien que les adresses de l'expéditeur et du destinataire soient visibles publiquement 🌍 ! (Un pas à la fois, les amis...) Voici comment cela fonctionne ! 🤓👇
Les actifs confidentiels Aptos s'appuient sur et étendent les travaux antérieurs. Nous chiffrons les soldes sur la chaîne en utilisant Twisted ElGamal, comme PGC (). Cela s'intègre bien avec les Bulletproofs pour prouver qu'un solde chiffré a été débité correctement après un envoi/retrait confidentiel.
Ou, comme j'aime souvent le dire [et dont on se moque à ce stade]... "Voyez mon blog !"
*Fonctionnalité 1 :* Contrairement à PGC et Solana, nos ciphertexts ElGamal tordus sont _agressivement segmentés_ afin d'assurer un déchiffrement super rapide tout en gérant des soldes et des montants d'environ 256 bits. Nous appelons cela *ElGamal segmenté et tordu.* Pour info, Aptos n'a besoin que de soldes de 128 bits et de montants de 64 bits.
Pour Aptos, le découpage garantit que la plus grande instance de logarithme discret (DL) à résoudre lors du déchiffrement est de 32 bits, dans le pire des cas (et beaucoup plus petite en moyenne). => facilement résoluble en 2^16 additions de courbes elliptiques en utilisant des algorithmes simples comme baby-step giant-step (BSGS)👇
*Fonctionnalité 2 :* Nous accélérons BSGS pour notre choix de la courbe elliptique Ristretto255 via des compressions par lots. Nous réduisons également la taille de sa table pré-calculée par 4x (=> réduction de la taille et de la latence du SDK des dapps confidentiels) Nous appelons ce nouvel algorithme *BSGS-k tronqué (TBSGS-k).*
J'ai déjà parlé de cet algorithme auparavant : ...mais je n'ai pas réussi à souligner le *pourquoi* : TBSGS-k est déterministe => plus simple à mettre en œuvre et à tester. TBSGS-k est seulement ~2x plus lent (10,6 ms contre 4,8 ms) que l'algorithme [BL12] plus complexe, et a seulement des tables 2x plus grandes.
alin.apt
alin.apt25 févr. 2026
If you're trying to compute discrete logs faster on Ristretto255, which has slow point compression, here's a faster (and smaller-memory footprint) variant of the Baby-Step Giant-Step algorithm I and @claudeai came up with 👇
*Fonctionnalité 3 :* Lorsque l'audit est activé, nous maintenons un chiffrement prouvablement correct du solde (disponible) de chaque utilisateur sous la clé de chiffrement de l'auditeur (EK). Cela empêche les auditeurs de scanner les TXNs des utilisateurs pour reconstruire leur solde. Clé : cela permet les rotations de clé EK de l'auditeur 👌
*Fonctionnalité 4 :* Dans Aptos, la rotation de la clé de _signature_ de l'utilisateur est une caractéristique de sécurité centrale. Donc : nous avons également conçu des actifs confidentiels pour prendre en charge la rotation de la clé de *décryptage* de l'utilisateur ! Pour l'instant, les politiques de gestion des clés sont laissées aux applications/portefeuilles (célèbres dernières paroles 🤞).
La bonne nouvelle : les dapps confidentiels sans clé peuvent réutiliser en toute sécurité leur 🌶️ comme clé de déchiffrement ! () ==> aucune charge de gestion de clé supplémentaire introduite pour de telles applications ==> le moyen le plus simple de construire un dapp confidentiel est en tant que dapp sans clé ; aucun [support] de portefeuille nécessaire !
*Fonctionnalité 5 :* Mettre en œuvre une crypto(*graphie*) qui sécurise les fonds réels des utilisateurs est terrifiant. Pour minimiser les erreurs (🤞), nous utilisons une méthodologie largement négligée pour concevoir et composer en toute sécurité des protocoles Sigma : Le *cadre d'homomorphisme,* que j'ai découvert dans le livre de @danboneh 🙏
*Fonctionnalité 6 :* La première implémentation d'actifs confidentiels prête pour la production en Move. Le code est actuellement privé pendant qu'il subit un audit, mais sera bientôt publié. Voici un aperçu de la simplicité d'un transfert confidentiel 👇
Aussi, parce que je ne peux pas m'en empêcher, voici une partie de notre cadre d'homomorphisme du protocole Sigma implémenté en Move 😍
*Fonctionnalité 7 :* Spécification cryptographique complète avec preuves de sécurité. (Eh bien, peut-être que nous pouvons le coder en @leanprover ?) À venir bientôt, avec les détails croustillants, dans un eprint à côté de vous 👇
Enfin, rendons à César ce qui appartient à César : les actifs confidentiels d'Aptos s'appuient sur et étendent des idées introduites dans des travaux antérieurs 👇 1. Zether (): résout le problème de "front-running" du modèle de compte fixe via des soldes en attente
2. PGC (): propose Twisted ElGamal + Bulletproofs comme une alternative plus simple aux \Sigma-bullets. Cela réduit considérablement la complexité d'implémentation : nous devons seulement nous concentrer sur la conception correcte de nos protocoles Sigma ! La composition sécurisée est discutée ci-dessous 👇
3. Solana (): a permis des montants transférés de 48 bits en divisant le solde en attente en un morceau "haut" de 32 bits et un morceau "bas" de 16 bits. Nous permettons des montants plus importants en utilisant un plus grand nombre de morceaux et en segmentant également le solde disponible.
Enfin, je tiens à remercier @mstrakastrak et les gens de @distributedlab, qui ont aidé à concevoir la version initiale du protocole d'actifs confidentiels et à l'implémenter en Move et TypeScript 🖖 Restez à l'affût de notre article commun qui sortira bientôt !
64