Hvad er Sharding, og hvordan fungerer det?
Hjem
Artikler
Hvad er Sharding, og hvordan fungerer det?

Hvad er Sharding, og hvordan fungerer det?

Let √łvet
Offentliggjort Dec 4, 2023Opdateret Jan 11, 2024
9m

TL;DR

  • Sharding opdeler en blockchain i mindre dele (shards) for at l√łse problemet med skalerbarhed i forbindelse med Layer 1-netv√¶rk.

  • Sharding forbedrer transaktionshastigheder, minimerer behandlings- og lageromkostninger og forbedrer netv√¶rksydelsen.

  • Sharding har dog ogs√• mulige ulemper, s√•som netv√¶rkssikkerhedsproblemer og kompleksiteten af transaktioner p√• tv√¶rs af shards.

Introduktion

Blockchain-teknologien har introduceret et hidtil uset potentiale inden for decentralisering, gennemsigtighed og sikkerhed. Men den st√•r over for en stor udfordring: skalerbarhed. Skalerbarhed er et punkt i "blockchain-trilemmaet," som ogs√• omfatter sikkerhed og decentralisering. At opn√• alle tre p√• samme tid er et vedvarende problem i blockchain-verdenen. Det er her, strategiske l√łsninger som "Sharding" kommer ind i billedet.

Hvad er sharding?

Sharding er et begreb, der er l√•nt fra traditionel databasestyring. Det henviser til processen med at opdele en st√łrre database i mindre, mere h√•ndterbare dele, kaldet shards. Dets anvendelse i blockchain har til form√•l at forbedre skalerbarheden, samtidig med at princippet om decentralisering opretholdes. I bund og grund sker Sharding, n√•r et blockchain-netv√¶rk opdeles i mindre dele, kendt som shards, der hver is√¶r er i stand til at behandle transaktioner og smart contracts parallelt.

Hvordan fungerer Sharding?

For at forst√•, hvordan Sharding udf√łres i et blockchain-netv√¶rk, er det n√łdvendigt at forst√•, hvordan blockchain-data normalt lagres og behandles. Der er forskellige m√•der, data kan behandles p√•. Vi kommer til at se p√• sekventiel og parallel behandling.

Typisk er hver blockchain-node ansvarlig for at håndtere al transaktionsvolumen i netværket. Denne type databehandling kaldes almindeligvis sekventiel behandling. Det betyder, at hver node skal vedligeholde og gemme alle kritiske oplysninger, såsom kontosaldi og transaktionshistorik. I bund og grund skal hver node behandle alle netværksoperationer, data og transaktioner.

Selvom en s√•dan model styrker blockchainens sikkerhed ved at registrere alle transaktioner p√• tv√¶rs af alle noder, g√łr den behandlingen af data dramatisk langsommere. Det er her, parallel behandling af data kommer ind i billedet, da det g√łr det muligt at udf√łre flere operationer samtidigt.

Sharding kan v√¶re en effektiv l√łsning p√• dette problem, da det opdeler eller "partitionerer" transaktionsarbejdsbyrden p√• tv√¶rs af blockchain-netv√¶rket. Det betyder, at ikke alle noder beh√łver at h√•ndtere eller behandle hele blockchainens belastning.

I stedet adskiller Sharding arbejdsbyrden gennem horisontal partitionering. I denne proces opdeles dataene i horisontale delmængder, hvor hver shard fungerer som en uafhængig database, der kan behandle transaktioner separat fra de andre. 

Horisontal vs. vertikal partitionering

Horisontal partitionering og vertikal partitionering er to vigtige tilgange til databaseskalering. Selvom begge er designet til at håndtere store datasæt mere effektivt, fungerer de på fundamentalt forskellige måder. Sharding er en almindelig metode til at implementere horisontal partitionering.

I horisontal partitionering opdeles dataene i r√¶kker og spredes over forskellige noder (eller databaser), som hver indeholder en delm√¶ngde af dataene. Hver r√¶kke i en tabel er en unik enhed, s√• at adskille dem f√łrer ikke til tab af dataintegritet. Et fremtr√¶dende eksempel p√• horisontal partitionering er i distributionen af blockchain-netv√¶rk, s√•som Ethereum og Bitcoin.

Ved vertikal partitionering opdeles data i kolonner i stedet for rækker. Hver partition i vertikal partitionering indeholder et undersæt af data for hver enhed, eller hele datasættet, men kun for et bestemt sæt attributter. Tag f.eks. en kundetabel med kolonner som Navn, Status, Beskrivelse og Foto. I et vertikalt partitioneringsscenarie kan "Navn" og "Status" opbevares i én tabel, og "Beskrivelse" og "Foto" i en anden.

Hvorfor foretrækkes horisontal partitioning?

Horisontal partitionering foretrækkes generelt frem for vertikal partitionering i blockchain-netværk af tre hovedårsager: skalerbarhed, decentralisering og sikkerhed.

Skalerbarhed: Sharding giver en l√łsning ved at opdele data i mindre, mere h√•ndterbare "shards". Hver shard kan fungere uafh√¶ngigt, s√• flere transaktioner kan behandles samtidigt, hvilket forbedrer netv√¶rkets hastighed og effektivitet. Hvorimod vertikal partitionering, hvor kolonnerne distribueres p√• tv√¶rs af forskellige databaser, kan g√łre det mere komplekst at hente en komplet transaktion eller blokinformation, hvilket kan begr√¶nse skalerbarheden.

Decentralisering: I tr√•d med blockchains grundl√¶ggende etos underst√łtter horisontal partitionering decentralisering. N√•r noder kun skal behandle en del af de samlede data (en shard), giver det mulighed for, at flere noder kan deltage i netv√¶rket, da beregnings- og lagringsbyrden reduceres. Vertikal partitionering ville til sammenligning begr√¶nse dette, da hver node ville have brug for adgang til alle partitioner (alle datakolonner) for at forst√• og verificere de komplette blokdata.

Sikkerhed og dataintegritet: Horisontal partitionering opretholder dataintegriteten, fordi hver shard (eller partition) indeholder komplette transaktionsdata, hvilket sikrer, at hver node har en fuld, n√łjagtig kopi af sin del af blockchainen. Ved vertikal partitionering opdeler man en bloks data p√• forskellige noder, hvilket g√łr det vanskeligt at sikre dataintegritet og -sikkerhed, som er et afg√łrende aspekt ved blockchain-netv√¶rk.

Hvad er fordelene ved Sharding?

Lad os dykke ned i de potentielle fordele, som Sharding bringer til blockchain-teknologien:

√ėget transaktionshastighed: Sharding muligg√łr parallel behandling af transaktioner. I stedet for at behandle transaktioner √©n efter √©n p√• en sekventiel m√•de, g√łr Sharding det muligt at behandle transaktioner samtidigt, men p√• forskellige shards. Hver shard arbejder uafh√¶ngigt, hvilket √łger transaktionshastigheden betydeligt. Det √łger ikke kun transaktionshastigheden, men betyder ogs√•, at hele netv√¶rket kan h√•ndtere flere brugere, hvilket fremmer masseadoption.

Et eksempel p√• et eksisterende blockchain-netv√¶rk, der bruger shards til at h√•ndtere skalerbarhed, er Ziliqa. Ziliqas Sharding-mekanisme g√łr det muligt at opn√• tusindvis af transaktioner i sekundet.

Minimerede omkostninger til behandling og lagring: Det konventionelle blockchain-design forpligter hver node til at gemme alle transaktioner, hvilket √łger kravene til hardware, efterh√•nden som blockchainen vokser. Men med Sharding er hver node kun ansvarlig for behandling og lagring af en br√łkdel af hele netv√¶rkets data ‚Äď det reducerer de ressourcer, der er n√łdvendige for, at en node kan deltage i netv√¶rket.

P√• den m√•de kan flere deltagere deltage som validatorer, hvilket √łger netv√¶rkets decentralisering uden at p√•drage sig uoverkommelige omkostninger. Det afb√łder problemer, hvor kun enheder med avancerede, dyre computerressourcer realistisk set kan deltage i processen, og opretholder dermed blockchain-netv√¶rkets demokratiserede karakter.

Forbedret netv√¶rksydelse: Sharding kan v√¶re med til at forbedre netv√¶rkets generelle ydeevne og kapacitet. I de traditionelle blockchains falder ydelsen paradoksalt nok, jo flere noder der deltager i netv√¶rket, p√• grund af behovet for √łget datakommunikation og synkronisering mellem noderne.

Men Sharding √¶ndrer dette scenarie. Da hver shard arbejder separat og samtidigt, kan systemet behandle flere transaktioner og beregninger. N√•r en ny node tilsluttes, kan den f√łjes til en shard i stedet for hele netv√¶rket, hvilket forbedrer netv√¶rkets skaleringskapacitet. Effektiviteten forbedres, hvilket f√łrer til smidigere transaktioner og en bedre brugeroplevelse.

Husk, at fremtidige fremskridt og forbedringer i sharding-teknologien kan skabe andre fordele eller styrke de eksisterende, s√• blockchain-√łkosystemet hele tiden forbedres.

Hvad er begrænsningerne ved Sharding?

Selvom Sharding giver flere potentielle fordele, der kan hjælpe blockchain-netværk med at blive mere effektive, introducerer processen også et unikt sæt af udfordringer. Nogle af de potentielle sårbarheder, som Sharding introducerer, inkluderer: 

Overtagelsesangreb p√• en enkelt shard: I et Sharding-milj√ł er regnekraften til at overtage et enkelt shard dramatisk mindre end den kraft, der kr√¶ves for at overtage hele netv√¶rket. Det g√łr disse individuelle shards mere s√•rbare over for et "one-percent attack" eller "shard takeover" ‚Äď hvor en angriber med en lille m√¶ngde ressourcer sammenlignet med hele netv√¶rket potentielt kan overtage en individuel shard.

Transaktioner p√• tv√¶rs af shards: Transaktioner, der sker p√• tv√¶rs af forskellige shards (cross-shard), udg√łr en unik udfordring. Transaktioner p√• tv√¶rs af shards er komplekse og kan potentielt f√łre til dobbeltforbrug, hvis de ikke styres omhyggeligt. Hvis en shard ikke n√łjagtigt sporer tilstanden af den anden shard under en transaktion, kan brugere udnytte dette til at "double spend".

Problemer med datatilg√¶ngelighed: Sharding g√łr det til en kompliceret opgave at vedligeholde hele netv√¶rkstilstanden. Hvis visse shards ikke er tilg√¶ngelige, n√•r det er n√łdvendigt (fordi de noder, der vedligeholder disse shards, er offline), kan det f√łre til problemer med datatilg√¶ngelighed og forstyrre hele netv√¶rket.

Netv√¶rkssikkerhed: Sharding kr√¶ver implementering af en robust protokol, der afbalancerer belastningen mellem shards. Hvis det ikke g√łres korrekt, kan det f√łre til uj√¶vn fordeling af data eller ubalance i ressourcerne, hvilket kan resultere i ustabilitet i netv√¶rket.

Node-synkronisering: Node-synkronisering kan forårsage netværksforsinkelser på grund af den tid, det tager at dele og opdatere information på tværs af forskellige noder. Hvis en node med langsommere processorkapacitet eller netværksforbindelse sakker bagud, kan det desuden forsinke hele synkroniseringsprocessen og reducere blockchain-netværkets samlede ydeevne.

Er Sharding implementeret på Ethereum?

Ethereum har planer om at implementere Sharding som en del af deres Ethereum 2.0-opgradering. Ethereum 2.0, også kendt som Eth2 eller Serenity, er en opgradering af Ethereum-blockchainen, der har til formål at forbedre netværkets hastighed, effektivitet og skalerbarhed, så det kan behandle flere transaktioner og lette overbelastning.

Lige nu implementeres opgraderingen i faser, hvor den sidste fase (fase 2) omfatter den fulde implementering af sharding. Ethereum-udviklerne h√•ber, at disse forbedringer vil l√łse nogle af de nuv√¶rende udfordringer med skalerbarhed og transaktionsomkostninger, som netv√¶rket st√•r over for.

Det er dog vigtigt at bemærke, at implementeringen af sharding kommer med sit eget sæt af udfordringer, især når det gælder om at opretholde sikkerheden og decentraliseringen af netværket. Derfor lægger Ethereum-udviklerne mange tanker og omfattende tests i denne overgang for at sikre, at opgraderingen bliver en succes, når den er fuldt implementeret.

Sammenfatning

Samlet set repr√¶senterer sharding et bem√¶rkelsesv√¶rdigt fremskridt i retning af at l√łse blockchain-trilemmaet. Selvom det introducerer nye kompleksiteter og mulige ulemper, er dets potentiale for at √łge skalerbarheden uden at g√• p√• kompromis med decentraliseringen enormt lovende for fremtiden for blockchain-netv√¶rk.

Det er ikke underligt, at forskellige blockchains unders√łger Sharding som en potentiel l√łsning. Ethereum integrerer Sharding som en del af Ethereum 2.0-opgraderingen for at l√łse problemer med skalerbarhed. Denne implementering forventes at finde sted gennem The Cancun upgrade, som er en vigtig del af den overordnede forbedringsplan. Ikke desto mindre vil succes, som med enhver anden teknologi i udvikling, afh√¶nge af l√łbende forskning, udvikling og grundig afpr√łvning af Sharding-implementeringer.

Yderligere læsning

Ansvarsfraskrivelse: Dette indhold pr√¶senteres for dig, "som det er", udelukkende til generel information og uddannelsesm√¶ssige form√•l, uden nogen form for repr√¶sentation eller garanti. Det skal ikke opfattes som finansiel, juridisk eller anden professionel r√•dgivning, og det er heller ikke hensigten at anbefale k√łb af et bestemt produkt eller en bestemt tjeneste. Du b√łr s√łge din egen r√•dgivning hos relevante professionelle r√•dgivere. Hvis artiklen er skrevet af en tredjepart, skal du v√¶re opm√¶rksom p√•, at de synspunkter, der kommer til udtryk, tilh√łrer den p√•g√¶ldende tredjepart og ikke n√łdvendigvis afspejler Binance Academy. L√¶s vores fulde ansvarsfraskrivelse her for yderligere oplysninger. Priserne p√• digitale aktiver kan v√¶re ustabile. V√¶rdien af din investering kan falde eller stige, og det er ikke sikkert, at du f√•r det investerede bel√łb tilbage. Du er eneansvarlig for dine investeringsbeslutninger, og Binance Academy er ikke ansvarlig for eventuelle tab, du m√•tte p√•drage dig. Dette materiale skal ikke opfattes som finansiel, juridisk eller anden professionel r√•dgivning. For yderligere oplysninger kan du l√¶se vores vilk√•r for anvendelse og risikoadvarsel.