Mis on Sharding? Seda Ethereumi skaleerimise kontseptsiooni on selgitatud

As skaleerimise arutelu Krüptovaluutade puhul on mõned potentsiaalsed lahendused tegelikult olnud väljatöötamisel juba mõnda aega.

Täpsemalt juhul Ethereum, kus suurt tähelepanu pööratakse detsentraliseerimisele ja turvalisus skaleeritavuse arvelt killustamise rakendamine koos juurutamisega Stake tõendamine konsensust peetakse väga vajalikuks mehhanismiks, mille kaudu võrk saab rakenduste jaoks praktilise tasemeni ulatuda, säilitades samas oma detsentraliseerituse ja turvalisuse.

Jagamine on keeruline teema, eriti kui seda kasutatakse detsentraliseeritud võrdõigusvõrgus nagu Ethereum kus võrgu globaalset olekut pidevalt uuendatakse.

Mis siis täpselt on jagamine ja kuidas see aitab plokiahelavõrke skaleerida?

Jagamise ja hajutatud andmetöötluse taust

Jagamine on tegelikult palju vanem kui plokiahela tehnoloogia ja seda on rakendatud erinevates süsteemides alates ettevõtte andmebaaside optimeerimisest kuni Google'i ülemaailmne mutrivõtme andmebaas.

  • Põhimõtteliselt on jagamine spetsiifiline meetod andmete horisontaalseks jaotamiseks andmebaasis.
  • Üldisemalt on andmebaas jaotatud väikesteks tükkideks, mida nimetatakse "kildudeks", mis kokku liidetuna moodustavad algse andmebaasi.
  • Hajutatud plokiahelavõrkudes koosneb võrk sõlmede seeriast, mis on ühendatud võrdõigusvormingus ilma keskasutuseta.
  • Nagu praeguste plokiahela süsteemide puhul, salvestab iga sõlm võrgu kõik olekud ja töötleb kõiki tehinguid.
  • Kuigi see tagab detsentraliseerimise kaudu kõrgetasemelise turvalisuse, eriti töötõendite süsteemides, nagu näiteks Bitcoin ja Ethereum, põhjustab see õigustatud skaleerimisprobleeme.

Ethereumi jagamine

Ethereumi näitel on täielik sõlm Ethereum võrk salvestab kogu plokiahela oleku, sealhulgas kontojäägid, salvestusruumi ja lepingukoodi.

Kahjuks, kuna võrk kasvab eksponentsiaalses tempos, suureneb konsensus ainult lineaarselt. See piirang on tingitud konsensuse saavutamiseks vajalikust sidepidamisest sõlmede vahel.

Võrgusõlmedel ei ole eriõigusi ning võrgu iga sõlm salvestab ja töötleb iga tehingut. Selle tulemusena muutuvad Ethereumi suuruses võrgus sellised probleemid nagu kõrged gaasikulud ja pikem tehingukinnitusaeg märgatavateks probleemideks, kui võrk on pinges. The võrk on ainult nii kiire kui üksikud sõlmed, mitte selle osade summa.

Jagamine aitab neid probleeme leevendada, pakkudes huvitavat, kuid keerukat lahendust. Kontseptsioon hõlmab sõlmede alamhulkade rühmitamist kildudeks, mis omakorda töötlevad sellele killule omaseid tehinguid. See võimaldab süsteemil töödelda paljusid tehinguid paralleelselt, suurendades seeläbi oluliselt läbilaskevõimet.

Lihtsam viis selle väljendamiseks oleks kujutada ette Ameerika Ühendriikide jagunemist osariikideks.

Kuigi iga osariik (antud juhul killuke) on osa suuremast Ameerika Ühendriikidest (Ethereumi võrk), on neil oma spetsiifilised reeglid, piirid ja populatsioonide alamhulgad. Siiski jagavad nad universaalset keelt ja kultuuri osana oma suuremast võrgustikust, mis moodustab riigi.

Või veel parem, sisse Vitalik Buterinenda sõnad:

 "Kujutage ette, et Ethereum on jagatud tuhandeteks saarteks. Iga saar saab teha oma asja. Igal saarel on oma ainulaadsed omadused ja kõik saarele kuuluvad, st kontod, saavad üksteisega suhelda JA nad võivad vabalt nautida selle kõiki funktsioone. Kui nad tahavad teiste saartega ühendust võtta, peavad nad kasutama mingit protokolli.

Nagu näete, võimaldab võrgu killustamine tõhusamateks tükkideks võrgul toimida oma osade summana, selle asemel, et seda piirata iga üksiku sõlme kiirusega.

Kuidas jagamine plokiahelates töötab?

Jätkame Ethereumi kasutamist selles näitena, kuna see on plokiahela areenil kõige tuntum ja vaevarikkam killustamiskatse, kuna Ethereumi arendajad rakendavad nn.osariigi jagamine".

Ethereumi plokiahela praegune olek on tuntud kui "globaalne riik” ja seda näevad kõik, kui nad vaatavad plokiahelat konkreetsel juhul.

Ethereumis jagamise rakendamise keeruline osa seisneb selles, et sõlmede jagamisel väiksemateks alamhulkadeks peavad need alamhulgad olema võimelised töötlema konkreetseid tehingute komplekte, värskendades samal ajal võrgu olekut, tagades selle kehtivuse.

Jagamine Ethereumis peaks toimuma kahefaasilisena, tõenäoliselt pärast seda Stake tõendamine rakendatakse aastal võrk. Esimene etapp on andmekiht, mis koosneb konsensusest selle kohta, millised andmed on killustikus. Teine faas on olekukiht. Kõik see on väga sujuv, seega on allpool toodud üldine ülevaade selle kohta, kuidas see võib toimida.

Ethereum jagab võrgu konkreetseteks kildudeks. Igale killule on määratud konkreetne tehingute rühm, mis määratakse konkreetsete kontode (sh nutikate lepingute) rühmitamise teel killukesse. Igal tehingurühmal on päis ja keha, mis koosneb järgmistest osadest.

  • Tehingurühma killu ID
  • Validaatorite määramine läbi juhuslik valim (kontrollige killus olevaid tehinguid)
  • Oleku juur (shardi märgijuure olek enne ja pärast tehingute lisamist)

Keha

  • Kõik tehingud, mis kuuluvad tehingugruppi ja on osa konkreetsest killust.

Tehingud on iga killu jaoks spetsiifilised ja toimuvad sellele killule omaste kontode vahel.

Tehingute kontrollimisel muutub võrgu olek ning uuendatakse kontojääke, salvestusruumi jms. Tehingurühma kehtivuse kontrollimiseks peab tehingurühma olekueelne juur ühtima globaalses olekus oleva shardi juurega. Kui need ühtivad, kontrollitakse tehingugruppi ja globaalset olekut värskendatakse konkreetse killu ID olekujuure kaudu.

Selle asemel, et sisaldada ainult olekujuurt, sisaldab iga Ethereumi plokiahela plokk nüüd nii olekujuurt kui ka tehingurühma juurt. Tehingugrupi juur on kõigi selle tehinguploki konkreetsete osade tehingurühmade märgijuur.

Põhimõtteliselt on kõigi erinevate killud, mis sisaldavad värskendatud ja kinnitatud tehingurühmi, juur. See juur salvestatakse plokiahelasse koos värskendatud olekujuurega.

Merkle puu kontseptsioonide kasutamine selles struktuuris on plokiahela kehtivuse tagamiseks ülioluline. Mõistes, kuidas a merkle puu ja konkreetselt merkle juurteos, aitab teil neid mõisteid palju hõlpsamini mõista.

Mis on Merkle puu

Loe: Mis on Merkle puu?

Killu sees konsensus saavutatakse juhuslikult valitud sõlmede Proof of Stake konsensuse kaudu, mida rakendatakse killule konkreetse konsensusvooru jaoks.

See mitte ainult ei taga konsensuse lõplikkust, mis on vajalik kildude sees, vaid pakub ka erilist kaitset rünnakule, mida Töö tõestamine plokiahelast oleks antud juhul vastuvõtlik.

Räsivõimsus, mis on vajalik konkreetse killu ületamiseks PoW-i killustatud võrgus, on drastiliselt vähenenud ja pahatahtliku osaleja võime arvutusvõimsuse kaudu killu üle võtta on teostatav.

Selle kaudu võib halb näitleja rünnata teisi kilde sideprotokolli kaudu, mis on killustamisarhitektuuri üks keerulisemaid ja olulisemaid omadusi. Validaatorite juhuslik valimine killu sees suudab seda tüüpi rünnaku lämmatada, kuna halb tegutseja ei tea, millisesse kildu nad paigutatakse, enne kui nad sinna tegelikult asetatakse.

Lisaks kasutatakse valideerijate valimiseks juhuslikku valimit tegelikult valideerimine sellest juhuslikust valideerimiskomplektist.

Sideprotokoll on süsteemis korrektse jaotusarhitektuuri toimimiseks ülioluline. Sideprotokolli võib pidada universaalseks keeleks, mis on järjekindel osariikides, mis kuuluvad suuremasse USAsse.

Selle protokolli kujundamine on aga väga keeruline ja seda tuleb teha nii, et seda kasutatakse ainult vajaduse korral. See muutub vajalikuks, kui konkreetne sõlm nõuab teavet, mida ei salvestata tema enda killustikus, ja ta peab vajaliku teabega killu leidma. Sellist suhtlust tuntakse ristkilludevahelise suhtlusena.

Killudevaheline suhtlus saavutatakse tehingute laekumiste kontseptsiooni rakendamisega. Tehingu kviitung salvestatakse merkle juure, mida saab hõlpsasti kontrollida, kuid mis ei ole osa olekujuurest.

Teiselt killult tehingut saav kild kontrollib merkle juurt, et veenduda, et kviitung pole kulunud. Põhimõtteliselt salvestatakse kviitungid jagatud mällu, mida saab kontrollida teiste kildudega, kuid mida ei saa muuta. Seetõttu saavad killud kviitungite hajutatud salvestusruumi kaudu üksteisega suhelda.

Jagamine Edasiliikumine

Jagamine Ethereumis rakendub eeldatavasti pärast Casperit PoS versiooniuuendus. Hiljuti seal Ethereum 2.0 osas on toimunud mõningaid arenguid mis hõlmavad mõlema rakendamist Casper ja killustamine.

Jagamist on rakendatud ka mõnel teisel platvormil, eelkõige Zilliqa. Kuid Zilliqa ei rakenda praegu oleku jagamist ja keskendub selle asemel suure läbilaskevõimega plokiahela pakkumisele, kasutades tehingute ja arvutuslikku jaotust.

ZilliqaLoe meie Zilliqa teejuht

Järeldus

Sharding pakub praegu plokiahela platvormide ruumis elevandile paljutõotavaid lahendusi, mastaapsust.

Kuigi Bitcoini välkvõrk on testimisfaasis ja on seni näidanud väga paljutõotavaid edusamme, toob Ethereumi lahendus endaga kaasa unikaalseid väljakutseid, kuna see on seotud maailmaarvutiga, mis on Turingi valmis.

Jagamine töötab otseselt ainult protokolli tasemel, nii et lõppkasutaja või dapp-arendaja jaoks ei pruugi sellest teada saada.

Sellele vaatamata on Ethereumi katse eraldada riiki tohutu detsentraliseeritud võrgu jaoks muljetavaldav ettevõtmine ja eduka rakendamise korral on see tohutu saavutus.

Allikas: https://blockonomi.com/sharding/