Web3.com Ventures Analiza de cercetare originală
0xFishylosof

Introducere
Odată cu lansarea recentă a rețelei principale a Aptos și lansarea lui token pe Binance și alte schimburi centralizate majore, nu există un moment mai potrivit pentru a scrie o analiză exploratorie a acestui proiect de lungă durată. Copilul orfan al încercărilor lui Meta de a crea criptomoneda Balanță, Aptos duce mai departe idealul Balanței de a fi blockchain-ul care va include următorul milion de utilizatori în criptomonede.
Obiectivul general al Aptos este de a oferi un blockchain scalabil, sigur și de încredere [1]. Pentru a face acest lucru, Aptos se bazează pe un nou limbaj de contract inteligent, Move, aparent un limbaj „mai sigur” decât „standardul de aur” actual al Solidity Ethereum. Desigur, Aptos nu este primul blockchain L1 care se comercializează ca fiind „scalabil, sigur și de încredere”. Alte lanțuri, în special Solana, au încercat, de asemenea, să folosească acest lucru ca slogan în trecutul lor, cu succes mixt [2]. În acest eseu, mă voi strădui să pornesc de la atributele de bază ale limbajului Move, să analizez fundamentele tehnice ale Aptos în contextul altor proiecte similare și să ofer o evaluare critică asupra potențialului și limitărilor acestui nou lanț fierbinte.
Mutați limba
Nu puteți face o analiză a Aptos fără o analiză a Limbii de mutare. Într-adevăr, de aici provine cel mai mult potențialul Aptos. Move a fost dezvoltat inițial de echipa Libra a lui Meta (acum numită Diem) pentru a oferi un model de programare a contractului inteligent diferit în mod paradigmatic în comparație cu alte limbaje de contract inteligente; în loc să adopte o abordare bazată pe tranzacții, Move adoptă o abordare bazată pe resurse pentru definirea modelelor de contracte inteligente [3].
Deci, ce înseamnă toate acestea? Începând cu Bitcoin, marea majoritate a blockchain-urilor notabile au adoptat o abordare „în primul rând tranzacția”, în care fiecare intrare din blocul unui blockchain este o tranzacție (să zicem între Alice și Bob). O tranzacție este un obiect relativ; pentru a exista o tranzacție, trebuie să existe o adresă Alice și o adresă Bob. Pentru a ne asigura că Alice nu „cheltuiește dublu” o monedă într-o abordare bazată pe tranzacție, trebuie să verificăm că nu există niciun conflict cu toate celelalte tranzacții, o bătaie de cap care încetinește inevitabil tranzacțiile.
Pe de altă parte, abordarea „bazată pe resurse” a lui Move este dramatic diferită. În loc să înregistreze linii de tranzacții de la A la B, Move înregistrează obiectul (sau resursa) schimbând mâinile și pur și simplu actualizează atributele în consecință. Este important că resursele sunt entități atomice - o resursă X existentă nu depinde de nicio altă resursă existentă, spre deosebire de cazul tranzacțiilor, unde o tranzacție T depinde de doi agenți anteriori, existența lui A și B. Astfel, o abordare bazată pe resurse permite o structură mult mai atomică, independentă, optimizată pentru execuție paralelă.

„Resurse” din Move sunt în esență obiecte care au anumite atribute. În jargonul tehnic, acestea sunt structuri implementate (adică o structură de date container) [4]. În acest moment, persoanele cu experiență în programare Ethereum pot ridica o întrebare: Solidity are, de asemenea, structuri, precum și alte structuri de date. Ce face ca structurile din Move să fie speciale? Cred că cea mai importantă diferență este că, în timp ce structurile din Solidity au o parte relativ periferică în limbaj (folosind în cea mai mare parte pentru claritate), structurile sunt baza tuturor lucrurilor din Move. Mai mult, structurile lui Move au „abilități” diferite, inclusiv „copiere”, „drop”, „stocare” și „cheie”, care definesc dacă un obiect poate fi duplicat, stocat, șters etc. [5]. Acest tip de notație structurală este complet diferită de Solidity, sau chiar marea majoritate a limbajelor de programare comune (de exemplu, C/C++). Cu toate acestea, aceste „abilități” diferite sunt profund intuitive. Unele lucruri pe care le puteți „copia”, cum ar fi o monedă sau un jeton. Unele lucruri pe care le puteți „scăpa” sau le puteți arunca. Alte lucruri, cum ar fi un activ digital unic, ar putea să nu poată fi copiate. Acum luați în considerare următoarea definiție oficială a unei „resurse” pe Move:
„Ne referim adesea la valorile structurii ca resurse dacă nu pot fi copiate și nu pot fi abandonate.” — Structuri și resurse, Move Language Documentation [4]
Deci, „resursele” sunt în esență „structuri” unice care vor fi mereu acolo pentru tine. Ce romantic.
Redefinirea completă de către Move a unui „struct” îi permite să utilizeze o singură structură de date pentru a defini succint token-uri, NFT-uri, contracte inteligente și alte active digitale într-o abordare curată, modulară [6]. Acesta este ceva cu care EVM-ul Ethereum pur și simplu nu poate compara; oricine cu ceva experiență în dezvoltarea utilizării EVM știe cât de frustrant este să se ocupe de structuri (și structuri imbricate) în Solidity.
În mod esențial, abordarea bazată pe resurse Move își asigură garanțiile de securitate. După cum menționează documentul Move, în multe programe există reprezentarea indirectă a activelor, ceea ce înseamnă că deficitul și controlul accesului nu este scalabil. De exemplu, în timp ce deficitul Ether este codificat și protejat de EVM, alte jetoane ERC-20 „nu moștenesc aceste protecții, trebuie să aibă grijă să nu introducă erori care permit duplicarea, reutilizarea sau pierderea activelor” [4]. Luați în considerare atacul clasic de reintrare. Acesta este un lucru care afectează de mult proiectele EVM, făcându-le adesea să piardă milioane și milioane de dolari [7]. Datorită abordării bazate pe resurse a lui Move, atacul de reintrare este imposibil pe Move. Astfel, bariera în calea codării de intrare Move este, fără îndoială, mult mai accesibilă decât EVM - un factor crucial pentru adoptarea în masă.
Aptos — Principii tehnice
Probabil că cea mai mare realizare a lui Aptos este pur și simplu introducerea pe piață a Move ca limbaj. **** Într-adevăr, o mare parte din designul lui Aptos este preluat direct din blockchain-ul Diem (Libra) dezvoltat de Meta. Amintiți-vă că Aptos este un lanț care pune accent pe scalabilitate și securitate. Există două implementări tehnice principale utilizate pentru a realiza acest lucru. Primul este în stratul său de consens, și anume mecanismul de consens AptosBFT. Al doilea este stratul său de execuție sau motorul de execuție Block-STM. Să le examinăm în ordine.
În primul rând, AptosBFT este un mecanism de consens bizantin tolerant la erori, ceea ce înseamnă în esență că poate continua să garanteze securitatea atâta timp cât nu mai mult de 1/3 din nodurile din rețea sunt actori rău intenționați [8]. Aceasta este o practică standard: Proof of Work a Bitcoin, Proof-of-Stake de la Ethereum etc. sunt toate bizantine tolerante la greșeli. Deci, cum implementează de fapt AptosBFT mecanismul său de consens? La fel ca toate celelalte lanțuri Proof-of-Stake, Aptos se bazează pe noduri de validare „stake”. Implementează o variantă a algoritmului de consens HotStuff, un algoritm PoS modern care oferă un protocol de comunicare mult mai curat între noduri în comparație cu modelele anterioare (de ex. pBFT) prin faptul că nodurile comunică cu un „lider rotativ” mai degrabă decât cu orice alt nod [9] ]. În timp ce AptosBFT introduce mai multe optimizări pe lângă HotStuff, în special un „mecanism de rotație a cheilor” (pentru a îmbunătăți securitatea) și o reducere a cheltuielilor generale (pentru a îmbunătăți scalabilitatea), nu există nicio modificare structurală majoră a designului PoS al HotStuff [10].

Pe de altă parte, motorul de execuție paralelă Block-STM este un design mult mai original și, probabil, principala descoperire tehnică a proiectului [11]. Amintiți-vă că resursele sunt atomice - schimbarea mâinilor unei anumite resurse X nu depinde de nicio altă resursă. Prin gruparea tranzacțiilor în blocuri (cum ar fi piesele lego), putem profita de un paralelism masiv în executarea tranzacțiilor cu resurse, obținând o creștere de 20 ori a vitezei de calcul în comparație cu Ethereum [11].
Dar cum se compară acest lucru cu Solana și alte motoare de execuție paralelă? Inovația principală a Solana a fost să codifice toate dependențele sale de contracte inteligente pentru a-i permite să efectueze execuții paralele. Cu toate dependențele cunoscute în prealabil, motorul de execuție Solana poate apoi bloca dependențele necesare înainte de rulare. Pe de altă parte, Aptos gestionează dependențele din mers, mai întâi rulând toate tranzacțiile „optimist”, iar în caz de eșec, reluând acele tranzacții specifice care au eșuat [12].

Să folosim o analogie simplă pentru a explica cele de mai sus. Ethereum este un drum cu o singură bandă în care toate mașinile trebuie să circule într-o singură linie una în spatele celuilalt, în timp ce atât Solana, cât și Aptos sunt autostrăzi expres cu patru benzi. Acest lucru, evident, accelerează lucrurile. Dar întrebarea este cum circulă mașinile pe autostradă? În cazul lui Solana, fiecărei mașini i se atribuie în esență o bandă specifică și va circula întotdeauna de-a lungul benzii. Acest lucru este foarte rapid și eficient în cel mai bun scenariu, dar dacă procesul de atribuire merge prost, aveți un scenariu foarte rău. Pe de altă parte, în cazul lui Aptos, mașinilor li se atribuie mai întâi niște benzi, dar dacă acest lucru nu funcționează, atunci mașinilor li se permite să vireze pe alte benzi pentru a preveni accidentele. Prin urmare, chiar dacă Aptos s-ar putea să nu ruleze la fel de repede ca Solana în cel mai bun scenariu, este mai fiabil decât Solana și are un scenariu mai defavorabil [13].
Evaluare — Potenţial şi limitări
Aptos este în prezent primul și singurul lanț major L1 bazat pe Move care a lansat o rețea principală. Ca atare, lansarea lui Aptos în rețeaua principală este un eveniment incredibil de simbolic; banii și atenția media pe care Aptos le-a atras nu sunt neapărat proporționale cu inovația sa tehnică inerentă.
După cum am menționat mai sus, principala inovație tehnică pe care Aptos a făcut-o este în motorul său de execuție paralelă Block-STM. Cele mai multe dintre celelalte aspecte tehnice, inclusiv mecanismul său de consens și utilizarea limbajului Move, sunt produse moștenite puțin îmbunătățite, moștenite de la Meta [14]. În ceea ce privește motorul de execuție paralelă Block-STM, nu este clar dacă acest lucru va determina o diferență calitativă între experiența utilizatorului pe Aptos și experiența utilizatorului pe Solana; dacă experiența utilizatorului este aceeași, utilizatorului nu îi va păsa cum este implementată la nivel tehnic.
Ca și în cazul oricărui proiect de infrastructură, succesul pe termen lung al Aptos depinde de proiectele care aleg să se bazeze pe el. În prezent, proiectele din ecosistemul său, cum ar fi Liquidswap DEX, piața Topaz NFT și serviciul de domeniu Aptos Names, deși produsele necesare în orice ecosistem blockchain, nu sunt suficient de unice pentru designul Aptos [15]. Aceste proiecte sunt ca un magazin alimentar, o școală și un spital într-un sat mic. Deși sunt necesare pentru funcționarea satului, ele nu conferă satului niciun caracter unic care nu se găsește în niciun alt sat.
Privind înapoi în timp, o parte din succesul Solanei poate fi atribuită unor proiecte precum StepN, care au putut de fapt să profite de avantajul paralelismului al Solanei. Aceste proiecte GameFi și SocialFi implică adesea cantități mari de date paralele care sunt relativ izolate. Astfel, aceste aplicații sunt potrivite în mod unic pentru motoarele de execuție paralelă, cum ar fi Aptos și Solana, în același timp capabile să aducă o bază mare de consumatori și un volum mare de tranzacții. Într-adevăr, la un moment dat, doar StepN a reprezentat aproximativ 20% din utilizatorii plătitori ai Solana [16].
Astfel, pentru ca Aptos să reușească ca proiect de infrastructură, trebuie să existe o gamă unică de proiecte care să profite în mare măsură de motorul de execuție paralelă al Aptos, proiecte care nu ar putea fi realizate pe Ethereum sau chiar Solana. Cu noul design Block-STM al lui Aptos, acestea ar putea lua forma sub forma unei noi clase de proiecte SocialFi în care utilizatorii interacționează în mici clicuri (cum ar fi chat-urile de grup). Deoarece aceste grupuri pot fi fluide și dinamice, deși oarecum independente unele de altele, ele sunt mult mai potrivite pentru motorul de execuție paralelă al lui Aptos decât cel al lui Solana sau Ethereum. Dar, desigur, aceasta este doar o speculație abstractă.
Cu toate acestea, lansarea rețelei principale a lui Aptos este încă un eveniment incredibil de important și simbolic în lumea cripto. Reprezintă punctul culminant a anilor de eforturi ale inginerilor Meta de a aduce la viață o paradigmă diferită calitativ pentru rezolvarea blocajului de scalabilitate al Ethereum. Caracteristicile unice ale limbajului Move înseamnă că, inevitabil, vor exista DApp-uri care sunt mult mai bune pentru a fi implementate pe Move, mai degrabă decât pe Solidity sau alte limbi inteligente de contract. Dar acele proiecte vor fi neapărat implementate în ecosistemul Aptos? Nimeni nu stie. Aptos s-ar putea bucura de câteva avantaje de primă mutare de a putea aduce Move în producție și de a le lega numele cu limbajul Move. Dar, în același timp, s-ar putea să sufere de o soartă asemănătoare MySpace de a fi primul care mișcă.
Cel puțin un lucru este cert: Aptos poate fi primul experiment al pieței cu Move, dar cu siguranță nu va fi ultimul [17].
🐦 @0xfishylosopher
📅 22 octombrie 2022
Disclaimer: Această cercetare are doar scop informativ. Nu constituie un sfat de investiții sau o recomandare de a cumpăra sau vinde vreo investiție și nu ar trebui să fie utilizat în evaluarea meritelor luării oricărei decizii de investiție.
Referințe
[1] Consultați pagina principală a Aptos Labs: https://aptoslabs.com/
[2] Introducere în Solana: https://www.forbes.com/advisor/investing/cryptocurrency/what-is-solana/
[3] Cartea albă pentru mutarea limbajului: https://diem-developers-components.netlify.app/papers/diem-move-a-language-with-programmable-resources/2020-05-26.pdf
[4] Mutați documentația pentru dezvoltatori pentru structuri și resurse: https://github.com/move-language/move/blob/main/language/documentation/book/src/structs-and-resources.md
[5] Detalii despre abilitățile structurale: https://move-language.github.io/move/abilities.html
[6] Consultați tutorialul privind mutarea limbajului: https://101blockchains.com/move-programming-language-tutorial/
[7] https://blog.chain.link/reentrancy-attacks-and-the-dao-hack/
[8] Detalii despre toleranța la erori bizantine: https://decrypt.co/resources/byzantine-fault-tolerance-what-is-it-explained
[9] Model de consens HotStuff: https://hackernoon.com/hotstuff-the-consensus-protocol-behind-safestake-and-facebooks-librabft
[10] AptosBFT Consensus: https://blog.pontem.network/aptosbft-all-you-need-to-know-about-the-bft-consensus-in-aptos-ff4cf22c7a80
[11] A se vedea documentul tehnic Block-STM: https://arxiv.org/abs/2203.06871
[12] Comparație Aptos vs Solana Execution Engine: https://www.gofyeo.com/post/aptos-vs-solana-a-technical-comparison-part-1
[13] Analiza Aptos în cel mai rău caz ca O(n²), Solana ca O(n⁴). Detalii: https://antiape.substack.com/p/cf40447d-d674-4454-9e09-f003517de6de?s=r
[14] Consultați Cartea albă Aptos: https://aptos.dev/assets/files/Aptos-Whitepaper-47099b4b907b432f81fc0effd34f3b6a.pdf
[15] Ecosistem Aptos: https://coinmarketcap.com/alexandria/article/what-is-aptos-the-ultimate-guide-to-the-aptos-ecosystem
[16] De pe Twitter-ul lui Messari Crypto: https://twitter.com/MessariCrypto/status/1567880625218019333
[17] Consultați Sui, un alt limbaj bazat pe mutare: https://sui.io/