Skalbarhet pĂ„ blockkedjan – sidokedjor och betalningskanaler
Hem
Artiklar
Skalbarhet pĂ„ blockkedjan – sidokedjor och betalningskanaler

Skalbarhet pĂ„ blockkedjan – sidokedjor och betalningskanaler

MedelnivÄ
Publicerad Feb 20, 2020Uppdaterad Feb 9, 2023
9m

Introduktion

Skalbarhet Àr ett mÄtt pÄ ett systems förmÄga att vÀxa för att tillgodose ökad efterfrÄgan. Inom datoranvÀndning kan du öka maskinens prestanda genom att uppgradera hÄrdvaran, sÄ att det gÄr snabbare att utföra vissa uppgifter. NÀr vi talar om skalbarhet för blockkedjor menar vi att öka deras kapacitet att hantera fler transaktioner.

Protokoll som Bitcoin har mÄnga styrkor, men skalbarhet Àr inte en av dessa. Om Bitcoin kördes i en centralt Àgd databas skulle det vara relativt enkelt för en administratör att öka hastigheten och genomströmningen. Men ett av Bitcoins vÀrden (censurmotstÄnd) krÀver att mÄnga deltagare synkroniserar en kopia av blockkedjan.


Blockkedjans dilemma med skalbarhet

Att köra en Bitcoin-nod Àr relativt billigt och Àven simpla enheter kan göra detta. Men eftersom tusentals noder mÄste hÄlla sig uppdaterade med varandra finns det vissa begrÀnsningar med deras kapacitet. 

GrÀnser sÀtts pÄ antalet transaktioner som kan bearbetas pÄ kedjan, för att inte tillÄta databasen att vÀxa till till övervÀldigade storlekar. Skulle den bli för stor för snabbt kommer noderna inte att kunna hÄlla jÀmna steg. Om block blir för stora kan de dessutom inte snabbt vidarebefordras runt i nÀtverket.

Som ett resultat av detta befinner vi oss i en sorts flaskhals. En blockkedja kan ses som tÄg som avgÄr under bestÀmda intervaller. Det finns endast begrÀnsade platser i varje vagn och för att fÄ en biljett mÄste resenÀrerna buda för att garanteras en plats. Om alla försöker komma pÄ tÄget samtidigt blir priset högt. Om ett nÀtverk pÄ samma sÀtt Àr fullt med vÀntande transaktioner krÀvs det att anvÀndarna betalar högre avgifter för att fÄ deras transaktion inkluderad i rÀtt tid.

En lösning skulle kunna vara att göra vagnarna större. Detta skulle innebÀra fler platser, högre genomströmning och billigare biljettpriser. Men det finns ingen garanti för att platserna inte tar slut sÄ som de en gÄng gjorde. Vagnarna kan inte breddas obegrÀnsat, precis som block eller blocks gasgrÀnser inte kan skalas oÀndligt. Det senare gör det dyrare för noderna att stanna kvar i nÀtverket, eftersom de kommer att behöva dyrare hÄrdvara för att förbli synkroniserade.

Ethereum-skaparen Vitalik Buterin myntade uttrycket skalbarhetstrilemmat för att beskriva den utmaning som blockkedjor stĂ„r inför. Han teoretiserar att protokoll mĂ„ste göra avvĂ€gningar mellan skalbarhet, sĂ€kerhet och decentralisering. Dessa Ă€r i strid med varandra – genom att fokusera för mycket pĂ„ tvĂ„ av egenskaperna kommer den tredje att bli dĂ„lig.

Av denna anledning ser mÄnga skalbarhet som nÄgot som ska uppnÄs utanför kedjan, medan sÀkerhet och decentralisering bör maximeras pÄ sjÀlva blockkedjan.


Vad Àr skalningslösningar utanför kedjan?

Skalning utanför kedjan avser tillvÀgagÄngssÀtt som gör det möjligt att genomföra transaktioner utan att göra blockkedjan för stor. Protokoll som ansluts till kedjan tillÄter anvÀndarna att skicka och ta emot tillgÄngar utan att transaktionerna visas pÄ huvudkedjan. Vi kommer att gÄ in pÄ tvÄ av de mest anmÀrkningsvÀrda framstegen pÄ denna front: sidokedjor och betalningskanaler.


En introduktion till sidokedjor

Vad Àr en sidokedja?

En sidokedja Àr en separat blockkedja. Den Àr dock inte en fristÄende plattform, eftersom den Àr knuten till huvudkedjan pÄ nÄgot sÀtt. Huvudkedjan och sidokedjan Àr driftskompatibla, vilket innebÀr att tillgÄngar kan flöda fritt frÄn den ena till den andra.

Det finns ett antal sĂ€tt att se till att tillgĂ„ngar kan föras över. I vissa fall flyttas tillgĂ„ngarna frĂ„n huvudkedjan genom att deponeras pĂ„ en sĂ€rskild adress. De skickas inte riktigt över – istĂ€llet Ă€r de lĂ„sta i adressen och ett matchande belopp utfĂ€rdas pĂ„ sidokedjan. Ett enklare (om Ă€n centraliserat) alternativ Ă€r att skicka tillgĂ„ngarna till en förvaltare som byter insĂ€ttningen mot tillgĂ„ngar pĂ„ sidokedjan.


Hur fungerar en sidokedja?

Antag att vĂ„r vĂ€n Alice har fem bitcoin. Hon vill byta ut dem mot fem motsvarande enheter pĂ„ en Bitcoin-sidokedja – lĂ„t oss kalla dem för sidecoin. Sidokedjan i frĂ„ga anvĂ€nder en tvĂ„vĂ€gskoppling, vilket innebĂ€r att anvĂ€ndare kan överföra sina tillgĂ„ngar frĂ„n huvudkedjan till sidokedjan och vice versa. 

Kom ihÄg att sidokedjan Àr en separat blockkedja. SÄ den kommer att ha olika block, noder och valideringsmekanismer. För att fÄ sina sidecoin mÄste Alice skicka fem bitcoin till en annan adress. Den kan Àgas av nÄgon som sedan krediterar hennes sidokedjeadress med fem sidecoin nÀr de fÄr bitcoin. Alternativt kan den ha nÄgon form av förtroendeminimerad installation dÀr sidecoin automatiskt krediteras efter att programvaran upptÀcker en betalning.


Skalning pÄ sidokedjor


Alice har nu konverterat sina coin till sidecoin, men hon kan alltid vÀnda processen för att Äterta sina bitcoin. Nu nÀr hon har gÄtt in pÄ sidokedjan Àr hon fri att handla pÄ denna separata blockkedja. Hon kan skicka sidocoin eller ta emot dem frÄn andra, precis som hon skulle göra pÄ huvudkedjan.

Hon kan till exempel betala Bob en sidecoin för en Binance-tröja. NÀr hon vill ÄtervÀnda till Bitcoin kan hon skicka sina ÄterstÄende fyra sidecoin till en speciell adress. Efter att transaktionen har bekrÀftats skulle fyra bitcoin lÄsas upp och levereras till en adress som hon kontrollerar pÄ huvudkedjan.


Varför anvÀnds sidokedjor?

Du kanske undrar vad poÀngen med detta Àr? Varför anvÀnder Alice inte bara Bitcoin-blockkedjan?

Svaret Ă€r att sidokedjan kan göra saker som Bitcoin inte kan. Blockkedjor Ă€r noggrant konstruerade system för avvĂ€gningar. Även om Bitcoin Ă€r den sĂ€kraste och decentraliserade kryptovalutan Ă€r den inte bĂ€st nĂ€r det gĂ€ller genomströmning. Även om Bitcoin-transaktioner Ă€r snabbare Ă€n konventionella metoder Ă€r de fortfarande relativt lĂ„ngsamma jĂ€mfört med andra blockkedjesystem. Block utvinns var tionde minut och avgifterna kan vĂ€xa betydligt nĂ€r nĂ€tverket Ă€r överbelastat.

Visserligen finns det förmodligen inget behov av denna sÀkerhetsnivÄ för smÄ, dagliga betalningar. Om Alice betalar för en kopp kaffe kommer hon inte stÄ och vÀnta pÄ att transaktionen ska bekrÀftas. Hon skulle stanna upp kön och hennes dryck skulle bli kall nÀr den överlÀmnades.

Sidokedjor Àr inte bundna av samma regler. Faktum Àr att de inte ens behöver anvÀnda bevis pÄ arbete för att fungera. Du kan anvÀnda vilken konsensusmekanism som helst, lita pÄ en enda validerare eller justera valfritt antal parametrar. Du kan lÀgga till uppgraderingar som inte finns i huvudkedjan, producera större block och fÄ igenom snabba avrÀkningar.

Intressant nog kan sidokedjor till och med ha kritiska buggar utan att pÄverka den underliggande kedjan. Detta gör att de kan anvÀndas som plattformar för experiment och för att introducera funktioner som annars skulle krÀva konsensus frÄn majoriteten av nÀtverket.

Förutsatt att anvĂ€ndarna Ă€r nöjda med avvĂ€gningarna kan sidokedjor bli ett integrerat steg mot effektiv skalning. Det finns inget krav pĂ„ huvudkedjans noder för att lagra varje transaktion frĂ„n sidokedjan. Alice kunde komma in pĂ„ sidokedjan med en enda Bitcoin-transaktion, utföra hundratals sidecoin-transaktioner och sedan lĂ€mna sidokedjan. NĂ€r det gĂ€ller Bitcoin-blockkedjan har hon bara utfört tvĂ„ transaktioner – en för att komma in och en för att avsluta.

Ethereums Plasma Àr likartad, men har nÄgra stora skillnader. LÀs mer om detta: Vad Àr Ethereum Plasma?


En introduktion till betalningskanaler

Vad Àr en betalningskanal?

Betalningskanaler tjÀnar samma syfte som sidokedjor pÄ skalbarhetssidan, men de Àr i grunden vÀldigt olika. Liksom sidokedjor tar de bort transaktioner frÄn huvudkedjan för att förhindra att blockkedjan blir för tung. Till skillnad frÄn sidokedjor behöver de dock inte en separat blockkedja för att fungera.

En betalningskanal anvÀnder ett smart kontrakt för att göra det möjligt för anvÀndarna att handla utan att publicera sina transaktioner pÄ blockkedjan. Den gör detta genom att anvÀnda ett mjukvarustyrt avtal mellan tvÄ deltagare.


Hur fungerar en betalningskanal?

I modeller som det populÀra Lightning-nÀtverket skulle tvÄ parter först sÀtta in coin pÄ en adress som de gemensamt Àger. Detta Àr en multisignaturadress som krÀver tvÄ signaturer för att tillgÄngar ska kunna spenderas. SÄ om Alice och Bob skapar en sÄdan adress kan tillgÄngar bara flyttas genom ett samtycke mellan de bÄda.

LÄt oss sÀga att de sÀtter in 10 BTC till en adress som nu har 20 BTC. Det skulle vara enkelt för dem att hÄlla en balansrÀkning som börjar med att sÀga att Alice och Bob bÄda har 10 BTC vardera. Om Alice vill ge Bob ett coin kan de uppdatera balansrÀkningen sÄ att Alice har 9 BTC och Bob har 11 BTC. De skulle inte behöva publicera detta pÄ blockkedjan eftersom de fortsÀtter att uppdatera dessa balanser. 


hur en betalningskanal fungerar


LÄt oss dock sÀga att Alice efter ett tag har 5 BTC och Bob har 15 BTC. De kan dÄ skapa en transaktion som skickar dessa balanser till adresserna som Àgs av parterna, underteckna den och skicka den.

Alice och Bob kunde ha registrerat tio, hundra eller tusen transaktioner i balansrÀkningen. Men nÀr det gÀller blockkedjan har de bara utfört tvÄ kedjeoperationer: en för den första finansieringstransaktionen och en för att omfördela balansen nÀr de Àr klara. Bortsett frÄn dessa tvÄ Àr alla andra transaktioner gratis och nÀstan omedelbara, eftersom de sker utanför kedjan. Det finns ingen mineravgift som ska betalas och inga blockbekrÀftelser att vÀnta pÄ.

Naturligtvis krÀver exemplet som diskuterats ovan att bÄda parter samarbetar, vilket inte Àr en idealisk situation för frÀmlingar. Dock kan speciella mekanismer anvÀndas för att straffa alla försök att fuska, sÄ att parterna kan interagera med varandra sÀkert och utan förtroende. 


Betalningsrouting

Uppenbarligen Àr betalningskanaler lÀmpliga för tvÄ parter som förutser en hög transaktionsvolym. Men det blir bÀttre Àn sÄ. Ett nÀtverk av dessa kanaler kan elimineras, vilket innebÀr att Alice kan betala en person som hon inte Àr direkt ansluten till. Om Bob har en kanal öppen med Carol, kan Alice betala henne förutsatt att det finns tillrÀckligt med kapacitet. Hon kommer att skicka tillgÄngarna till Bobs sida av kanalen, som i sin tur skickar dem vidare till Carols. Om Carol Àr ansluten till en annan deltagare, till exempel Dan, kan samma sak göras dÀr. 

Ett sÄdant nÀtverk utvecklas till en distribuerad topologi dÀr alla ansluter till flera individer. Det kommer ofta att finnas flera rutter till en destination och anvÀndarna kommer att kunna vÀlja den mest effektiva. 


Sammanfattningsvis

Vi har diskuterat tvÄ skalbarhetsmetoder som gör det möjligt att göra transaktioner utan att belasta den underliggande blockkedjan. BÄde sidokedjo- och betalningskanalsteknologierna har Ànnu inte mognat, men de utnyttjas alltmer av anvÀndare som vill kringgÄ bristerna i baslagertransaktioner.

NÀr fler och fler anvÀndare efter hand ansluter sig till nÀtverket Àr det viktigt att decentraliseringen upprÀtthÄlls. Detta kan endast uppnÄs genom att upprÀtthÄlla grÀnser för blockkedjans tillvÀxt, sÄ att nya noder enkelt kan gÄ med. FöresprÄkare av skalbarhetslösningar utanför kedjan tror att huvudkedjan efter hand endast kommer att anvÀndas för att reglera transaktioner av högt vÀrde, eller för att koppla in och ut frÄn sidokedjor samt för att öppna och stÀnga kanaler.