Vad är Sharding? Detta Ethereum-skalningskoncept förklaras

Vad är Sharding?

När skalningsdebatten i kryptovalutor fortsätter har vissa potentiella lösningar faktiskt utvecklats ganska länge nu.

När det gäller Ethereum, där ett stort fokus läggs på decentralisering och säkerhet på bekostnad av skalbarhet, betraktas tillämpningen av skärning i samband med genomförandet av Proof of Stake-konsensus som den välbehövliga mekanismen genom vilken nätverket kan skala till praktiska nivåer för applikationer och samtidigt behålla sin decentralisering och säkerhet.

Sharding är ett komplext ämne, särskilt när det tillämpas på ett decentraliserat peer-to-peer-nätverk som Ethereum där nätverkets globala tillstånd ständigt uppdateras.

Så vad exakt skärpa och hur kan det hjälpa blockchain-nätverk att skala?

Sharding och distribuerad datorbakgrund

Sharding är faktiskt mycket äldre än blockchain-teknik och har implementerats i en mängd olika system från affärsdatabasoptimeringar till Googles globala Spanner-databas.

  • I huvudsak är skärning en särskild metod för att horisontellt partitionera data i en databas.
  • Mer generellt är databasen uppdelad i små bitar som kallas “skärvor”, som när de sammanställs bildar den ursprungliga databasen.
  • I distribuerade blockchain-nätverk består nätverket av en serie noder anslutna i ett peer-to-peer-format, utan central myndighet.
  • Som det är fallet med nuvarande blockchain-system lagrar varje nod alla tillstånd i nätverket och behandlar alla transaktioner.
  • Även om detta ger hög nivå säkerhet genom decentralisering, särskilt i Proof of Work-system som Bitcoin och Ethereum, leder det till legitima skalningsproblem.

Ethereum Sharding

Med hjälp av Ethereum som ett exempel lagrar en fullständig nod i Ethereum-nätverket blockkedjans hela tillstånd, inklusive kontosaldon, lagring och kontraktskod.

Tyvärr, när nätverket ökar i storlek i en exponentiell takt ökar konsensusen bara linjärt. Denna begränsning beror på den kommunikation som behövs mellan noder som behövs för att nå enighet.

Noder i nätverket har inte särskilda behörigheter och varje nod i nätverket lagrar och bearbetar varje transaktion. Som ett resultat, i ett nätverk som är lika stort som Ethereums, blir problem som höga gaskostnader och längre transaktionsbekräftelsestider märkbara problem när nätet är ansträngt. Nätverket är bara lika snabbt som de enskilda noderna snarare än summan av dess delar.

Sharding hjälper till att lindra dessa problem genom att tillhandahålla en intressant, men ändå komplex lösning. Konceptet innebär att gruppera delmängder av noder i skärvor som i sin tur behandlar transaktioner som är specifika för den skärvan. Det gör att systemet kan bearbeta många transaktioner parallellt och därmed öka genomströmningen avsevärt.

Ett enklare sätt att uttrycka det skulle vara att föreställa sig delningen av USA i stater.

Medan varje stat (en skärv i detta fall) är en del av de större USA (Ethereum-nätverket), har de sina egna specifika regler, gränser och delmängder av befolkningar. De delar dock ett universellt språk och en kultur som en del av deras större nätverk som utgör landet.

Eller ännu bättre, med Vitalik Buterins egna ord:

 ”Tänk dig att Ethereum har delats upp i tusentals öar. Varje ö kan göra sina egna saker. Var och en av öarna har sina egna unika egenskaper och alla som tillhör den ön, dvs kontona, kan interagera med varandra OCH de kan fritt hänge sig åt alla dess funktioner. Om de vill kontakta andra öar måste de använda något slags protokoll. ”

Som du kan se tillåter konceptet att fragmentera nätverket i mer effektiva delar nätverket att fungera som summan av dess delar snarare än att begränsas av hastigheten för varje enskild nod.

Hur fungerar skärning i blockkedjor?

Vi kommer att fortsätta att använda Ethereum som ett exempel i detta eftersom det är de mest kända och ansträngande skärpningsförsöken på blockchain-arenan, eftersom Ethereum-utvecklarna implementerar det som kallas “state sharding”.

Det nuvarande tillståndet för Ethereum blockchain är känt som “global state” och är vad alla kan se när de tittar på blockchain vid en specifik instans.

Den knepiga delen vid implementering av skärning i Ethereum är att genom att dela noder i mindre delmängder måste dessa delmängder kunna bearbeta specifika uppsättningar transaktioner samtidigt som nätverkets status uppdateras, samtidigt som det säkerställer att det är giltigt..

Sharding i Ethereum ska implementeras i en tvåfasutrullning, mer än troligt efter att Proof of Stake har implementerats i nätverket. Fas ett kommer att vara datalagret som består av enighet om vilken data som finns i delarna. Fas två är tillståndsskiktet. Allt detta är väldigt flytande, så en allmän sammanfattning av hur det kan fungera är nedan.

Ethereum bryter ner nätverket i specifika skärvor. Varje shard tilldelas en specifik grupp av transaktioner som bestäms genom att gruppera specifika konton (inklusive smarta kontrakt) i en shard. Varje transaktionsgrupp har en rubrik och en kropp som består av följande.

Rubrik

  • Transaktionsgruppens shard-ID
  • Tilldelning av validerare genom slumpmässigt urval (verifiera transaktionerna i skärvan)
  • State Root (tillståndet för märksroten på skärvan före och efter tillagda transaktioner)

Kropp

  • Alla transaktioner som tillhör transaktionsgruppen som ingår i den specifika skärvan.

Transaktioner är specifika för varje skärv och sker mellan konton som är ursprungliga för det skärvan.

När transaktioner verifieras uppdateras nätverkets tillstånd och kontosaldon, lagring osv. För att transaktionsgruppen ska kunna verifieras som giltig måste transstatusgruppens pre-state-rot matcha shard-roten i det globala tillståndet. Om de matchar valideras transaktionsgruppen och den globala staten uppdateras genom den specifika shard-ID-tillståndsroten.

Istället för att endast innehålla en tillståndsrot innehåller varje block i Ethereum-blockkedjan nu både en tillståndsrot och transaktionsgruppsrot. Transaktionsgruppsrot är merkle-roten för alla transaktionsgrupper från de specifika delarna för det transaktionsblocket.

I grund och botten finns det en märkesrot av alla de olika skärvorna som innehåller de uppdaterade och verifierade transaktionsgrupperna. Denna rot lagras i blockkedjan tillsammans med den uppdaterade tillståndsroten.

Användningen av merkle-trädkoncept i denna struktur är avgörande för att blockkedjan ska vara giltig. Att förstå hur ett merkle-träd och specifikt ett merkle-root fungerar kan hjälpa dig att förstå dessa begrepp mycket lättare.

Vad är ett Merkle Tree

Läs: Vad är ett Merkle Tree ?

Konsensus inom en skärva uppnås genom ett bevis för insats av slumpmässigt utvalda noder som appliceras på en skärva för specifik konsensusrunda.

Detta ger inte bara enighet för konsensus, vilket är nödvändigt inom skärvorna, utan ger också ett särskilt försvar mot en attack som en Proof of Work blockchain skulle vara mottaglig för i detta fall.

Den hashkraft som krävs för att överskrida en specifik skärva i ett PoW-skärdat nätverk reduceras drastiskt och möjligheten för en skadlig aktör att ta över en skärva genom beräkningskraft är möjlig.

Genom detta kunde den dåliga skådespelaren attackera andra skärvor genom kommunikationsprotokollet som är en av de mer komplicerade och viktiga funktionerna i skärvningsarkitektur. Slumpmässigt urval av valideringen av validerarna i en skärva klarar att kväva denna typ av attack eftersom en dålig skådespelare inte vet vilken skärva de placeras i innan de faktiskt placeras i den.

Vidare kommer slumpmässig sampling att användas för att välja validerare som faktiskt validerar från den slumpmässiga valideringsuppsättningen.

Kommunikationsprotokollet är viktigt för att skärvningsarkitekturen fungerar korrekt i systemet. Du kan tänka på kommunikationsprotokollet som det universella språket som är konsekvent bland staterna som en del av de större USA.

Att utforma detta protokoll är dock mycket utmanande och måste utföras så att det bara används när det behövs. Det blir nödvändigt när en specifik nod kräver information som inte lagras i sin egen skärv och måste hitta skärvan med erforderlig information. Denna kommunikation kallas cross-shard-kommunikation.

Cross-shard-kommunikationen uppnås genom att tillämpa konceptet med transaktionskvitton. Kvittot för en transaktion lagras i en merkle-root som lätt kan verifieras men som inte är en del av state-root.

Sharden som tar emot en transaktion från en annan shard kontrollerar merkle-roten för att säkerställa att kvittot inte har spenderats. I huvudsak lagras kvitton i ett delat minne som kan verifieras av andra skärvor men inte ändras. Därför kan skärvor kommunicera med varandra genom en distribuerad lagring av kvitton.

Sharding går framåt

Sharding i Ethereum förväntas implementeras efter Casper PoS-uppgraderingen. Nyligen där har varit en del utveckling angående Ethereum 2.0 som involverar implementering av både Casper och skärning.

Sharding har också implementerats på några andra plattformar, särskilt Zilliqa. Zilliqa implementerar emellertid inte tillståndsdelning just nu och fokuserar istället på att tillhandahålla en hög genomströmningskedja genom att använda transaktions- och beräkningsdelning..

ZilliqaLäs vår guide till Zilliqa

Slutsats

Sharding tjänar till att erbjuda några lovande lösningar för elefanten i rummet för blockchain-plattformar just nu, skalbarhet.

Medan Bitcoins blixtnätverk är i testfasen och har visat några mycket lovande framsteg hittills, medför Ethereums lösning några unika utmaningar eftersom det är knutet till en världsdator som är Turing komplett.

Sharding fungerar direkt bara på protokollnivå, så för slutanvändaren eller dapputvecklaren kanske det inte nödvändigtvis är relevant att lära sig mer.

Oavsett är Ethereums försök att dela upp ett stort, decentraliserat nätverk en imponerande strävan och kommer att bli en enorm prestation om den framgångsrikt genomförs.

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