Scris de: Hakeen
1. Foaia de parcurs de upgrade a Ethereum M2SVPS
Fuziunea
În faza de fuziune, mecanismul de consens POW va trece la POS și lanțurile de semnalizare vor fi fuzionate împreună. Pentru ușurință de înțelegere, simplificăm structura Ethereum în următoarea figură:
Să definim mai întâi ce este fragmentarea aici: o înțelegere simplă este procesul de împărțire orizontală a bazei de date pentru a distribui încărcarea.
După trecerea la POS: propunetorii de blocuri și validatorii de blocuri sunt separați, iar fluxul de lucru POS este după cum urmează (înțeles pe baza figurii de mai sus):
Tranzacțiile sunt comise pe Validatorii Rollup adaugă tranzacții la blocurile de fragmente Lanțul de baliză selectează validatorii pentru a propune blocuri noi. Validatorii rămași formează comitete aleatorii și validează propunerile pe fragmente
Atât propunerea unui bloc, cât și demonstrarea propunerii trebuie finalizate într-un interval, de obicei 12 secunde. Fiecare 32 de sloturi formează un ciclu de epocă, iar fiecare epocă va perturba sortarea validatorului și va realege comitetul.
După fuziune, Ethereum va implementa separarea propunere-constructor (PBS) pentru stratul de consens. Vitalik consideră că finalul pentru toate blockchain-urile va fi acela de a avea producție centralizată de blocuri și verificare descentralizată a blocurilor. Deoarece datele blocului Ethereum fragmentate sunt foarte dense, centralizarea producției de bloc este necesară datorită cerințelor ridicate de disponibilitate a datelor. În același timp, trebuie să existe o modalitate de a menține un set descentralizat de validatoare care să poată valida blocurile și să efectueze eșantionarea disponibilității datelor.
Minerii și verificarea blocurilor sunt separate. Minerii construiesc blocuri și apoi trimit blocurile validatorilor. Validatorii licitează pentru a-și selecta propriile blocuri, iar apoi validatorii votează pentru a decide dacă blocul este valid.
Sharding-ul este o metodă de partiționare care poate distribui sarcinile de calcul și încărcăturile de lucru de stocare într-o rețea P2P După această metodă de procesare, fiecare nod nu trebuie să fie responsabil de procesarea sarcinii de tranzacție a întregii rețele, ci trebuie doar să mențină informațiile legate de. este suficientă partiția (sau fragmentarea). Fiecare fragment are propria sa rețea de validatori sau noduri.
Probleme de securitate ale fragmentării: De exemplu, dacă întreaga rețea are 10 lanțuri de fragmente, distrugerea întregii rețele necesită 51% din puterea de calcul, atunci distrugerea unui singur fragment necesită doar 5,1% din puterea de calcul. Prin urmare, îmbunătățirile ulterioare includ un algoritm SSF, care poate preveni eficient atacurile cu puterea de calcul de 51%. Potrivit rezumatului vitalik, trecerea la SSF este o foaie de parcurs pe mai mulți ani Chiar dacă în prezent se lucrează mult, va fi una dintre schimbările majore implementate mai târziu în Ethereum și va fi cu mult în urmă mecanismului de verificare a PoS al Ethereum, sharding și. Verkle tree. După lansarea completă.
Lanțul de baliză este responsabil pentru generarea de numere aleatorii, alocarea nodurilor shardurilor, captarea instantanee ale shardurilor individuale și diverse alte funcții. Este responsabil pentru finalizarea comunicării dintre shard-uri și coordonarea sincronizării rețelei.
Pașii de execuție ai lanțului de baliză sunt următorii:
Producătorul blocului angajează antetul blocului împreună cu oferta. Blocantul (verificatorul) de pe lanțul de semnalizare selectează antetul blocului câștigător și oferta și va primi taxa de licitație câștigătoare necondiționat, indiferent dacă ambalătorul blocului generează în cele din urmă corpul blocului. Comitetul (selectat aleatoriu dintre validatori) votează pentru a confirma antetul blocului obținut. Ambalarea blocului dezvăluie corpul blocului.
Surge
Scopul principal al acestei rute este de a conduce scalarea centrată pe rollup. Surge se referă la adăugarea Ethereum sharding, o soluție de scalare despre care Fundația Ethereum susține că va permite în continuare un blockchain al doilea strat cu taxe reduse de gaz, va reduce costul tranzacțiilor cumulate sau grupate și va facilita operarea nodurilor care protejează utilizatorii. rețeaua Ethereum.
Diagrama poate fi înțeleasă în continuare prin următoarea diagramă simplificată:
Luați ca exemplu principiul de funcționare al zkrollup: zkrollup este împărțit într-un secvențietor și un agregator. Agregatorul execută tranzacția, pornind de la rădăcină de stare anterioară (rădăcină de stare anterioară), generând rădăcină de stare post (rădăcină de stare post) și apoi generând dovada (dovada) În cele din urmă, agregatorul trimite rădăcina de stare anterioară, rădăcină de stare post , datele tranzacției și dovada la L1 Contractul este responsabil pentru verificarea validității certificatului, iar datele tranzacției sunt stocate în calldata. Disponibilitatea datelor Zkrollup permite oricui să restabilească starea globală a contului pe baza datelor de tranzacție stocate în lanț.
Cu toate acestea, costul utilizării calldata este foarte costisitor, astfel încât întregul protocol EIP-4844 (care se poate schimba în orice moment) propune modificarea dimensiunii blocului de tranzacții la 1~2MB, punând o bază solidă pentru viitoare rollup și data sharding. . Dimensiunea actuală a blocului Ethereum este de aproximativ 60 KB ~ 100 KB Luând ca exemplu EIP-4844, limita de dimensiune a blocului poate fi mărită de 10 ~ 34x. Acest format de bloc se numește blob (numit și fragment de date).
Flagelul
În această etapă, Scourge este un supliment la foaia de parcurs și este folosit în principal pentru a rezolva problemele MEV. Deci, ce este MEV?
Numele complet al MEV este Valoarea extractibilă a minerului / Valoarea maximă extractabilă. Acest lucru se datorează faptului că, în dovada muncii, minerii stăpânesc capabilități de rol, cum ar fi includerea, excluderea și ordonarea tranzacțiilor. Cu toate acestea, după trecerea la Proof-of-Stake prin fuziune, validatorii vor fi responsabili pentru aceste roluri, iar mineritul nu se va mai aplica (metoda de extragere a valorii prezentată aici va rămâne după această tranziție, de unde necesitatea unei schimbări de nume). Pentru a continua să utilizați același acronim pentru a asigura continuitatea, păstrând în același timp același sens de bază, „Valoarea maximă extractabilă” este acum folosită ca o alternativă mai incluzivă.
Spațiul de arbitraj include:
Prin comprimarea spațiului de stocare, se obține diferența de preț a taxelor de gaz. Arbitrul în avans: Căutare extinsă de tranzacții pe mempool, mașina efectuează calcule local pentru a vedea dacă este profitabilă și, dacă da, inițiază aceeași tranzacție cu propria sa; Adresați-vă și utilizați taxe mai mari de gaze; Găsiți obiective de lichidare: roboții concurează pentru a analiza datele blockchain cât mai repede posibil pentru a determina care debitori pot fi lichidați și apoi devin primii care depun tranzacțiile de lichidare și colectează ei înșiși comisioanele de lichidare. Tranzacții tip sandwich: Căutătorii monitorizează tranzacțiile mari pe DEX în mempool. De exemplu, cineva dorește să cumpere 10.000 UNI folosind DAI pe Uniswap. Astfel de tranzacții mari ar avea un impact semnificativ asupra perechii UNI/DAI, potențial crescând semnificativ prețul UNI în raport cu DAI. Cel care caută poate calcula impactul aproximativ al prețului acestei tranzacții mari asupra perechii UNI/DAI și poate executa ordinul de cumpărare optim imediat înainte de tranzacția mare pentru a cumpăra UNI la un preț scăzut și apoi poate executa ordinul de vânzare imediat după tranzacția mare, cu comanda mare rezultând un preț de vânzare mai mare.
Dezavantajele MEV:
Unele forme de MEV, cum ar fi tranzacțiile tip sandwich, pot duce la o experiență semnificativ mai proastă a utilizatorului. Utilizatorii prinși la mijloc se confruntă cu un alunecare mai mare și o execuție comercială mai proastă. La nivelul rețelei, principalii generali și licitațiile cu taxele de minerit la care participă adesea (atunci când doi sau mai mulți pionieri cresc treptat taxele de minerit ale propriilor tranzacții, astfel încât tranzacțiile lor să fie împachetate în blocul următor), conduc la Network. congestionare și taxe miniere mari de la alții care încearcă să efectueze tranzacții normale. Pe lângă ceea ce se întâmplă într-un bloc, MEV poate avea și efecte dăunătoare asupra blocurilor. Dacă MEV-ul disponibil într-un bloc depășește semnificativ recompensa standard de bloc, minerii pot fi stimulați să remineze blocul și să captureze MEV pentru ei înșiși, ceea ce duce la reorganizarea blockchain-ului și la instabilitatea consensului.
Majoritatea MEV sunt extrase de participanți independenți la rețea numiți „căutători”. Căutătorii rulează algoritmi complecși pe datele blockchain pentru a detecta oportunități profitabile MEV și există roboți care trimit automat aceste tranzacții profitabile în rețea. Problema MEV pe Ethereum implică utilizarea de roboți pentru a exploata tranzacțiile din rețea, provocând congestie și taxe mari.
The Verge
Verge va implementa „Arborele Verkle” (o dovadă matematică) și „clientul apatrid”. Aceste actualizări tehnice vor permite utilizatorilor să devină validatori de rețea fără a fi nevoiți să stocheze cantități mari de date pe mașinile lor. Acesta este, de asemenea, unul dintre pașii expansiunii rollup-ului După cum am menționat mai devreme, principiul simplu de lucru al zk rollup este că agregatorul trimite dovada, iar contractul de verificare de pe stratul 1 trebuie doar să verifice angajamentul KZG în blob și generat. dovada. Iată o scurtă introducere a angajamentului KZG, care este să se asigure că toate tranzacțiile sunt incluse. Deoarece rollup-ul poate trimite tranzacții parțiale și poate genera dovezi, dacă se utilizează KZG, se va asigura că toate tranzacțiile vor fi incluse pentru a genera dovezi.
The Verge asigură că verificarea este foarte simplă. Trebuie doar să descărcați N octeți de date și să efectuați calcule de bază pentru a verifica dovezile transmise de pachet.
De menționat că ZK rollup are multe soluții, precum stark, snark sau bulletproof. Fiecare schemă are o abordare diferită a dovezilor și verificării, așa că există compromisuri. În prezent, SNARK-urile sunt mai ușor de utilizat decât tehnologia STARK, iar tehnologia este, de asemenea, mai completă. Prin urmare, multe proiecte folosesc SNARK-uri la început, dar odată cu iterarea tehnologiei STARK, acestea se vor întoarce în cele din urmă la STARK care sunt rezistente la atacurile cuantice. Deși una dintre principalele îmbunătățiri ale Ethereum în EIP-4844 este formatul de tranzacție blob pentru a se adapta la rollup, care extinde capacitatea blocului, principalul blocaj al tuturor dovezilor actuale de zero cunoștințe se află încă în propriul algoritm de demonstrare pe de o parte, poate fi rezolvată prin îmbunătățirea algoritmului. Pe de altă parte, problema probei este îmbunătățită prin stivuirea hardware-ului, care a dat naștere și pistei miniere ZK. Cei interesați pot accesa acest articol.
Epurarea
Purge va reduce cantitatea de spațiu necesară pentru a stoca ETH pe un hard disk, în încercarea de a simplifica protocolul Ethereum și de a elimina necesitatea ca nodurile să stocheze istoricul. Acest lucru poate îmbunătăți considerabil lățimea de bandă a rețelei.
EIP-4444:
Clienții trebuie să nu mai difuzeze anteturi, corpuri și destinatari istorici pe stratul P2P care au mai mult de un an. Clienții pot tăia aceste date istorice la nivel local. Păstrarea istoriei Ethereum este fundamentală și cred că există diverse modalități în afara bandă de a realiza acest lucru. Datele istorice pot fi împachetate și partajate prin link-uri magnet torrent sau rețele precum IPFS. În plus, sisteme precum Portal Network sau The Graph pot fi folosite pentru a obține date istorice. Clientul ar trebui să permită importul și exportul datelor istorice. Clienții pot furniza scripturi pentru a obține/valida date și le pot importa automat.
Splurge
Această rută este compusă în principal din unele remedieri de optimizare fragmentare, cum ar fi abstracția contului, optimizarea EVM și schema de numere aleatoare VDF.
Account Abstraction (AA) menționat aici a fost întotdeauna primul obiectiv pe care seria ZK Layer 2 vrea să-l atingă. Deci, ce este abstractizarea conturilor? După implementarea abstracției contului, un cont de contract inteligent poate, de asemenea, să inițieze în mod activ tranzacții fără a se baza pe mecanismul „meta-tranzacție” (acest lucru a fost propus în EIP-4844).
În Ethereum, conturile sunt împărțite în conturi contractuale și conturi externe. În prezent, există un singur tip de tranzacție în Ethereum, care trebuie să fie inițiată de o adresă externă. Adresele contractului nu pot iniția tranzacții în mod activ. Prin urmare, orice modificare a stării proprii a contractului trebuie să se bazeze pe o tranzacție inițiată de o adresă externă Fie că este un cont cu semnături multiple, un mixer valutar sau orice modificare a configurației unui contract inteligent, aceasta trebuie să fie declanșată de cel puțin un cont extern. .
Indiferent de aplicația folosită pe Ethereum, utilizatorii trebuie să dețină Ethereum (și să suporte riscul fluctuațiilor prețului Ethereum). În al doilea rând, utilizatorii trebuie să se ocupe de logica complexă a costurilor, prețul gazului, limita de gaz și blocarea tranzacțiilor. Aceste concepte sunt prea complexe pentru utilizatori. Multe portofele sau aplicații blockchain încearcă să îmbunătățească experiența utilizatorului prin optimizarea produsului, dar cu puțin efect.
Scopul soluției centrate pe cont este de a crea un cont pentru utilizator pe baza managementului inteligent al contractelor. Beneficiile implementării abstracției contului sunt:
Contractul actual poate deține ETH și depune direct o tranzacție cu toate semnăturile. Utilizatorul nu trebuie neapărat să plătească taxe de gaz pentru tranzacție, depinde în întregime de proiect. Datorită implementării criptografiei personalizate, nu va fi obligatorie utilizarea curbelor eliptice ESCDA pentru semnături în viitor, recunoașterea amprentei unui telefon mobil, recunoașterea facială, biometria și alte tehnologii pot fi utilizate ca metode de semnătură. Acest lucru îmbunătățește semnificativ experiența de interacțiune a utilizatorului cu Ethereum.
2. Modularizarea lui Ethereum
Întregul Ethereum a cunoscut în prezent o tendință de modularizare, iar stratul de execuție este responsabil pentru Layer 2 (cum ar fi arbitrum, zksync, starknet, polygon zkevm etc.). Aceștia sunt responsabili pentru executarea tranzacțiilor utilizatorilor pe L2 și transmiterea dovezilor. Stratul 2 utilizează în general tehnologia OP/ZK În teorie, TPS-ul tehnologiei ZK este mult mai mare decât cel al OP. În prezent, un număr mare de ecosisteme sunt în sistemul OP, dar în viitor, odată cu îmbunătățirea tehnologiei ZK. , tot mai multe aplicații vor fi migrate către departamentul ZK. Această secțiune este o descriere detaliată a foii de parcurs, completată de de ce și cum.
În prezent, Ethereum separă doar stratul de execuție. De fapt, alte straturi sunt încă amestecate. În viziunea lui Celestia, stratul de execuție face doar două lucruri: pentru o singură tranzacție, execută tranzacția și apar modificări de stare pentru tranzacțiile din același lot, calculează rădăcina de stare a lotului; O parte din activitatea curentă a nivelului de execuție Ethereum este alocată Rollup-ului, care este cunoscut sub numele de StarkNet, zkSync, Arbitrum și Optimism.
Acum optimismul, poligonul, starknet, zksync etc. explorează calea modularității.
Optimismul a propus piatra de bază/stiva operațională, poligonul dezvoltă, de asemenea, disponibilitatea poligonului ca strat de disponibilitate a datelor, iar superrețelele sunt folosite pentru a simplifica crearea lanțurilor și a partaja seturi de validatoare.
Stratul de decontare: Poate fi înțeles ca procesul de verificare a validității rădăcinii pre-state, post-state root, proof (zkRollup) sau fraud proof (Optimistic Rollup) menționat mai sus de contractul Rollup pe lanțul principal. Stratul de consens: Indiferent dacă se utilizează PoW, PoS sau alți algoritmi de consens, stratul de consens este de a ajunge la un consens asupra ceva din sistemul distribuit, adică de a ajunge la un consens asupra validității tranziției de stare (rădăcina pre-stat este calculată și convertită în rădăcina post-state). În contextul modularității, stratul de decontare și stratul de consens au semnificații oarecum similare, așa că unii cercetători unifică stratul de decontare și stratul de consens. Stratul de disponibilitate a datelor: asigurați-vă că datele tranzacției sunt încărcate complet în stratul de disponibilitate a datelor, iar nodul de verificare poate reproduce toate schimbările de stare prin datele din acest strat.
Ceea ce trebuie distins aici este diferența dintre disponibilitatea datelor și stocarea datelor:
Disponibilitatea datelor este în mod clar diferită de stocarea datelor, prima concentrându-se pe disponibilitatea datelor publicate în ultimul bloc, în timp ce a doua implică stocarea datelor în siguranță și asigurarea că acestea pot fi accesate atunci când este necesar.
1. Diverse Rollup-uri pe stratul de decontare
Din perspectiva stratului de decontare, în prezent se crede că accentul rollup-ului este pe seria ZK. Dacă acumularea sistemului ZK este utilizată pentru a îmbunătăți dimensiunea, consumul de gaz și costul sistemului ZK proof și este combinată cu recursivitate și procesare paralelă, TPS-ul său poate fi extins foarte mult. Deci, să începem cu acumularea ZK.
Odată cu dezvoltarea expansiunii Ethereum, tehnologia Zero Knowledge Proof (ZKP) este considerată de Vitalik a fi soluția care se așteaptă să fie rezultatul final al bătăliei de expansiune.
Esența ZKP este de a permite cuiva să demonstreze că știe sau posedă ceva. De exemplu, pot demonstra că am cheia de la uşă fără a fi nevoie să o scot. Demonstrând că cunoașteți parola unui cont fără a fi nevoie să o introduceți și riscați să fiți expus, această tehnologie are implicații pentru confidențialitatea personală, criptare, afaceri și chiar dezarmarea nucleară. Obțineți o înțelegere mai profundă cu o versiune modificată a Problemei milionarului a lui Yao: Această problemă discută despre doi milionari, Alice și Bob, care vor să știe care dintre ei este mai bogat fără a-și dezvălui bogăția reală.
Presupunând că chiria lunară pentru un apartament este de 1.000 USD, pentru a fi calificat ca închiriere ar trebui să plătiți de cel puțin 40 de ori chiria unei luni. Apoi noi (chiriașii) trebuie să dovedim că venitul nostru anual este mai mare de 40.000 USD. Dar proprietarul nu a vrut să găsim lacune, așa că a ales să nu publice chiria specifică Scopul lui a fost să testeze dacă îndeplinim standardele, iar răspunsul a fost doar da sau nu și nu era responsabil pentru specificul. cantitate.
Acum există zece casete, marcate de la 10.000 la 100.000 USD în trepte de 10.000 USD. Fiecare are o cheie și un slot. Proprietarul a intrat în camera cu cutia și a distrus 9 chei, luând cheia din cutia cu eticheta 40.000 USD.
Salariul anual al chiriașului ajunge la 75.000 USD. Agentul bancar supraveghează eliberarea unui document care să ateste activele. Apoi punem fișierul în coșul de 10k~70k. Apoi proprietarul folosește cheia de 40k pentru a deschide cutia, iar când vede în interior documentul de revendicare verificabil, stabilește că chiriașul îndeplinește criteriile.
Punctele implicate includ faptul că declarantul (banca) emite un certificat de conformitate a bunului, iar verificatorul (proprietarul de locuință) verifică dacă chiriașul este calificat prin cheie. Se subliniază din nou că există doar două opțiuni pentru rezultatele verificării - calificat sau necalificat, și nu necesită și nu poate solicita valoarea specifică a activelor chiriașului.
Putem folosi în continuare următoarea figură ca o înțelegere. Tranzacțiile sunt executate pe stratul 2 și tranzacțiile sunt trimise pe fragmente. Stratul 2 adoptă, în general, forma de acumulare, adică mai multe tranzacții sunt împachetate într-un lot pe stratul 2 pentru a procesa tranzacțiile și apoi transmise contractului inteligent de cumulare al stratului 1. Acesta conține rădăcinile de stat vechi și noi. Contractul de pe stratul 1 va verifica dacă cele două rădăcini de stat se potrivesc, rădăcina de stat veche din lanțul principal va fi înlocuită cu rădăcina de stat nouă. Deci, cum se verifică dacă rădăcina de stare obținută după procesarea în lot este corectă. Aici sunt derivate rollup optimist și zk rollup. Dovada fraudei și tehnologia zk sunt utilizate, respectiv, pentru confirmarea tranzacției și, respectiv, verificarea rădăcină a stării.
Stratul 2 (rollup) aici este echivalent cu declarantul (banca) din exemplul de mai sus. Operațiunea de ambalare este operațiunea de declarare, dar confirmă dacă standardul este îndeplinit. Ceea ce este ambalat și prezentat la nivelul 1 este acest document de declarație care poate fi revendicat. Rădăcina verificării statutului vechi și nou este ca proprietarul să folosească cheia pentru a verifica dacă puterea financiară a chiriașului la care se așteaptă îndeplinește standardele. Problema de verificare a rădăcinii de stat este declarația depusă de bancă Cum se face declarația pentru a face problema credibilă.
Pe baza unui rollup optimist, adică rezistent la fraudă, contractul Rollup al lanțului principal înregistrează o înregistrare completă a modificărilor rădăcinii stării interne ale rollup-ului, precum și valoarea hash a fiecărui lot (care declanșează schimbarea stării rădăcinii). Dacă cineva descoperă că noua rădăcină de stare corespunzătoare unui anumit lot este greșită, poate publica o dovadă pe lanțul principal că noua rădăcină de stare generată de acel lot este greșită. Contractul verifică dovada și, dacă verificarea trece, toate tranzacțiile de procesare a loturilor după procesarea lotului sunt anulate.
Metoda de verificare aici este echivalentă cu care declarantul (bancă) depune un document de declarație de avere verificabil și apoi publică toate documentele de bun în lanț, iar datele trebuie, de asemenea, publicate în lanț, iar alți contestatori vor calcula pe baza originalului. pentru a vedea datele verificabile. Verificați dacă există erori sau falsuri în documentele activelor. Dacă există probleme, se va face contestație. Cea mai importantă problemă aici este necesitatea de a rezerva timp pentru ca contestatorul să colecteze date și să verifice autenticitatea documentului.
Pentru Rollup care utilizează tehnologia Zero Knowledge Proof (ZKP), fiecare lot conține o dovadă criptografică numită ZK-SNARK. Băncile folosesc tehnologia de verificare criptografică pentru a genera documente de declarare a activelor. În acest fel, nu este nevoie să rezervi timp pentru contestatori și, prin urmare, rolul de challenger nu există.
2. Motivul pentru care acumularea seriei ZK nu este la fel de bună pe cât se aștepta acum
În prezent, hermez-ul bazat pe poligon a fost lansat, iar rețeaua principală zksync dev și mainnet-ul starknet au fost, de asemenea, lansate. Cu toate acestea, viteza lor de tranzacție pare să fie prea departe de teoria noastră. În special, utilizatorii Starknet pot simți clar că viteza rețelei sale principale este surprinzător de lentă. Motivul este că este încă foarte dificil să generați dovezi cu tehnologia zero-knowledge proof, costul este încă mare și există, de asemenea, un compromis între compatibilitatea Ethereum și performanța zkevm. Echipa Polygon a recunoscut, de asemenea: „Versiunea testnet a Polygon zkEVM are, de asemenea, capacități de transfer limitate, ceea ce înseamnă că este departe de forma finală ca o mașină de scalare optimizată”.
3. Stratul de disponibilitate a datelor
Pașii abstracti de execuție ai Ethereum sunt următorii:
În procesul de descentralizare al lui Ethereum, îl putem vedea și pe foaia de parcurs The Merge - validatoare descentralizate. Cel mai important dintre ele este realizarea diversității clienților, scăderea pragului de intrare pentru mașini și creșterea numărului de validatori. Prin urmare, dacă unii validatori ale căror mașini nu îndeplinesc standardele doresc să participe în rețea, pot folosi clienții ușoare. Principiul de funcționare al nodurilor ușoare este de a solicita antete de bloc prin nodurile complete din apropiere anteturi de bloc. Dacă nodurile ușoare nu participă, atunci toate tranzacțiile necesită noduri complete pentru a efectua verificarea, astfel încât nodurile complete trebuie să descarce și să verifice fiecare tranzacție din bloc. În același timp, pe măsură ce volumul tranzacțiilor crește, nodurile complete sunt sub presiune , astfel încât rețeaua de noduri tinde treptat să fie de înaltă performanță și centralizată.
Dar problema aici este că un nod plin rău intenționat poate da un antet de bloc lipsă/invalid, dar un nod ușor nu îl poate falsifica . Monitorizați valabilitatea blocului și construiți o dovadă de fraudă după descoperirea unui bloc invalid. Dar aici, evident, avem nevoie de un nod complet de încredere, care necesită setări de încredere sau presupuneri oneste. Cu toate acestea, producătorul de blocuri poate ascunde unele tranzacții, iar dovada de fraudă este evident invalidă, deoarece nodurile cinstite se bazează și pe datele producătorului de blocuri. Dacă datele în sine sunt ascunse, atunci nodurile de încredere cred că datele trimise sunt toate datele. , atunci desigur nu va fi generată nicio dovadă a fraudei.
Într-o lucrare scrisă în colaborare de Mustarfa AI-Bassam și Vitalik, este propusă o nouă soluție - codificarea ștergerii. Codurile de ștergere sunt folosite pentru a rezolva problemele de disponibilitate a datelor. De exemplu, celestia și polygon avail folosesc toate codurile de ștergere reed-solomon. Dar cum să vă asigurați că datele transmise sunt date complete poate fi combinat cu angajamentul KZG/dovada fraudei.
În dovada angajamentului/fraudă KZG, se poate asigura că producătorul de bloc publică date complete fără a ascunde tranzacțiile, iar apoi datele sunt codificate prin codificare de ștergere și apoi prin eșantionarea disponibilității datelor, astfel încât nodurile ușoare să poată verifica corect datele.
Datele transmise de agregator în Rollup sunt stocate pe lanț sub formă de calldata, deoarece datele calldata sunt mai ieftine decât alte zone de stocare.
Costul datelor de apel în gaz = dimensiunea tranzacției × 16 gaz pe octet
Costul principal al fiecărei tranzacții este costul calldata, deoarece stocarea în lanț este extrem de costisitoare, iar această parte reprezintă până la 80% până la 95% din costul de acumulare.
Din cauza acestei probleme, am propus noul format de tranzacție blob al EIP-4844 pentru a extinde capacitatea blocului și a reduce taxa de gaz necesară pentru trimiterea la lanț.
4. Stratul de disponibilitate a datelor în lanț și în afara lanțului
Deci, cum să rezolvi problema datelor scumpe din lanț? Există mai multe metode:
Primul este să comprimați dimensiunea datelor de apel încărcate în L1. Au existat multe optimizări în acest domeniu. Al doilea este de a reduce costul stocării datelor în lanț, de a oferi „blocuri mari” și de un spațiu mai mare de disponibilitate a datelor pentru acumulare prin proto-danksharding și danksharding de la Ethereum și de a utiliza codarea de ștergere și angajamentul KZG pentru a rezolva problema nodurilor ușoare. Cum ar fi EIP-4844. Al treilea este de a pune disponibilitatea datelor în afara lanțului. Soluțiile comune pentru această parte includ celestia / poligonul etc.
În funcție de locația în care este stocată disponibilitatea datelor, o împărțim în așa cum se arată în figura de mai jos:
Soluția Validium: Pune disponibilitatea datelor în afara lanțului, apoi aceste date de tranzacție vor fi menținute de operatorii centralizați, iar utilizatorii vor avea nevoie de setări de încredere, dar costul va fi foarte mic, dar în același timp aproape că nu va exista securitate. Mai târziu, atât starkex, cât și arbitrum nova au propus înființarea DAC pentru a fi responsabilă de stocarea datelor despre tranzacții. Membrii DAC sunt persoane fizice sau organizații care sunt bine-cunoscute și care se află în jurisdicția legală, iar asumarea încrederii este că nu se vor aduna și nu vor face rău.
Zkporter propune tutorilor (deținătorii de token-uri zksync) să se angajeze să mențină disponibilitatea datelor. Volition permite utilizatorilor să aleagă disponibilitatea datelor în lanț/în afara lanțului și să aleagă între securitate și cost în funcție de nevoile lor.
Acesta este momentul în care apar celestia și poligonul. Dacă Validium are cerințe de disponibilitate a datelor în afara lanțului, dar se teme de descentralizarea scăzută, care poate duce la atacuri cu chei private similare punților cross-chain, atunci o soluție DA universală descentralizată poate rezolva această problemă. Celestia și polygon avail oferă validium o soluție DA în afara lanțului, devenind un lanț separat. Cu toate acestea, printr-un lanț separat, deși securitatea este îmbunătățită, costul va fi majorat corespunzător.
Expansiunea Rollup are de fapt două părți Una este viteza de execuție a agregatorului, iar cealaltă necesită cooperarea nivelului de disponibilitate a datelor. În prezent, agregatorul este condus de un server centralizat ajunge la infinit, atunci principala dilemă de extindere este că este afectată de debitul de date al soluției de disponibilitate a datelor de bază. Dacă rollup-ul urmărește să-și maximizeze debitul tranzacțiilor, este esențial cum să maximizați volumul spațiului de date al soluției de disponibilitate a datelor.
Revenind la început, utilizați angajamentul KZG sau dovada fraudei pentru a asigura integritatea datelor și utilizați codarea de ștergere pentru a extinde datele tranzacțiilor pentru a ajuta nodurile ușoare să efectueze eșantionarea disponibilității datelor, asigurând în continuare că nodurile ușoare pot verifica corect datele.
Poate doriți să întrebați, de asemenea, cum funcționează angajamentul KZG pentru a asigura integritatea datelor sale? Poate iti dau un mic raspuns:
Angajamentul KZG: Demonstrați că valoarea unui polinom într-o anumită locație este în concordanță cu o valoare numerică specificată. Un angajament KZG nu este altceva decât un tip de angajament polinomial care este capabil să verifice un mesaj fără a primi un mesaj specific. Procesul aproximativ este următorul:
Convertiți datele în polinoame prin codificare de ștergere și extindeți-le. Utilizarea KZG promite să vă asigurați că extinderea noastră este eficientă și că datele originale sunt valabile. Apoi utilizați extinderea pentru a reconstrui datele și, în final, efectuați eșantionarea disponibilității datelor.
Autorul generează un angajament și îl leagă de mesaj. Trimiteți mesajul legat către verificator. Schema de comunicare de aici este legată de dimensiunea dovezii. Verificator (verificator), valorile multiple aduse în câmpul finit verifică dacă sunt încă egale cu a (acesta este procesul de eșantionare a disponibilității).
Celestia necesită validatori pentru a descărca blocuri întregi, iar acum danksharding utilizează tehnici de eșantionare a disponibilității datelor.
Deoarece blocurile sunt parțial disponibile, trebuie să asigurăm sincronizarea în orice moment când reconstruim blocuri. Atunci când un bloc devine parțial disponibil, nodurile comunică între ele pentru a-l pune împreună.
Comparație între angajamentul KZG și dovada fraudei datelor:
Se poate observa că KZG promite să se asigure că extinderea și datele sunt corecte, iar dovada fraudei introduce o terță parte pentru observație. Cea mai evidentă diferență este că dovezile de fraudă necesită un interval de timp pentru ca observatorii să reacționeze înainte de a raporta frauda. În acest moment, este necesară sincronizarea directă a nodurilor, astfel încât întreaga rețea să poată primi dovezile de fraudă la timp. KZG este mult mai rapid decât dovada fraudelor. Folosește metode matematice pentru a se asigura că datele sunt corecte fără a necesita un timp de așteptare.
Poate dovedi că datele și extensia lor sunt corecte. Cu toate acestea, deoarece angajamentul KZG unidimensional necesită resurse mai mari, Ethereum alege angajamentul KZG bidimensional.
De exemplu, 100 de rânduri × 100 de coloane, adică 100,00 de acțiuni. Dar fiecare eșantionare nu este o garanție de una din 10.000. Prin urmare, extinderea de patru ori înseamnă că cel puțin 1/4 din întreaga cotă trebuie să fie indisponibilă. Numai atunci puteți trage o cotă indisponibilă, ceea ce înseamnă că este cu adevărat indisponibilă, deoarece nu poate fi recuperată. Numai atunci când 1/4 este indisponibil și nu poate fi recuperat, eroarea poate fi descoperită cu adevărat, astfel încât probabilitatea de a extrage o dată este de aproximativ 1/4. După pomparea de mai mult de zece ori de cincisprezece ori, se poate obține o garanție de fiabilitate de 99%. Acum alegeți în intervalul de 15-20 de ori.
5、EIP-4844(Proto-Danksharding)
În implementarea proto-danksharding, toți validatorii și utilizatorii trebuie să verifice în mod direct disponibilitatea datelor complete.
Caracteristica principală introdusă de proto-danksharding este un nou tip de tranzacție, pe care îl numim tranzacții cu blob-carrying. O tranzacție care poartă un blob este similară cu o tranzacție obișnuită, cu excepția faptului că conține și o bucată suplimentară de date numită blob. Bloburile sunt foarte mari (~125 kB) și mult mai ieftine decât cantități similare de date de apel. Cu toate acestea, aceste blob-uri nu sunt accesibile din EVM (există doar promisiuni pentru blob-uri). Și bloburile sunt stocate de stratul de consens (lanțul de baliză) mai degrabă decât de stratul de execuție. Acesta este de fapt începutul formării treptate a conceptului de fragmentare a datelor.
Deoarece validatorii și clienții trebuie să descarce în continuare conținutul blob complet, ținta de lățime de bandă a datelor în proto-danksharding este de 1 MB per slot în loc de 16 MB complet. Cu toate acestea, deoarece aceste date nu concurează cu utilizarea gazului în tranzacțiile Ethereum existente, există încă câștiguri mari de scalabilitate.
În timp ce implementarea sharding-ului complet (folosind eșantionarea disponibilității datelor etc.) este o sarcină complexă și rămâne o sarcină complexă după proto-danksharding, această complexitate este conținută în stratul de consens. Odată ce proto-danksharding este lansat, echipele de clienți executivi, dezvoltatorii de pachete și utilizatorii nu vor mai fi necesare pentru a finaliza tranziția la sharding complet. De asemenea, proto-danksharding separă datele blob de calldata, facilitând stocarea datelor blob de către clienți în mai puțin timp.
Este demn de remarcat faptul că toată munca este modificată de stratul de consens și nu necesită nicio muncă suplimentară din partea echipei client, utilizatori sau dezvoltatori Rollup.
Atât EIP-4488, cât și proto-danksharding au ca rezultat utilizarea maximă pe termen lung de aproximativ 1 MB per slot (12 secunde). Acest lucru echivalează cu aproximativ 2,5 teraocteți pe an, mult mai mare decât rata de creștere de care are nevoie Ethereum în prezent.
În cazul EIP-4488, rezolvarea acestei probleme necesită propunerea de expirare a istoricului EIP-4444 (menționată în secțiunea foaie de parcurs), în care clienții nu mai sunt obligați să stocheze istoricul peste o anumită perioadă de timp.
6. Fragmentarea datelor
Aici, voi explica cât mai mult posibil din perspectiva unui începător problemele pe care toată lumea le discută în timpul expansiunii Ethereum. Deci, să ne întoarcem la sharding și să subliniem încă o dată conceptul unilateral de sharding: o înțelegere simplă este procesul de împărțire orizontală a bazei de date pentru a distribui încărcarea.
Aici, o problemă foarte importantă cu sharding-ul nostru de date este că în PBS (proposerii și constructorii de blocuri sunt separați, așa cum se menționează în foaia de parcurs The Merge), în sharding, fiecare grup de noduri procesează doar Tranzacțiile din shard vor fi relativ independente între shard-uri. Deci, cum ar trebui utilizatorii A și B să transfere fonduri între ei dacă se află pe fragmente diferite? Atunci aveți nevoie de capabilități bune de comunicare încrucișată.
Vechea modalitate era de a fragmenta stratul de disponibilitate a datelor, fiecare fragment având propuneri și comitete independenți. În setul de validatori, fiecare validator ia pe rând pentru a verifica datele fragmentate și descarcă toate datele pentru verificare.
Dezavantajele sunt:
Este necesară o tehnologie de sincronizare strictă pentru a se asigura că validatorii se pot sincroniza într-un slot. Validatorii trebuie să adune voturi de la toate comitetele și vor exista și întârzieri aici. Mai mult, este, de asemenea, foarte stresant pentru verificator să descarce complet datele.
A doua abordare este de a abandona validarea completă a datelor și, în schimb, de a adopta o abordare de eșantionare a disponibilității datelor (implementată mai târziu în The Surge). Există două metode de eșantionare aleatoare aici 1) Blocați eșantionarea aleatorie, eșantionând o parte a datelor în felii. Dacă verificarea trece, verificatorul semnează. Dar problema aici este că pot exista cazuri în care tranzacțiile sunt ratate. 2) Reinterpretați datele în polinoame prin codificare de ștergere și apoi utilizați caracteristicile polinoamelor pentru a restaura datele în condiții specifice pentru a asigura disponibilitatea completă a datelor.
Cheia pentru „sharding” este că validatorul nu este responsabil pentru descărcarea tuturor datelor, iar acesta este motivul pentru care Proto-danksharding nu este considerat „sharding” (chiar dacă are „sharding” în numele său). Proto-danksharding necesită ca fiecare validator să descarce toate blob-urile shard pentru a verifica disponibilitatea lor, apoi Danksharding introduce eșantionarea, în care un singur validator trebuie să descarce doar fragmente de shard blob.
3. Viitorul Ethereum: Stratul 3
Seria ZK Layer 2, care este considerată extinderea viitoare a Ethereum, cum ar fi zksync și starknet, toate au propus conceptul de Layer 3. O înțelegere simplă este stratul 2 al stratului 2.
Costurile ridicate de tranzacție pe Ethereum îl împing (L3) să devină stratul de decontare pentru L2. Se crede că, în viitorul apropiat, din cauza costurilor de tranzacție semnificativ mai mici, a suportului sporit pentru instrumentele DeFi și a lichidității crescute furnizate de L2, utilizatorii finali își vor desfășura majoritatea activităților pe L2, Ethereum devenind treptat stratul de decontare.
L2 îmbunătățește scalabilitatea prin reducerea costurilor cu gazul pe tranzacție și creșterea ratelor tranzacțiilor. În același timp, L2s păstrează beneficiile descentralizării, logicii universale și compozabilității. Cu toate acestea, unele aplicații necesită personalizări specifice, care pot fi deservite mai bine de un nou strat independent: L3!
L3 este legat de L2 la fel cum L2 este legat de L1. Atâta timp cât L2 poate suporta contracte inteligente Verifier, L3 poate fi implementat folosind dovezi de valabilitate. Când L2 folosește și dovezile de validitate transmise la L1, așa cum face StarkNet, aceasta devine o structură recursivă foarte elegantă, în care avantajele de compresie ale demonstrațiilor L2 sunt multiplicate cu avantajele de compresie ale demonstrațiilor L3. În teorie, dacă fiecare strat a realizat, să zicem, o reducere a costurilor de 1000 de ori, L3 ar putea fi de 1.000.000 de ori mai ieftin decât L1 - menținând în același timp securitatea L1. Acesta este, de asemenea, un caz real de utilizare pentru dovezile recursive cu care Starknet se mândrește.
O parte din cunoștințele „On-chain and Off-chain of Data Availability Layer” sunt necesare aici. Întregul strat 3 include:
Rollup (disponibilitatea datelor în lanț), valabilitate (disponibilitatea datelor în afara lanțului). Cele două tipuri corespund cerințelor de aplicare diferite. Companiile Web2 care sunt sensibile la preț și date pot folosi Validium pentru a pune datele în afara lanțului, ceea ce reduce considerabil costurile cu gazul în lanț și pot obține confidențialitate fără a dezvălui datele utilizatorilor, permițând companiilor să își controleze pe deplin datele folosind formate de date personalizate. modelul de afaceri de date al întreprinderii anterioare poate funcționa în continuare fără probleme.
L2 este pentru extensii și L3 este pentru funcții personalizate, cum ar fi confidențialitatea.
În această viziune, nu există nicio încercare de a oferi „scalabilitate pătratică”, în schimb, există un strat în stivă care ajută aplicațiile la scalarea, iar apoi straturile sunt separate pe baza cerințelor funcționale personalizate pentru diferite cazuri de utilizare.
L2 este pentru extensii generale și L3 este pentru extensii personalizate.
Extensiile personalizate pot veni sub diferite forme: aplicații specializate care folosesc altceva decât EVM pentru calcul, pachete de pachete a căror comprimare a datelor este optimizată pentru formatul de date specific aplicației (inclusiv separarea „date” de „dovezi” și înlocuiește complet proba cu un singur SNARK pe bloc), etc.
L2 este folosit pentru extinderea fără încredere (rollup), iar L3 este folosit pentru extinderea cu încredere slabă (validium).
Validium este un sistem care utilizează SNARK-uri pentru a verifica calculele, dar lasă disponibilitatea datelor unei terțe părți sau unui comitet de încredere. După părerea mea, Validium este serios subestimat: în special, multe aplicații „blockchain de întreprindere” pot fi de fapt cel mai bine deservite de un server centralizat care rulează un probator Validium și trimite regulat hashe-uri în lanț . Validium este mai puțin sigur decât rollup, dar poate fi mult mai ieftin.
Pentru dezvoltatorii dApp, există mai multe opțiuni pentru infrastructură:
Dezvoltați singur un pachet (ZK Rollups sau Optimistic Rollups)
Avantajul este că poți moșteni ecosistemul Ethereum (utilizatori) și securitatea acestuia, dar pentru o echipă dApp, costul de dezvoltare al Rollup-ului este evident prea mare.
Alege Cosmos, Polkadot sau Avalanche
Costul dezvoltării va fi mai mic (de exemplu, dydx a ales Cosmos), dar veți pierde ecosistemul Ethereum (utilizatori) și securitatea.
Dezvoltați-vă propriul blockchain de nivel 1
Costul de dezvoltare și dificultatea adusă de acesta sunt foarte mari, dar poate avea cel mai mare control.
Să comparăm trei situații:
Dificultate/Cost: Alt-layer 1 > Rollup > Cosmos Security: Rollup > Cosmos > Alt-layer 1 Ecologie/Utilizatori: Rollup > Cosmos > Alt-layer 1 Control: Alt-layer 1 > Cosmos > Rollup
În calitate de dezvoltator dApp, dacă doriți să moșteniți securitatea și traficul pe Ethereum, nu puteți redezvolta un lanț și puteți alege doar rollup. Cu toate acestea, este foarte costisitor să dezvoltați singur un pachet layer 2, așa că soluția adecvată devine utilizarea SDK-ului layer 3 pentru a dezvolta un pachet specific aplicației (rollup specific aplicației), adică Layer 3.
4. Dezvoltarea viitoare a stratului 2
Deoarece Ethereum este proiectat pe baza modelului de cont, toți utilizatorii se află într-un arbore de stare întreg, astfel încât paralelismul nu poate fi realizat. Prin urmare, cătușele Ethereum în sine îi impun să dezlipească operațiunile de execuție și să combine mai multe tranzacții cumulate într-o singură tranzacție. un strat de tasare. Toate problemele se concentrează acum pe îmbunătățirea debitului stratului 2. Nu numai că utilizarea stratului 3 poate îmbunătăți debitul tranzacțiilor, dar și implementarea procesării paralele pe stratul 2 poate îmbunătăți foarte mult debitul întregii rețele.
Problema paralelizării este, de asemenea, explorată în mod activ de starknet Deși algoritmul de demonstrare actual este încă o capcană, nu se așteaptă să fie o piedică în viitor. Blocajele potențiale includ:
Gestionarea sortării tx: Unele lucrări de sortare par a fi în mod inerent în serie. Lățimea de bandă: interconexiunile dintre mai multe secvențe vor fi limitate. Mărimea stării L2
În comunitatea Starknet, membrii au subliniat, de asemenea, că metoda de procesare paralelă a aptos este foarte bună. La rândul său, Starknet avansează în prezent și capacitatea de a face sortare paralelă tx în sortator.
5. Rezumat
Ethereum înlătură stratul de execuție și îndreaptă totul către viziunea sa despre un strat de decontare „global”. Deși întregul Ethereum progresează în prezent lent, asta se datorează faptului că este prea mare în ansamblu și fiecare actualizare implică multe interese și compromisuri. Dar este de netăgăduit că Ethereum suferă schimbări majore, numărul mare de activități în lanț, îmbunătățiri ale mecanismelor economice și scalabilitatea Ethereum 2.0 conduce ICO, Defi, NFT și multe alte lucruri demne de entuziasm entuziasmul comunității Ethereum. Cred că, pe măsură ce tot mai multe țări implementează noduri Ethereum, de exemplu, guvernul capitalului argentinian intenționează să implementeze noduri de verificare Ethereum în 2023, Ethereum va putea într-adevăr să-și realizeze marea sa viziune în viitorul apropiat.
