Blokkjedeskalerbarhet – sidekjeder og betalingskanaler
Innholdsfortegnelse
Innledning
Blokkjeders skaleringsproblem
Hva er skaleringsløsninger utenfor kjeden?
En introduksjon til sidekjeder
En introduksjon til betalingskanaler
Avsluttende tanker
Blokkjedeskalerbarhet – sidekjeder og betalingskanaler
Hjem
Artikler
Blokkjedeskalerbarhet – sidekjeder og betalingskanaler

Blokkjedeskalerbarhet – sidekjeder og betalingskanaler

Avansert
Publisert Feb 20, 2020Oppdatert Feb 9, 2023
9m

Innledning

Skalerbarhet refererer stort sett til et systems evne til å vokse for å dekke økende etterspørsel. Innen databehandling kan du øke maskinens ytelse ved å oppgradere maskinvaren slik at den blir raskere til å utføre visse oppgaver. Når vi snakker om skalerbarhet for blokkjeder, snakker vi om å øke kapasiteten til å håndtere flere transaksjoner.

Protokoller som Bitcoin har mange styrker, men skalerbarhet er ikke en av dem. Hvis Bitcoin ble kjørt i en sentraleid database, ville det være relativt enkelt for en administrator å øke hastigheten og gjennomstrømmingen. Men Bitcoins verdiforslag (f.eks. sensurmotstand) krever at mange deltakere synkroniserer en kopi av blokkjeden.


Blokkjeders skaleringsproblem

Å kjøre en Bitcoin-node er relativt billig, og selv enkle enheter kan gjøre det. Men siden de tusenvis av nodene må holde seg oppdatert med hverandre, er det visse begrensninger på kapasiteten. 

Det settes et tak på antall transaksjoner som kan behandles på kjeden, for at databasen ikke skal kunne vokse til uhåndterlige størrelser. Skulle den bli for stor for fort, ville ikke nodene klare å følge med. Og hvis blokkene er for store, kan de ikke raskt videresendes rundt i nettverket.

Som et resultat havner vi i en flaskehals. En blokkjede kan sammenlignes med en togrute som går med faste intervaller. Det er begrenset med plasser i hver vogn, og for å skaffe seg billett må de reisende legge inn bud for å garantere seg plass. Hvis alle prøver å komme seg på toget samtidig, blir prisen høy. På lignende måte krever nettverk som er overbelastet med ventende transaksjoner, at brukerne betaler høyere gebyrer for å få transaksjonen inkludert i tide.

Én løsning er å gjøre vognene større. Dette ville bety flere seter, høyere gjennomstrømning og billigere billetter. Men dette er ingen garanti for at setene ikke bare fylles opp som tidligere. Vognene kan ikke bare utvides og utvides, akkurat som blokker eller blokkens gas-grenser ikke kan oppskaleres uendelig. Sistnevnte gjør det dyrere for noder å holde seg på nettverket, ettersom de da trenger dyrere maskinvare for å være synkronisert.

Ethereum-skaper Vitalik Buterin lanserte konseptet med skaleringstrilemmaet for å beskrive utfordringen blokkjeder står overfor. Han skisserte teorien om at protokollene må gjøre avveininger mellom skalerbarhet, sikkerhet og desentralisering. Disse er litt i strid med hverandre – ved å fokusere for mye på to av egenskapene blir den tredje dårlig.

Derfor ser mange på skalerbarhet som noe som må oppnås utenfor kjeden, mens sikkerhet og desentralisering bør økes på selve blokkjeden.


Hva er skaleringsløsninger utenfor kjeden?

Skalering utenfor kjeden refererer til tilnærminger som gjør det mulig å utføre transaksjoner uten å fylle opp blokkjeden. Protokoller som plugges inn i kjeden, lar brukere sende og motta penger uten at transaksjonene vises på hovedkjeden. Vi skal se nærmere på to av de viktigste fremskrittene på denne fronten: sidekjeder og betalingskanaler.


En introduksjon til sidekjeder

Hva er en sidekjede?

En sidekjede er en separat blokkjede. Men den er ikke en frittstående plattform, ettersom den på en eller annen måte er knyttet til hovedkjeden. Hovedkjeden og sidekjeden er interoperable, noe som betyr at aktiva kan flyte fritt fra den ene til den andre.

Det finnes mange måter å sikre at pengene kan overføres. I noen tilfeller flyttes aktiva fra hovedkjeden ved at de settes inn på en spesiell adresse. De blir egentlig ikke sendt over – de blir isteden låst til adressen, og et tilsvarende beløp utstedes på sidekjeden. Et mer direkte alternativ (riktignok sentralisert) er å sende pengene til en depotmottaker, som bytter innskuddet mot penger på sidekjeden.


Hvordan fungerer en sidekjede?

Sett at vennen vår Anne har fem bitcoin. Hun vil bytte dem mot fem tilsvarende enheter på en Bitcoin-sidekjede – la oss kalle dem sidemynter. Den aktuelle sidekjeden bruker en toveis binding, noe som betyr at brukerne kan overføre aktiva fra hovedkjeden til sidekjeden og omvendt. 

Husk at sidekjeden er en egen blokkjede. Så den har forskjellige blokker, noder og valideringsmekanismer. For å få sidemyntene sine må Anne sende sine fem bitcoin til en annen adresse. Den kan være eid av noen som deretter krediterer sidekjedeadressen hennes med fem sidemynter når de mottar bitcoinene. Alternativt kan den ha en form for tillitsminimert oppsett der sidemyntene krediteres automatisk etter at programvaren oppdager en betaling.


Sidekjedeskalering


Anne har nå konvertert myntene sine til sidemynter, men hun kan alltids reversere prosessen for å kreve tilbake sine bitcoin. Nå som hun har gått inn i sidekjeden, står hun fritt til å drive handel på denne separate blokkjeden. Hun kan sende sidemyntene eller motta dem fra andre, akkurat som hun ville gjort på hovedkjeden.

Hun kan for eksempel betale Benjamin én sidemynt for en Binance-hettegenser. Når hun vil gå tilbake til Bitcoin, kan hun sende de resterende fire sidemyntene til en spesiell adresse. Etter at transaksjonen er bekreftet, blir fire bitcoin låst opp og levert til en adresse hun har kontroll over på hovedkjeden.


Hvorfor brukes sidekjeder?

Du lurer kanskje på hva poenget med dette er. Hvorfor bruker ikke Anne bare Bitcoin-blokkjeden?

Svaret er at sidekjeden kan gjøre ting som Bitcoin ikke kan. Blokkjedene er nøye konstruerte systemer med kompromisser. Selv om Bitcoin er den sikreste og mest desentraliserte kryptovalutaen, er den ikke den beste når det gjelder gjennomstrømning. Og selv om Bitcoin-transaksjoner er raskere enn konvensjonelle metoder, er det fortsatt relativt sakte sammenlignet med andre blokkjedesystemer. Blokkene mines hvert tiende minutt, og gebyrene kan bli veldig høye når nettverket er overbelastet.

Riktignok er det sannsynligvis ikke behov for dette sikkerhetsnivået for små hverdagsbetalinger. Hvis Anne betaler for en kaffe, kommer hun ikke til å stå og vente på at transaksjonen skal bekreftes. Køen bak henne ville da bli veldig lang, og kaffen hennes er kald innen hun får den.

Sidekjeder er ikke bundet av de samme reglene. Faktisk trenger de ikke engang å bruke Proof of Work for å fungere. Du kan bruke en hvilken som helst konsensusmekanisme, stole på én enkelt validator eller justere alle parameterne du vil. Du kan legge til oppgraderinger som ikke finnes på hovedkjeden, produsere større blokker og få raske oppgjør.

Interessant nok kan sidekjeder til og med ha kritiske feil uten at dette påvirker den underliggende kjeden. Dette gjør at de kan brukes som plattformer for eksperimentering og for å rulle ut funksjoner som ellers ville kreve konsensus fra flertallet på nettverket.

Forutsatt at brukerne er fornøyd med avveiningene, kan sidekjeder være et integrert skritt mot effektiv skalering. Det er ingen krav om at hovedkjedens noder skal lagre alle transaksjoner fra sidekjeden. Anne kan gå inn i sidekjeden med en enkelt Bitcoin-transaksjon, utføre hundrevis av sidemynttransaksjoner og deretter gå ut av sidekjeden. Men på Bitcoin-blokkjeden har hun bare utført to – en for å gå inn og en for å gå ut.

Ethereums Plasma ligner, men har noen store forskjeller. Les mer om det: Hva er Ethereum Plasma?


En introduksjon til betalingskanaler

Hva er en betalingskanal?

Betalingskanaler har samme formål som sidekjeder når det gjelder skalerbarhet, men de er fundamentalt veldig forskjellige. I likhet med sidekjeder skyver de transaksjoner ut av hovedkjeden for å hindre at blokkjeden blir overfylt. Men i motsetning til sidekjeder krever de ikke en separat blokkjede for å fungere.

En betalingskanal bruker en smart kontrakt for å gjøre det mulig for brukerne å drive handel uten å publisere transaksjonene sine på blokkjeden. Det gjør den ved å bruke en programvarestyrt avtale mellom to deltakere.


Hvordan fungerer en betalingskanal?

I modeller som det populære Lightning Network setter to parter først inn mynter på en adresse de eier sammen. Dette er en multisignatur-adresse, en som krever to signaturer for at pengene skal kunne brukes. Så hvis Anne og Benjamin oppretter en slik adresse, kan pengene bare flyttes ut med samtykke fra begge.

Sett at hver av dem setter inn 10 BTC til en adresse som nå har 20 BTC. Det ville være lett for dem å føre et saldoark som starter med å si at Anne og Benjamin begge har 10 BTC. Hvis Anne vil gi Benjamin en mynt, kan de oppdatere den til å si at Anne har 9 BTC, Benjamin har 11 BTC. De trenger ikke å publisere til blokkjeden ettersom de fortsetter å oppdatere disse saldoene. 


hvordan en betalingskanal fungerer


Men når den tiden kommer, kan vi tenke oss at Anne har 5 BTC, og Benjamin har 15 BTC. De kan deretter opprette en transaksjon som sender disse saldoene til adressene som eies av partene, signere den og kringkaste den.

Anne og Benjamin kunne ha registrert 10, 100 eller 1000 transaksjoner på saldoarken sitt. Men på blokkjeden har de bare utført to operasjoner: én for den første finansieringstransaksjonen, og én for å omfordele saldoene når de er ferdige. Bortsett fra disse to er alle andre transaksjoner gratis og nesten umiddelbare fordi de skjer utenfor kjeden. Det finnes ingen mining-gebyrer å betale og ingen blokkbekreftelser å vente på.

Eksemplet ovenfor krever selvfølgelig at begge partene samarbeider, noe som ikke er en ideell situasjon mellom fremmede. Men det kan brukes spesielle mekanismer til å straffe ethvert forsøk på å jukse, slik at partene trygt kan samhandle med hverandre uten tillit. 


Betalingsruting

Betalingskanaler er praktiske for to parter som forventer et høyt volum av transaksjoner seg i mellom. Men det blir bedre. Et nettverk av disse kanalene kan bygges ut, noe som betyr at Anne kan betale en part hun ikke er direkte koblet til. Hvis Benjamin har en kanal åpen med Caroline, kan Anne betale henne, forutsatt at det er nok kapasitet. Hun skyver pengene til Benjamins side av kanalen, som deretter skyver dem til Carolines. Hvis Caroline er koblet til en annen deltaker, Dan, kan det samme gjøres. 

Et slikt nettverk utvikler seg til en distribuert topologi der alle kobler seg til flere andre. Det finnes ofte flere ruter til en destinasjon, og brukerne vil kunne velge den mest effektive. 


Avsluttende tanker

Vi har snakket om to tilnærminger til skalering som gjør at transaksjoner kan utføres uten å belaste den underliggende blokkjeden. Verken teknologiene for sidekjeder eller betalingskanaler er ennå helt modne, men de blir brukt i økende grad av brukere som ønsker å omgå manglene ved transaksjoner på basislaget.

Etter hvert som tiden går og flere brukere blir med i nettverket, er det viktig at desentraliseringen opprettholdes. Dette kan bare oppnås ved å håndheve grenser for veksten av blokkjeden, slik at nye noder enkelt kan bli med. Tilhengere av skaleringsløsninger utenfor kjeden mener at hovedkjeden med tiden bare skal bli brukt til å gjøre opp transaksjoner av høy verdi, eller til å koble inn/ut av sidekjeder og åpne/lukke kanaler.