TL;DR
Datauppdelningen delar upp en blockkedja i mindre ”delar” för att ta itu med frågan om skalbarhet i samband med lager 1-nätverk.
Datauppdelning förbättrar transaktionshastigheterna, minimerar bearbetnings- och lagringskostnader samt förbättrar nätverksprestandan.
Datauppdelning har sina potentiella nackdelar, såsom nätverkssäkerhetsproblem och komplexitet i transaktionerna mellan olika uppdelningar.
Introduktion
Blockkedjetekniken har introducerat oöverträffad potential inom decentralisering, öppenhet och säkerhet. Men den står inför en betydande utmaning: skalbarhet. Skalbarhet är en punkt i "blockkedjans trilemma", som också innefattar säkerhet och decentralisering. Att uppnå alla tre samtidigt är ett kvarvarande problem i blockkedjevärlden. Det är här strategiska lösningar som " datauppdelning" kommer in i bilden.
Vad är datauppdelning?
Datauppdelning är ett koncept lånat från traditionell databashantering. Det hänvisar till processen att dela upp en större databas i mindre, mer hanterbara delar, kallade uppdelningar. Dess tillämpning i blockkedjan syftar till att förbättra skalbarheten, samtidigt som principen om decentralisering bibehålls. I huvudsak uppstår datauppdelning när ett blockkedjenätverk är uppdelat i mindre delar som kallas uppdelningar, där var och en parallellt kan bearbeta transaktioner och smarta kontrakt.
Hur fungerar datauppdelning?
Att förstå hur datauppdelning utförs inom ett blockkedjenätverk kräver en förståelse för hur blockkedjedata vanligtvis lagras och bearbetas. Det finns olika sätt att behandla data på. Vi kommer att titta på sekventiell och parallell bearbetning.
Vanligtvis är varje blockkedjenod ansvarig för att hantera hela transaktionsvolymen i nätverket. Denna typ av databehandling kallas vanligtvis sekventiell behandling. Detta innebär att varje nod måste underhålla och lagra all kritisk information, såsom kontobalanser och transaktionshistorik. I stort sett måste varje nod bearbeta alla nätverksoperationer, data och transaktioner.
Även om en sådan modell stärker säkerheten för blockkedjan genom att registrera varje transaktion över alla noder, bromsar den dramatiskt behandlingen av data. Det är här parallell bearbetning av data kommer in i bilden, eftersom det gör det möjligt att utföra flera operationer samtidigt.
Datauppdelning kan vara en kraftfull lösning på denna situation, eftersom den delar upp eller ”partitionerar” transaktionsbelastningen över blockkedjenätverket. Detta innebär att alla noder inte behöver hantera eller bearbeta hela blockkedjans belastning.
Istället separerar datauppdelningen arbetsbelastningen genom horisontell partitionering. I denna process delas data in i horisontella delmängder, där varje uppdelning fungerar som en oberoende databas som kan behandla transaktioner separat från de andra.
Horisontell kontra vertikal partitionering
Horisontell partitionering och vertikal partitionering är två viktiga metoder för databasskalning. Även om båda är utformade för att hantera stora datamängder mer effektivt, fungerar de på fundamentalt olika sätt. Datauppdelning är en vanlig metod för att genomföra horisontell partitionering.
Vid horisontell partitionering delas data upp i rader och fördelas över olika noder (eller databaser), där var och en innehåller en delmängd av data. Varje rad i en tabell är en unik enhet och att separera dem leder inte till någon förlust av dataintegriteten. Ett framträdande exempel på horisontell partitionering som används är fördelningen av blockkedjenätverk, såsom Ethereum och Bitcoin.
Vid vertikal partitionering delas data in i kolumner, snarare än rader. Varje partition i vertikal partitionering innehåller en delmängd data för varje enhet, eller hela datauppsättningen, men endast för en viss uppsättning attribut. Tänk dig till exempel en kundtabell med kolumner som Namn, Status, Beskrivning och Foto. I ett vertikalt partitioneringsscenario kan ”Namn” och ”Status” sparas i en tabell och ”Beskrivning” och ”Foto” i en annan.
Varför föredras horisontell partitionering?
Horisontell partitionering gynnas generellt framför vertikal partitionering i blockkedjenätverk av tre viktiga skäl: skalbarhet, decentralisering och säkerhet.
Skalbarhet: Datauppdelning ger en lösning genom att dela upp data i mindre och mer hanterbara ”uppdelningar”. Varje uppdelning kan fungera oberoende, vilket gör det möjligt att behandla fler transaktioner samtidigt, vilket förbättrar nätverkets hastighet och effektivitet. Vertikal partitionering kan fördela kolumnerna över olika databaser, men kräver mer komplexitet för att hämta en fullständig transaktion, vilket kan blockera information och begränsa skalbarheten.
Decentralisering: I enlighet med blockkedjans grundläggande etos stöder horisontell partitionering decentralisering. När noder bara behöver bearbeta en del av all totala data (en uppdelning) kan fler noder delta i nätverket eftersom beräknings- och lagringsbördorna minskar. Vertikal partitionering skulle jämförelsevis begränsa detta, eftersom varje nod skulle behöva åtkomst till alla partitioner (alla kolumner med data) för att förstå och verifiera fullständiga blockdata.
Säkerhet och dataintegritet: Horisontell partitionering upprätthåller dataintegriteten eftersom varje uppdelning (eller partition) innehåller fullständiga transaktionsdata, vilket säkerställer att varje nod har en fullständig, korrekt kopia av sin del av blockkedjan. Vid vertikal partitionering skulle du i huvudsak behöva dela upp ett blockdata över olika noder, vilket gör det svårare att säkerställa dataintegritet och säkerhet, vilka är viktiga aspekter i blockkedjanätverk.
Vilka är fördelarna med datauppdelning?
Låt oss fördjupa oss i de potentiella fördelarna som datauppdelning ger blockkedjetekniken:
Ökad transaktionshastighet: Datauppdelning underlättar parallell bearbetning av transaktioner. Istället för att bearbeta transaktioner en efter en på ett sekventiellt sätt kan datauppdelning göra att transaktioner behandlas samtidigt, men på olika uppdelningar. Varje uppdelning fungerar oberoende, vilket ökar transaktionshastigheten avsevärt. Detta påskyndar inte bara transaktionshastigheten, utan betyder också att hela nätverket kan hantera fler användare, vilket främjar användarna.
Ett exempel på ett befintligt blockkedjenätverk som använder datauppdelning för att hantera skalbarhet är Ziliqa. Ziliqas mekanism för datauppdelning gör det möjligt att uppnå tusentals transaktioner per sekund.
Minimerade bearbetnings- och lagringskostnader: Den konventionella blockkedjedesignen tvingar varje nod att lagra alla transaktioner, vilket intensifierar kraven på hårdvara när blockkedjan växer. Men med datauppdelning ansvarar varje nod bara för att bearbeta och lagra en bråkdel av hela nätverkets data – detta minskar resurserna som krävs för att en nod ska kunna delta i nätverket.
Därför kan fler deltagare gå med som validerare, vilket förbättrar nätverksdecentraliseringen utan att ådra sig oöverkomliga kostnader. Det mildrar problem där endast enheter med avancerade och dyra datorresurser realistiskt sett kan delta i processen och därmed kan den demokratiserade karaktären hos blockkedjenätverk bibehållas.
Förbättrad nätverksprestanda: Datauppdelning kan bidra till att förbättra övergripande nätverksprestanda och kapacitet. I de traditionella blockkedjorna, där fler noder deltar i nätverket, minskar prestandan paradoxalt på grund av behovet av ökad datakommunikation och synkronisering mellan noder.
Datauppdelning förändrar dock detta scenario. Eftersom varje uppdelning fungerar separat och samtidigt kan systemet bearbeta fler transaktioner och beräkningar. När en ny nod ansluter kan den läggas till i en uppdelning istället för i hela nätverket, vilket förbättrar nätverkets kapacitet att skala. Effektiviteten förbättras, vilket leder till smidigare transaktioner och bättre användarupplevelse.
Kom ihåg att framtida utvecklingar och förbättringar inom datauppdelningstekniken kan skapa andra fördelar, eller stärka dessa befintliga, vilket ständigt förbättrar blockkedjans ekosystem.
Vilka är begränsningarna för datauppdelning?
Även om datauppdelning erbjuder flera potentiella fördelar som kan hjälpa blockkedjenätverk att bli effektivare, introducerar processen också en unik uppsättning utmaningar. Några potentiella sårbarheter som introduceras av datauppdelning innefattar:
Övertagningsattacker av en enda uppdelning: I en datauppdelningsmiljö är beräkningskraften för att ta över en enda uppdelning dramatiskt mindre än den kraft som krävs för att ta över hela nätverket. Detta gör dessa enskilda uppdelningar mer sårbara för en "enprocentsattack" eller "överttagningsattack av en uppdelning" – varigenom en angripare med en liten mängd resurser jämfört med hela nätverket potentiellt kan ta över en enskild uppdelning.
Transaktioner mellan uppdelningar: Transaktioner som sker över olika uppdelningar (tväruppdelningar) utgör en unik utmaning. Transaktioner mellan uppdelningar är komplexa och kan potentiellt leda till dubbla spenderingar om de inte hanteras noggrant. Om en uppdelning inte exakt spårar tillståndet för den andra uppdelning under en transaktion kan användare utnyttja detta för "dubbla spenderingar".
Problem med datatillgänglighet: Datauppdelning gör det svårt att upprätthålla hela nätverkstillståndet. Om vissa uppdelningar inte är tillgängliga när de behövs (eftersom noderna som underhåller dessa uppdelningar är offline) kan det leda till problem med datatillgänglighet och störa hela nätverket.
Nätverkssäkerhet: Datauppdelning kräver implementering av ett robust protokoll som balanserar belastningen mellan uppdelningarna. Om det inte görs korrekt kan detta leda till ojämn fördelning av data eller obalans i resurserna, vilket kan leda till potentiell instabilitet i nätverket.
Nodsynkronisering: Nodsynkronisering kan orsaka nätverksförseningar på grund av den tid det tar att dela och uppdatera information mellan olika noder. Om en nod med långsammare bearbetningsmöjligheter eller nätverksanslutning dessutom släpar efter kan detta bromsa hela synkroniseringsprocessen, vilket minskar den totala prestandan för blockkedjenätverket.
Är datauppdelning implementerad på Ethereum?
Ethereum har planer på att implementera datauppdelning som en del av deras Ethereum 2.0-uppgradering. Ethereum 2.0, även känd som Eth2 eller Serenity, är en uppgradering till Ethereums blockkedja som syftar till att förbättra nätverkets hastighet, effektivitet och skalbarhet, så att det kan bearbeta fler transaktioner och minska överbelastningen.
Från och med nu genomförs uppgraderingen i faser, med den sista fasen (fas 2) inklusive fullständig implementering av datauppdelning. Ethereum-utvecklarna hoppas att dessa förbättringar kommer att ta itu med några av de nuvarande utmaningarna i samband med skalbarhet och transaktionskostnader som nätverket står inför.
Det är dock viktigt att komma ihåg att implementeringen av datauppdelning har sina egna utmaningar, särskilt när det gäller att upprätthålla säkerheten och decentraliseringen av nätverket. Därför lägger Ethereum-utvecklarna noggrann eftertanke och omfattande tester i denna övergång, för att säkerställa uppgraderingens framgång när den är helt implementerad.
Sammanfattningsvis
Sammantaget representerar datauppdelning ett enormt framsteg för att lösa blockkedjans trilemma. Även om det introducerar nya komplexiteter och möjliga nackdelar, är dess potential för att öka skalbarheten utan att kompromissa med decentraliseringen enorma löften för framtiden för blockkedjenätverk.
Det är inte konstigt att olika blockkedjor utforskar datauppdelning som en potentiell lösning. Ethereum integrerar datauppdelning som en del av Ethereum 2.0-uppgraderingen för att ta itu med skalbarhetsproblem. Detta genomförande förväntas ske genom Cancun-uppgraderingen, som är en kritisk del av den övergripande förbättringsplanen. Liksom alla andra utvecklande tekniker kommer framgång dock att bero på pågående forskning, utveckling och rigorös testning av datauppdelningsimplementeringar.
Mer information
Ansvarsfriskrivning: Detta innehåll presenteras för dig ”i befintligt skick" och avser allmän information och information för utbildningsändamål, utan representation eller garantier av något slag. Det ska inte tolkas som ekonomisk, juridisk eller annan professionell rådgivning, och är inte heller avsett att rekommendera köp av någon specifik produkt eller tjänst. Du bör söka egna råd från lämpliga professionella rådgivare. Om det till artikeln har bidragits av en tredje parts bidragsgivare, ska det observeras att de åsikter som uttrycks tillhör tredjepartsbidragsgivaren och inte nödvändigtvis återspeglar Binance Academys åsikter. Läs vår fullständiga ansvarsfriskrivning här för mer information. Priserna på digitala tillgångar kan vara volatila. Värdet på din investering kan gå ner eller upp och du kanske inte får tillbaka det investerade beloppet. Du är ensam ansvarig för dina investeringsbeslut och Binance Academy ansvarar inte för eventuella förluster du kan drabbas av. Detta material ska inte tolkas som ekonomisk, juridisk eller annan professionell rådgivning. För mer information, se våra användarvillkor och vår riskvarning.