Hvad er Sharding? Dette Ethereum-skaleringskoncept forklaret

Hvad er Sharding?

Efterhånden som skaleringsdebatten i kryptokurver fortsætter, har nogle potentielle løsninger faktisk været under udvikling i nogen tid nu.

Specifikt i tilfælde af Ethereum, hvor der er stort fokus på decentralisering og sikkerhed på bekostning af skalerbarhed, betragtes anvendelsen af ​​sharding i forbindelse med implementering af Proof of Stake-konsensus som den meget nødvendige mekanisme, gennem hvilken netværket kan skalere til praktiske niveauer for applikationer, mens den stadig bevarer sin decentralisering og sikkerhed.

Sharding er et komplekst emne, især når det anvendes på et decentralt peer-to-peer-netværk som Ethereum, hvor netværkets globale tilstand konstant opdateres.

Så hvad præcis er sharding, og hvordan kan det hjælpe blockchain-netværk med at skalere?

Sharding og distribueret computerbaggrund

Sharding er faktisk meget ældre end blockchain-teknologi og er blevet implementeret i en række forskellige systemer fra forretningsdatabaseoptimeringer til Googles globale Spanner-database.

  • I det væsentlige er sharding en bestemt metode til vandret partitionering af data i en database.
  • Mere generelt er databasen opdelt i små stykker kaldet “shards”, der når de sammen danner den originale database.
  • I distribuerede blockchain-netværk består netværket af en række noder forbundet i et peer-to-peer-format uden central myndighed.
  • Som det er tilfældet med nuværende blockchain-systemer, gemmer hver node alle netværkets tilstande og behandler alle transaktionerne.
  • Selvom dette giver sikkerhed på højt niveau gennem decentralisering, især i Proof of Work-systemer som Bitcoin og Ethereum, fører det til legitime skaleringsproblemer.

Sharding af Ethereum

Ved hjælp af Ethereum som et eksempel lagrer en fuld node i Ethereum-netværket hele blockchain-tilstanden, inklusive kontosaldoer, opbevaring og kontraktkode.

Desværre øges konsensus kun lineært, da netværket øges i størrelse i et eksponentielt tempo. Denne begrænsning skyldes den nødvendige kommunikation mellem de noder, der er nødvendige for at nå konsensus.

Noder i netværket har ikke særlige privilegier, og hver knude i netværket gemmer og behandler hver transaktion. Som et resultat i et netværk på størrelse med Ethereum bliver problemer som høje gasomkostninger og længere bekræftelsestider for transaktioner mærkbare problemer, når netværket er anstrengt. Netværket er kun så hurtigt som de enkelte knudepunkter snarere end summen af ​​dets dele.

Sharding hjælper med at lindre disse problemer ved at give en interessant, men alligevel kompleks løsning. Konceptet involverer gruppering af undergrupper af noder i skår, som igen behandler transaktioner, der er specifikke for den skår. Det giver systemet mulighed for at behandle mange transaktioner parallelt og dermed øge kapaciteten markant.

En enklere måde at udtrykke det på ville være at forestille sig opdelingen af ​​De Forenede Stater i stater.

Mens hver stat (en skår i dette tilfælde) er en del af det større USA (Ethereum-netværk), har de deres egne specifikke regler, grænser og delmængder af befolkninger. De deler dog et universelt sprog og en kultur som en del af deres større netværk, der udgør landet.

Eller endnu bedre, med Vitalik Buterins egne ord:

 ”Forestil dig, at Ethereum er opdelt i tusinder af øer. Hver ø kan gøre sine egne ting. Hver af øerne har sine egne unikke egenskaber, og alle, der tilhører denne ø, dvs. kontiene, kan interagere med hinanden, OG de kan frit forkæle sig med alle dens funktioner. Hvis de vil kontakte andre øer, bliver de nødt til at bruge en slags protokol. ”

Som du kan se, giver begrebet fragmentering af netværket i mere effektive stykker netværket mulighed for at fungere som summen af ​​dets dele snarere end at være begrænset af hastigheden på hver enkelt knude.

Hvordan fungerer Sharding i Blockchains?

Vi vil fortsætte med at bruge Ethereum som et eksempel i dette, da det er de mest kendte og besværlige sharding-forsøg på blockchain-arenaen, da Ethereum-udviklerne implementerer det, der er kendt som “state sharding”.

Den nuværende tilstand af Ethereum-blockchain er kendt som den “globale stat” og er, hvad alle kan se, når de ser på blockchain i et bestemt tilfælde.

Den vanskelige del ved implementering af sharding i Ethereum er, at ved at shardere noderne i mindre delmængder skal disse delmængder være i stand til at behandle specifikke sæt transaktioner, mens de samtidig opdaterer netværkets tilstand, alt imens det sikres, at det er gyldigt.

Sharding i Ethereum formodes at blive implementeret i en to-fase udrulning, mere end sandsynligt efter at Proof of Stake er implementeret i netværket. Fase et vil være datalaget bestående af konsensus om, hvilke data der er i skårene. Fase to er tilstandslaget. Alt dette er meget flydende, så en generel oversigt over, hvordan det kan fungere, er nedenfor.

Ethereum nedbryder netværket i specifikke skår. Hver shard tildeles en bestemt gruppe af transaktioner, der bestemmes ved at gruppere specifikke konti (inklusive smarte kontrakter) i en shard. Hver transaktionsgruppe har et overskrift og et organ, der består af følgende.

Header

  • Transaktionsgruppens shard-id
  • Tildeling af validatorer gennem tilfældig stikprøve (verificer transaktionerne i sharden)
  • State Root (tilstand af skorpens mærkerot før og efter tilføjede transaktioner)

Legeme

  • Alle de transaktioner, der hører til transaktionsgruppen, og som er en del af den specifikke shard.

Transaktioner er specifikke for hver skår og forekommer mellem konti, der er hjemmehørende i skåret.

Når transaktioner er bekræftet, opdateres netværksændringerne, og kontosaldoer, opbevaring osv. Opdateres. For at transaktionsgruppen kan bekræfte, at den er gyldig, skal transstatusgruppens præstatstilstand matche shardroden i den globale tilstand. Hvis de matcher, valideres transaktionsgruppen, og den globale tilstand opdateres gennem den specifikke shard ID-tilstandsrod.

I stedet for kun at indeholde en statsrod indeholder hver blok i Ethereum-blockchain nu både en statsrot og transaktionsgruppens rod. Transaktionsgruppens rod er mærkeroden for alle transaktionsgrupperne fra de specifikke shards for den pågældende transaktionsblok.

Dybest set er der en mærkerod af alle de forskellige skår, der indeholder de opdaterede og verificerede transaktionsgrupper. Denne rod er gemt i blockchain sammen med den opdaterede tilstandsrot.

Anvendelsen af ​​mærketræskoncepter i denne struktur er afgørende for at sikre blockchain-gyldigheden. At forstå hvordan et merkle-træ og specifikt et merkle-rodfunktion kan hjælpe dig med at forstå disse begreber meget lettere.

Hvad er et Merkle Tree

Læs: Hvad er et Merkle Tree ?

Konsensus inden for en skår opnås gennem en Bevis for stav-konsensus af tilfældigt valgte noder, der anvendes til en skår til specifik konsensusrunde.

Dette giver ikke kun enighed for konsensus, som er nødvendig inden for skårene, men giver også et bestemt forsvar for et angreb, som en Proof of Work-blockchain ville være modtagelig for i dette tilfælde.

Den krævede hashkraft til at overskride en bestemt shard i et PoW-sharded-netværk reduceres drastisk, og muligheden for en ondsindet aktør til at overtage en shard gennem beregningskraft er mulig.

Gennem dette kunne den dårlige skuespiller angribe andre skår gennem kommunikationsprotokollen, som er en af ​​de mere komplicerede og vigtige træk ved sharding-arkitektur. Valg af tilfældig prøveudtagning af validatorerne inden for en skår klarer at kvæle denne type angreb, da en dårlig skuespiller ikke ved, hvilken skår de placeres i, før de faktisk placeres i den.

Yderligere vil tilfældig prøveudtagning blive brugt til at vælge de validatorer, der faktisk validerer fra det tilfældige valideringssæt.

Kommunikationsprotokollen er afgørende for, at sharding-arkitekturen fungerer korrekt i systemet. Du kan tænke på kommunikationsprotokollen som det universelle sprog, der er konsistent blandt staterne som en del af de større USA.

Imidlertid er design af denne protokol meget udfordrende og skal udføres, så den kun bruges, når det er nødvendigt. Det bliver nødvendigt, når en bestemt knude kræver information, der ikke er gemt i sin egen skår og skal finde skåret med den nødvendige information. Denne kommunikation kaldes cross-shard-kommunikation.

Cross-shard-kommunikationen opnås ved at anvende konceptet med transaktionskvitteringer. Kvitteringen for en transaktion er gemt i en merkle-rod, der let kan verificeres, men som ikke er en del af statens rod.

Sharden, der modtager en transaktion fra en anden shard, kontrollerer merkle-roden for at sikre, at kvitteringen ikke er brugt. I det væsentlige lagres kvitteringerne i en delt hukommelse, der kan verificeres af andre skår, men ikke ændres. Derfor er skårene gennem en distribueret opbevaring af kvitteringer i stand til at kommunikere med hinanden.

Sharding bevæger sig fremad

Sharding i Ethereum forventes implementeret efter Casper PoS-opgraderingen. For nylig der har været nogle udviklinger vedrørende Ethereum 2.0 som involverer implementering af både Casper og sharding.

Sharding er også implementeret i et par andre platforme, især Zilliqa. Imidlertid implementerer Zilliqa ikke state sharding på dette tidspunkt og fokuserer i stedet på at levere en høj kapacitet blockchain ved at udnytte transaktions- og computational sharding.

ZilliqaLæs vores guide til Zilliqa

Konklusion

Sharding tjener til at tilbyde nogle lovende løsninger til elefanten i rummet på blockchain-platforme lige nu, skalerbarhed.

Mens Bitcoins lynnetværk er i testfasen og hidtil har vist nogle meget lovende fremskridt, medfører Ethereums løsning nogle unikke udfordringer, da det er knyttet som en verdenscomputer, der er Turing komplet.

Sharding fungerer kun direkte på protokolniveau, så det er ikke nødvendigvis relevant for slutbrugeren eller dapp-udvikleren at lære om.

Uanset hvad er Ethereums forsøg på deling af et stort, decentralt netværk en imponerende indsats og vil være en enorm bedrift, hvis den gennemføres med succes.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me