Autor: Yiping, IOSG Ventures

Peisajul Layer 2 evoluează rapid pe măsură ce ZKRU precum zkSync și StarkNet lansează rețeaua principală. În mod tradițional, OPRU-urile precum Arbitrum sunt primele care sunt comercializate și, prin urmare, au un ecosistem mai puternic. În schimb, ZKRU-urile sunt descoperiri tehnologice care oferă un randament mai mare și comisioane mai mici.

În ultimele luni, mai multă activitate a migrat de la Layer 1 la Layer 2 în căutarea unor tranzacții mai rapide și mai ieftine. TVL-ul Ethereum a scăzut de la aproape 40 de miliarde de dolari la 20 de miliarde de dolari în ultimul an. Cu toate acestea, TVL pentru Layer 2 prezintă o imagine diferită, cu o creștere uriașă care indică faptul că adoptarea Layer 2 se accelerează.

Arbitrum este lider cu peste 50% cotă de piață Layer 2 TVL, deși și ZKRU-urile depun eforturi. Avantajul de primă mutare al Arbitrum îi permite să-și mențină poziția dominantă.

Analizând numărul de tranzacții zilnice, arată că ZKRU precum zkSync și StarkNet depășesc ușor OPRU-urile în debit. Cu toate acestea, avantajul ecosistemului Arbitrum rămâne, în ciuda faptului că este ușor în urmă în TPS zilnic.

OPRU-urile există mai mult decât ZKRU. Cu toate acestea, ZKRU-urile își lansează rețelele principale și atrag utilizatori din alte ecosisteme. În calitate de lider în spațiul OPRU, se așteaptă ca Arbitrum să contracareze creșterea ZKRU-urilor cu noile lor actualizări.

Decizie: stil

Pe măsură ce dezvoltatorii optimizează tehnologia și costurile fără cunoștințe, ZKRU-urile vor continua probabil să câștige cotă de piață datorită avantajelor lor de scalabilitate. Cu toate acestea, efectele de rețea ale Arbitrum oferă capacitatea de a rămâne robuste în ciuda presiunilor competitive. Prin soluții inovatoare precum Stylus, Arbitrum își poate completa poziția de lider cu capacități tehnice unice și poate continua să rămână în fruntea cursei Layer 2.

Pe scurt, Stylus este un nou mediu de contract inteligent revoluționar, conceput pentru Arbitrum, care permite dezvoltatorilor să scrie programe eficiente, interoperabile în limbaje de programare precum Rust, C++ și Solidity.

Deschide computerul general către blockchain și salută dezvoltatorii care folosesc diferite stive de tehnologie.

WASM

Stylus funcționează prin adăugarea unei mașini virtuale WebAssembly (WASM) care rulează în paralel cu mașina virtuală Ethereum (EVM) existentă. Contractele inteligente scrise într-un limbaj care se compilează în WASM se pot executa în mod nativ de 10 ori sau mai rapid decât Solidity, reducând semnificativ costurile cu gazele. EVM rămâne pe deplin funcțional, astfel încât contractele Solidity existente încă funcționează așa cum funcționează astăzi. Două VM funcționează sincron, permițând contractelor scrise în limbaje de programare diferite să se apeleze reciproc, modificând, de asemenea, aceeași stare de bază a blockchain-ului.

Precompilare personalizată

În plus, Stylus acceptă și precompilări personalizate.

Precompilările sunt module de nivel scăzut pe Ethereum și Arbitrum, utilizate pentru a efectua funcții criptografice sau utilitare specifice în mod foarte eficient. De exemplu, există precompilări pentru verificarea semnăturii ECDSA și calcularea hashurilor SHA256.

Adăugarea de noi precompilări necesită ca toți validatorii să coordoneze actualizarea EVM, astfel încât bariera de intrare este mare. Și cu Stylus, dezvoltatorii își pot implementa cu ușurință propriile precompilatoare scrise în Rust sau C++.

De exemplu, o echipă poate lua o bibliotecă criptografică scrisă în C și o poate implementa în Arbitrum fără modificări. Acest lucru va permite acestor primitive criptografice să se execute la viteze native ultra-rapide.

Alte contracte pot numi acest Stylus „precompilare” la fel cum numesc precompilarea nativă pentru a profita de această tehnologie criptografică. Toate contorizarea gazului și anti-fraudă funcționează automat.

Acest lucru permite echipei să creeze prototipuri de criptografie personalizată, curbe speciale bazate pe împerechere și alte primitive noi fără nici un suport special pentru lanț. Cercetătorii Ethereum pot chiar să repete propunerile EIP devreme prin implementarea lor ca versiuni precompilate Stylus pe Arbitrum.

Oferind dezvoltatorilor posibilitatea de a introduce noi primitive criptografice nativ în lanț, Stylus extinde foarte mult domeniul de aplicare a ceea ce poate fi construit. Precompilarea nu se mai limitează la funcțiile acceptate de EVM.

Cum funcționează Stylus

Înainte de a explora rolul mai larg al WASM în universul blockchain, este crucial să înțelegem modul în care Arbitrum orchestrează coexistența EVM și WASM. Nu este vorba doar de a avea două motoare separate, este o relație sinergică care sporește punctele forte ale ambelor.

Arhitectura unică a Arbitrum permite operațiuni fără întreruperi și sincronizate între EVM și WASM, datorită stării sale unificate, invocării între VM și modelului economic compatibil.

Contractele inteligente scrise în Solidity sau în alte limbaje EVM sunt compilate în bytecode EVM ca de obicei. Când sunt executate, aceste contracte rulează pe EVM, la fel ca și astăzi.

Pentru limbile care se compilează în WASM, cum ar fi Rust, C++ și C, fluxul de lucru este:

  • Dezvoltatorii folosesc compilatoare WASM standard, cum ar fi Clang sau Rustc, pentru a-și compila contractele inteligente către WASM.

  • Codul octet WASM este încărcat în lanțul Arbitrum sub formă comprimată.

  • Proprietarul contractului apelează metoda `ArbWasm` precompilată `compileProgram`, care setează instrumentele de securitate pentru WASM, îl costă cu gaz și îl compilează în cod nativ optimizat pentru hardware-ul validatorului.

  • Când se apelează la un contract, acesta rulează pe o durată de execuție WASM precum Wasmer, care este mult mai rapid decât EVM, economisind astfel taxele de gaz.

Contorizarea WASM încarcă gazul înainte de fiecare bloc de bază, mai degrabă decât pe opcode, cum ar fi EVM. Acest lucru este mai eficient și asigură că contractul nu scapă de sub control.

EVM și WASM

Cele două mașini virtuale (VM) rulează sincron, permițându-le să se sune reciproc în timp ce partajează aceeași stare globală. O tranzacție poate fi executată parțial în EVM și parțial în WASM, iar rezultatele sunt combinate fără probleme.

Stai, cum pot funcționa două VM-uri perfect și sincronizate?

Polkadot realizează acest lucru prin XVM. Spre deosebire de Polkadot, WASM și EVM funcționează perfect și sincron pe Arbitrum din mai multe motive cheie:

  • Stare unică: ambele VM accesează aceeași structură de date de bază și aceeași încercare de stare. Un contract dintr-un VM poate citi/scrie în aceeași locație ca un contract dintr-un alt VM. Aceasta oferă o vedere unificată a stării lanțului.

  • Apeluri între VM: atunci când o tranzacție interacționează cu un contract EVM, Geth îl procesează și oferă un rezultat. Dacă contractul EVM apelează ulterior un program WASM, WASM VM preia controlul pentru a calcula rezultatele acelei părți.

  • Context partajat: informațiile de sistem, cum ar fi datele blocate, adresa expeditorului etc., sunt disponibile pentru ambele VM. Un contract WASM poate obține numărul de bloc la fel ca un contract Solidity.

  • Consens unic: validatorii rulează două VM pentru a valida tranzacțiile și pentru a ajunge la un consens asupra stării corecte a lanțului. Litigiile vor invoca Sistemul Uniform Antifraud.

  • Economie compatibilă: concepte precum măsurarea gazului se extind la VM-urile individuale, asigurând costuri de calcul și resurse adecvate în ambele medii.

Pentru dovezile de fraudă, verificatorul divide în două execuțiile EVM și WASM pentru a identifica orice pași invalidi, dacă este necesar. Structura WASM permite sistemului să garanteze încetarea și să impună valabilitatea dovezilor.

Blockchain |

Arbitrum nu este singura platformă care recunoaște potențialul de transformare al WebAssembly (WASM). Atât Polkadot, cât și Cosmos au integrat, de asemenea, WASM în ecosistemele lor, fiecare platformă oferind un set unic de beneficii și caracteristici.

Polkadot permite utilizatorilor să dezvolte contracte inteligente cu WASM și acceptă două limbaje: AssemblyScript, un DSL încorporat și Ink!, care este similar cu Rust.

Cosmos, pe de altă parte, folosește CosmWasm ca durată de execuție a contractului inteligent, permițând dezvoltatorilor să scrie contracte în Rust.

Înainte de a explora de ce industria blockchain este atât de receptivă la WASM, merită să înțelegem avantajele specifice care ies în evidență pentru Cosmos și Polkadot:

Cosmos evidențiază următoarele avantaje ale WASM:

  • Compatibilitate cu bibliotecile Rust

  • Comunitate diversă de dezvoltatori

  • Securitate sporită, inclusiv protecție împotriva atacurilor de reintrare

  • Ușor de testat

  • performanta ridicata

Runtime-ul WASM al lui Polkadot are următoarele caracteristici:

  • performanta ridicata

  • Interoperabilitate cu EVM

  • Agnostic al platformei

  • Dimensiune binară compactă

  • Suportă atât Rust, cât și AssemblyScript (aroma TypeScript)

În timp ce Polkadot, Cosmos și Arbitrum împărtășesc unele beneficii comune oferite de WASM, fiecare platformă are, de asemenea, propriile atribute unice.

Adoptarea pe scară largă a WASM de către aceste platforme majore blockchain este o dovadă a importanței sale tot mai mari în industrie, ceea ce face esențială înțelegerea de ce această tehnologie devine rapid o piatră de temelie a arhitecturii blockchain moderne.

De ce să alegeți WASM

Ce este WASM

Pentru a înțelege sinergia dintre blockchain și WebAssembly (WASM), trebuie mai întâi să înțelegeți ce este WASM și forța motrice din spatele dezvoltării sale.

WebAssembly este un format de instrucțiuni binar care permite codului să se execute la o viteză aproape nativă într-un browser web. Acesta servește ca țintă de compilare pentru o serie de limbaje de programare, inclusiv C și Rust, și este proiectat pentru a fi rapid, eficient și sigur. WASM realizează în mod eficient diferența dintre programarea bazată pe web și programarea la nivel de sistem, îmbunătățind astfel performanța și funcționalitatea web.

„Web” din WebAssembly evidențiază capacitatea sa de a rula într-un mediu JavaScript (se găsește de obicei într-un browser). În aceste configurații, dezvoltatorii au acces deplin la WASM API și au suport cuprinzător pentru Web API, oferindu-le un control considerabil asupra comportamentului web.

Istoria WASM

Urmând principiul „scrie o dată, rulează oriunde”, WASM a apărut ca o soluție puternică pentru un set de provocări de lungă durată. Începând cu 2016, multe programe introduc noi funcții prin limbaje specifice domeniului (DSL), care implică adesea compromisuri între întreținere, eficiență și securitate. Există o nevoie din ce în ce mai mare de o soluție care să poată oferi funcționalități noi nenumărate servere fără a compromite aceste aspecte.

Au fost evaluate deficiențele diferitelor soluții existente:

- Mașină virtuală de sistem

  • Pornirea și oprirea frecventă aduc o suprasarcină excesivă

  • Lipsa vizibilității codului pentru a asigura securitatea

  • Prea abstract despre cerințele de performanță

- container

  • Lipsa vizibilității codului pentru a asigura securitatea

  • Ineficient din cauza abstracției la nivel înalt

  • Operațiunile frecvente aduc cheltuieli generale semnificative

- Mașină virtuală la nivel de limbă

  • Necesita modificari frecvente pentru a asigura siguranta

  • Mașinile virtuale încorporate, cum ar fi V8, necesită resurse intensive

  • Adaptarea lentă a noului limbaj la modelul de securitate

  • încă prea abstract

- Arhitectura set de instrucțiuni (ISA)

  • Greu de sandbox eficient

  • Proiectele anterioare Google s-au mutat de la acesta la WASM

  • Lipsa implementării mature

Până în 2018, dezvoltarea WASM a câștigat avânt, concentrându-se pe rularea pe diferite arhitecturi, servere, hardware încorporat și chiar pe suportarea mai multor limbi. Spre deosebire de Java, WASM este proiectat fără a compromite securitatea. Până în 2019, a fost introdus un model de componentă pentru a îmbunătăți modulul WASM, permițând interoperabilitatea în mai multe limbi. Acest lucru permite soluții precum scrierea unei biblioteci HTTP o singură dată și utilizarea acesteia în mai multe limbi.

Până în prezent, WASM are o gamă largă de capabilități și este din ce în ce mai mult adoptat în scenarii native din cloud, inclusiv blockchain. Avantajele sale includ:

  • performanta ridicata

  • Dimensiune binară compactă

  • Portabilitate pe mai multe platforme

  • Suporta mai multe limbi, cum ar fi C/C++, Rust, AssemblyScript etc.

  • Executați în motorul JavaScript

  • Cutie de nisip puternică cu limite de memorie și CPU

  • Timpi de pornire extrem de rapid, de obicei în milisecunde sau mai puțin

Comunitatea WASM continuă să lucreze pentru o mai bună integrare și performanță între limbi.

Înțelegerea evoluției istorice a WASM oferă un context valoros pentru înțelegerea rolurilor sale actuale și potențiale într-o varietate de setări, inclusiv proiecte blockchain precum Stylus. Acest fundal ne oferă o înțelegere nuanțată atunci când explorăm problemele și preocupările legate de implementarea WASM în ecosistemul blockchain.

Întrebări și răspunsuri Stylus

suport lingvistic

Evoluția WASM dezvăluie de ce Stylus este o completare interesantă pentru ecosistemul Arbitrum, dar evidențiază și unele limitări și preocupări. Una dintre preocupări este suportul lingvistic. Deși Stylus a extins comunitatea de dezvoltatori Arbitrum pentru a include limbaje precum C++ și Rust, nu a acceptat limbaje populare precum JavaScript și Python.

Deși există proiecte preliminare care vizează aducerea Python și JavaScript la WASM, aceste eforturi nu sunt încă pregătite pentru adoptare pe scară largă din cauza provocărilor legate de colectarea deșeurilor și problemele de performanță.

Compatibilitate lingvistică

În prezent, Stylus acceptă SDK-urile C/C++ și Rust, integrându-se perfect cu lanțurile de instrumente pentru aceste limbi. Dezvoltatorii pot integra chiar și biblioteci terțe, cum ar fi implementările criptografice native, atunci când construiesc contracte inteligente. Principala limitare de a face așa ceva sunt costurile asociate cu gazele.

În timp ce SDK-ul Rust este încă la început, atât SDK-urile Rust, cât și C au unele caracteristici lipsă. De exemplu, SDK-ul C nu acceptă funcțiile exportate ABI, iar modificatorii nu sunt încă acceptați în niciunul dintre SDK.

În prezent, nu există un mediu local de testare Stylus, dar dezvoltatorii pot rula teste direct în SDK. Pentru implementarea contractelor inteligente, testnet este în prezent singura opțiune și încă nu acceptă verificarea contractelor inteligente. În prezent, se depun eforturi pentru a aduce diverse jetoane ERC și **[Uniswap V2]** în ecosistemul Stylus.

Dilema alegerii limbii

Alegerea între limbi specifice domeniului (DSL), DSL-uri încorporate (eDSL) și limbi de uz general necesită un compromis între control la nivel scăzut și abstractizare la nivel înalt. Dezvoltarea unui DSL complet nou necesită investiții semnificative în lanțul de instrumente și dezvoltarea ecosistemului. În schimb, ca subset al unui limbaj de uz general, eDSL permite o integrare mai ușoară cu instrumentele existente și are o curbă de învățare mai mică. De exemplu, ar fi benefic să creați un eDSL într-un limbaj popular precum JavaScript sau Python.

Un limbaj comun necesită utilizarea unui SDK, care introduce instrumente suplimentare, crește gradul de verbozitate și face codul mai puțin expresiv, împreună cu apeluri API mai lungi și operații cu obiecte.

Găsirea echilibrului potrivit între alegerea limbii și dezvoltarea eDSL poate fi cheia pentru a atrage comunitatea mai largă de dezvoltatori, oferind în același timp instrumente ușor de utilizat. Conform datelor actuale, comunitatea de top al dezvoltatorilor cripto este încă concentrată în jurul Ethereum. Cu toate acestea, platformele care folosesc Rust pentru contracte inteligente, cum ar fi Polkadot, Cosmos și Solana, câștigă, de asemenea, acțiune și cresc rapid în rândul comunităților lor de dezvoltatori.

performanţă

WASM îmbunătățește semnificativ viteza de execuție și reduce dimensiunea pachetului. Deși Stylus nu a fost încă implementat pe rețeaua principală, benchmark-urile din alte rețele pot servi drept referință utilă. Timpii de execuție observați sunt de 4-8 ori mai rapidi, iar dimensiunea compilată este redusă cu aproximativ 50%.

Stylus are în prezent o limită de dimensiune a contractelor sale, limitată la aproximativ 128 KB necomprimat. Această limitare face ca portarea contractelor inteligente mari din alte limbi, cum ar fi Solidity, să fie dificilă. În baza de coduri Stylus, această limită este descrisă mai jos:

Este demn de remarcat faptul că WASM implică unele cheltuieli generale la pornire și închidere. Pentru operațiuni ușoare, EVM poate fi de fapt mai rentabil decât WASM.

Interoperabilitate cu EVM

EVM și WASM împărtășesc aceleași sloturi de stocare și arbore de stări, ceea ce facilitează interoperabilitatea Stylus cu EVM. Acest lucru se realizează prin API-ul EVM implementat în WASM, folosind modelul popular Host I/O. O listă cuprinzătoare de API-uri EVM acceptate demonstrează că interoperabilitatea este pe deplin acceptată.

Contract precompilat personalizat

Acest aspect este deosebit de interesant pentru că reprezintă un teritoriu neexplorat. Contractele precompilate personalizate au potențialul de a aduce primitive criptografice suplimentare în lanț cu costuri de execuție mai mici. De asemenea, pot reduce costul inferenței prin introducerea calculelor tensorilor ca contracte precompilate. Cu toate acestea, se pare că nu există niciun cod existent legat de contractele precompilate personalizate. Deși există contracte precompilate pentru componentele EVM, acestea nu pot fi schimbate la cald.

Această caracteristică poate fi încă în curs de dezvoltare, profitând de capacitățile WASM. EVM poate apela funcții scrise în WASM și apoi le poate compila în codul mașinii.

Funcționalitate de reintrare

Spre deosebire de CosmWasm (care adoptă un model Actor fără reintrare), Stylus' Rust SDK dezactivează re-intrarea ca indicator de caracteristică în mod implicit. Dezvoltatorii au opțiunea de a activa această funcție manual.

Activarea reintrării va necesita unele ajustări API. În special, dezvoltatorii trebuie să fie atenți când vine vorba de măsuri de securitate, cum ar fi reîmprospătarea cache-urilor de stocare în timpul apelurilor.

Insight

Stylus deschide noi cazuri de utilizare care ar consuma prea mult gaz atunci când se utilizează numai EVM, cum ar fi criptarea de înaltă performanță, jocurile și AI. De asemenea, permite personalizarea contractelor precompilate, permițând dezvoltatorilor să adauge propria lor criptare și alte funcționalități de bază fără a aștepta upgrade-uri. În trecut, am văzut unele ecosisteme non-Ethereum adoptând WASM, cum ar fi Cosmos și Polkadot. Este pentru prima dată când WASM este adoptat de comunitatea Ethereum. În general, Stylus reprezintă o evoluție semnificativă în dezvoltarea contractelor inteligente și va ajuta Ethereum și Arbitrum să se extindă, menținând în același timp interoperabilitatea cu toate aplicațiile existente.

Integrarea Stylusului în SDK-ul Layer 2 al Arbitrum oferă o flexibilitate mai mare pentru dezvoltatorii Layer 3. Acum pot muta în lanț calcule intensive care depășeau anterior limitele de gaze, deschizând noi posibilități. Dezvoltatorii nu se mai limitează la Solidity, dar pot alege și Rust sau C++ dacă acele limbaje se potrivesc mai bine nevoilor și experienței lor. Contractele precompilate personalizate permit migrarea fără întreruperi a funcțiilor criptografice, utilitare și a altor funcții de ajutor preferate în lanț pentru performanță optimă. Scrierea logicii de nivel scăzut direct într-un limbaj adaptat fiecărui caz de utilizare duce la o dezvoltare mai lină. Dezvoltatorii se pot concentra pe funcționalitatea de bază a produsului, în loc să recurgă la soluții alternative pentru a evita costurile cu gazul. Îndepărtând constrângerile de limbă și gaz, Stylus le permite constructorilor de la nivelul al treilea să creeze cele mai eficiente experiențe de utilizator de la început, folosind instrumentele potrivite pentru domeniul lor.

Stylus demonstrează, de asemenea, capacitatea Arbitrum de a inova la scară și de a integra noi mașini virtuale. Ed Felten, co-fondator și om de știință șef al Arbitrum & Offchain Labs a menționat că Arbitrum este dezvoltat pe baza unor instrumente și limbaje de programare populare din industrie. Ei pot scrie teste mai rapid și pot dezvolta noi funcții pe lângă sistemele vechi. OP a mers mai departe pe drumul ZKization și s-a îndreptat treptat către ideea hibridă Rollup. Optimism lucrează în prezent cu Risc0 pentru a utiliza Zeth pentru a genera dovezi fără cunoștințe pentru OPRU. Folosind această soluție, Optimism nu trebuie să facă modificări suplimentare la OPRU. Dacă ești interesat de Zeth, poți citi ce am scris înainte de [Twitter].

Așteptăm cu nerăbdare să vedem aplicații AI la Arbitrum. În prezent, efectuarea învățării automate în lanț necesită foarte mult gaz, ceea ce face dezvoltarea costisitoare. ML cu cunoștințe zero poate reduce costurile, dar introduce și o complexitate suplimentară semnificativă pentru dezvoltatori. Dacă am putea implementa operațiuni de tensor ca contracte precompilate personalizate prin Stylus și le-am executa în mod nativ la o fracțiune din cost, ar deschide noi posibilități pentru învățarea automată de înaltă performanță în lanț. Permițând dezvoltatorilor să construiască și să implementeze rapid algoritmi ML ca contracte precompilate ușor de integrat într-un limbaj cu care sunt familiarizați, cum ar fi Python, Arbitrum poate conduce următoarea generație de inovații AI în DeFi, GameFi și multe altele. Performanța și flexibilitatea Stylus ne vor permite să ne concentrăm pe arhitecturi inovatoare ML, mai degrabă decât pe optimizarea gazelor. Așteptăm cu nerăbdare să vedem creativitatea comunității aplicată acestei paradigme emergente.