Mainnet-ul Aptos va activa 🔒 foarte curând activele 💸 confidențiale!! adică, solduri criptate și sume 🔐 de tranzacții, deși cu adrese de expeditor și destinatar vizibile 🌍 public! (Pas cu pas, oameni buni...) Iată cum funcționează! 🤓👇
Activele confidențiale Aptos se bazează și extind activitatea anterioară. Criptăm balanțele on-chain folosind Twisted ElGamal, cum ar fi PGC (). Aceasta se compune bine cu Bulletproofs pentru a demonstra că un sold criptat a fost debitat corect după o trimitere/retragere confidențială.
Sau, cum îmi place să spun adesea [și sunt luat în râs acum]... "Vezi blogul meu!"
*Realizare 1:* Spre deosebire de PGC și Solana, textele noastre criptate Twisted ElGamal sunt _aggressively-chunked_ astfel încât să asigure o decriptare extrem de rapidă, gestionând solduri și cantități de ~256 biți. Îl numim ElGamal *cu bucăți și răsucite.* Pentru ceea ce merită, Aptos are nevoie doar de solduri pe 128 de biți și cantități de 64 de biți.
Pentru Aptos, chunking-ul garantează că instanța maximă discretă (DL) care trebuie rezolvată în timpul decriptării este de 32 de biți, în cel mai rău caz (și mult mai mică în medie). => ușor de rezolvat în 2^16 adunări de curbe eliptice folosind algoritmi simpli precum baby-step giant-step (BSGS) 👇
*Realizare 2:* Accelerăm BSGS pentru alegerea noastră de curba eliptică Ristretto255 prin compresii în loturi. De asemenea, reducem dimensiunea tabelului pre-calculat cu 4x (=> reducere a dimensiunii și latenței SDK-ului dapp-urilor confidențiale) Numim acest nou algoritm *BSGS-k trunchiat (TBSGS-k).*
Am mai analizat acest algoritm: ... dar nu a subliniat *de ce*: TBSGS-k este determinist = > mai simplu de implementat și testat. TBSGS-k este doar de ~2 ori mai lent (10,6 ms față de 4,8 ms) decât algoritmul mai complex [BL12] și are doar de două ori tabele mai mari.
alin.apt
alin.apt25 feb. 2026
Dacă încerci să calculezi logarii discreti mai rapid pe Ristretto255, care are compresie lentă a punctelor, iată o variantă mai rapidă (și cu amprentă de memorie mai mică) a algoritmului Baby-Step Giant-Step pe care l-am conceput eu și @claudeai 👇
*Realizarea 3:* Când auditarea este activată, menținem o criptare dovedită corectă a soldului (disponibil) al fiecărui utilizator sub cheia de criptare a auditorului (EK). Acest lucru împiedică auditorii să scaneze TXN-urile utilizatorilor pentru a-și reconstrui echilibrul. Esențial: permite rotațiile 👌 auditorilor EK
*Realizarea 4:* În Aptos, rotirea tastei de _semnare_ de utilizator este o funcție centrală de securitate. Așadar: am proiectat și active confidențiale pentru a susține rotația cheilor de *decriptare* a utilizatorilor! Deocamdată, politicile de gestionare a cheilor sunt lăsate în seama aplicațiilor/portofelelor (ultimele cuvinte 🤞 celebre).
Vestea bună: dapp-urile confidențiale fără cheie pot fi reutilizate 🌶️ în siguranță ca cheie de decriptare! () ==> nu s-a introdus nicio povară suplimentară de gestionare a cheilor pentru astfel de aplicații ==> cea mai ușoară metodă de a construi un dapp confidențial este ca un dapp fără cheie; Nu e nevoie de portofel [suport]!
*Realizare 5:* Implementarea crypto(*graphy*) care asigură fonduri reale ale utilizatorilor este înfricoșătoare. Pentru a minimiza erorile (🤞), folosim o metodologie în mare parte trecută cu vederea pentru proiectarea și compunerea în siguranță a protocoalelor Sigma: *cadrul de homomorfisme*, pe care l-am descoperit în cartea 🙏 lui @danboneh
*Realizare 6:* Prima implementare de active confidențiale pregătită pentru producție în Move. Codul este momentan privat în timp ce este supus unui audit, dar va fi lansat în curând. Iată un teaser despre cât de simplu poate 👇 fi un transfer confidențial
De asemenea, pentru că nu mă pot abține, iată o parte din cadrul nostru de omomorfisme Sigma-protocol implementat în Move 😍
*Realizarea 7:* Specificație criptografică completă cu dovezi de securitate. (La naiba, poate putem face vibe code în @leanprover?) În curând, cu detaliile picante, într-un eprint lângă tine 👇
În cele din urmă, creditul acolo unde merită: activele confidențiale Aptos se bazează și extind ideile introduse în lucrări 👇 anterioare 1. Zether (): problema "front-running" a modelului contului fix prin soldurile în așteptare
2. PGC (): a propus Twisted ElGamal + Bulletproofs ca alternativă mai simplă la \Sigma-bullets. Acest lucru reduce drastic complexitatea implementării: trebuie doar să ne concentrăm pe proiectarea corectă a protocoalelor Sigma! Compoziția sigură este argumentată mai jos 👇
3. Solana (): permitea transferuri de sume pe 48 de biți prin împărțirea soldului în așteptare într-o bucată "mare" de 32 de biți și una "joasă" de 16 biți. Permitem sume mai mari folosind un număr mai mare de bucăți și prin reducerea suplimentară a soldului disponibil.
Nu în ultimul rând, vreau să mulțumesc lui @mstrakastrak și celor de la @distributedlab, care au ajutat la proiectarea versiunii inițiale a protocolului de active confidențiale și la implementarea acestuia în Move și TypeScript 🖖 Fiți atenți la articolul nostru comun care va apărea în curând!
88