Blockchain-schaalbaarheid - sidechains en payment channels
Blockchain-schaalbaarheid - sidechains en payment channels
StartpaginaArtikelen

Blockchain-schaalbaarheid - sidechains en payment channels

Geavanceerd
1w ago
8m

Inleiding

Schaalbaarheid heeft betrekking op het groeivermogen van een systeem om aan toenemende vraag te voldoen. Binnen de informatica verbeterd men doorgaans de prestaties van de machine door de hardware te upgraden, zodat bepaalde taken sneller uitgevoerd kunnen worden. Als we het hebben over schaalbaarheid in blockchains, verwijzen we naar het vergroten van hun capaciteit om meer transacties in behandeling te nemen.
Protocollen zoals die van Bitcoin hebben veel sterke punten, maar schaalbaarheid is daar niet een van. Als Bitcoin op een centrale database zou worden uitgevoerd, zou het voor een beheerder relatief eenvoudig zijn om de snelheid en doorvoer te verhogen. Maar de waardeproposities van Bitcoin (d.w.z. censuurbestendigheid) vereisen dat veel deelnemers een kopie van de blockchain moeten synchroniseren.


Het blockchain-schaalbaarheidsprobleem

Het runnen van een Bitcoin-node is relatief goedkoop en zelfs eenvoudige apparaten kunnen het. Maar aangezien er duizenden nodes up-to-date moeten blijven, zijn er bepaalde beperkingen aan hun capaciteit. 
Er worden caps geplaatst op het aantal transacties dat on-chain kan worden verwerkt, zodat de database niet buitenproportioneel groot wordt. Als het te snel te groot wordt, dan kunnen de nodes het niet meer verwerken. Belangrijker nog is dat als blocks te groot zijn ze niet snel op het netwerk verspreidt kunnen worden.

Het gevolg hiervan is dat we ons momenteel bevinden in een flessenhals. We kunnen een blockchain beschouwen als een treindienst die met vaste intervallen vertrekt. Er zijn slechts maar beperkt aantal zitplaatsen in elk treinstel beschikbaar en om een ticket te krijgen, moeten reizigers tegen elkaar op bieden voor een plaats. Als iedereen tegelijkertijd op de trein probeert te stappen, zal de prijs hoog zijn. Een netwerk dat is volgelopen met openstaande transacties zorgt dat gebruikers hogere kosten betalen om hun transacties snel te laten verwerken.

Een simpele oplossing zou zijn om de rijtuigen groter te maken. Dit zou betekenen dat er meer stoelen, hogere doorvoer en goedkopere ticketprijzen zijn. Maar er is geen garantie te geven dat de vraag naar stoelen altijd even hoog blijft. De treinstellen kunnen niet voortdurend worden verbreedt, net zoals blocks of block gas limieten niet oneindig op kunnen schalen. Dit maakt het duurder voor nodes om in het netwerk te blijven, omdat ze duurdere hardware nodig hebben om gesynchroniseerd te blijven.

Ethereum-grondlegger Vitalik Buterin bedacht het Scalability Trilemma uit om de uitdaging voor blockchains te beschrijven. Hij geeft aan dat protocollen een afweging moeten maken tussen schaalbaarheid, beveiliging en decentralisatie. Deze drie punten gaan echter niet goed samen. Door de nadruk op twee van de drie eigenschappen te leggen, zal de derde eigenschap onderbelicht blijven.

Dit is de reden waarom velen vinden dat schaalbaarheid iets is dat off-chain moet worden bereikt, terwijl beveiliging en decentralisatie op de blockchain zelf moeten worden gemaximaliseerd.


Wat zijn off-chain schaaloplossingen?

Off-chain schaaloplossing hebben betrekking op de wijze waarmee transacties kunnen worden uitgevoerd zonder de blockchain op te blazen. Protocollen die worden ingeplugd in de keten, zorgen dat gebruikers geld verzenden en ontvangen, zonder dat de transacties in de hoofdketen worden weergegeven. We duiken in twee van de meest vooraanstaande ontwikkelingen op dit gebied: sidechains en payment channels.


Een inleiding tot sidechains

Wat is een sidechain?

Een sidechain is een afzonderlijke blockchain. Het is echter geen op zichzelf staand platform, omdat het op een andere manier in de hoofdketen is opgenomen. De hoofdketen en de sidechain zijn interoperabel, wat betekent dat assets vrij van de ene naar de andere kunnen stromen.

Er zijn meerdere manieren om ervoor te zorgen dat fondsen overgebracht kunnen worden. In sommige gevallen worden assets uit de hoofdketen gehaald en vervolgens op een speciaal adres gedeponeerd. Ze worden dan niet werkelijk verzonden, maar ze worden in plaats daarvan vastgezet op het adres en een gelijkwaardig bedrag wordt op de sidechain uitgegeven. Een meer eenvoudige (zij gecentraliseerde) optie is om geld naar een beheerder te zenden, die het gestorte bedrag inwisselt voor geld op de sidechain.


Hoe werkt een sidechain?

Stel dat onze vriendin Alice vijf bitcoins heeft. Ze wil deze ruilen voor vijf gelijke eenheden op een Bitcoin-sidechain, laten we ze voor het gemak sidecoins noemen. De betreffende sidechain maakt gebruik van een tweerichtingspeg, wat betekent dat gebruikers hun activa van de hoofdketen naar de sidechain kunnen overbrengen en vice versa.

Vergeet niet dat de sidechain een apparte blockchain is. Het zal dus verschillende blocks, nodes en validatiemechanismen hebben. Om de sidecoins te krijgen, zou Alice haar vijf bitcoins naar een ander adres moeten sturen. Dit adres kan eigendom zijn van iemand die vervolgens vijf sidecoins crediteert op haar sidechain-adres zodra de bitcoins zijn ontvangen. Als alternatief kan een setup van goed vertrouwen worden geconfigureerd, waarbij de sidecoins automatisch worden gecrediteerd nadat de software een betaling heeft gedetecteerd.



Alice heeft nu haar coins omgezet in sidecoins, maar ze kan het proces altijd terugdraaien om haar bitcoins terug te vorderen. Nu ze op de sidechain is belandt, is ze vrij om transacties uit te voeren op deze afzonderlijke blockchain. Ze kan sidecoins verzenden of van anderen ontvangen, net zoals in de hoofdketen.

Ze zou Bob bijvoorbeeld een sidecoin kunnen betalen voor een Binance-hoodie. Wanneer ze weer naar Bitcoin over wil stappen, kan ze haar resterende vier sidecoins naar een speciaal adres sturen. Nadat de transactie is bevestigd, worden vier bitcoins vrijgegeven en overgemaakt op een adres dat zij in de hoofdketen beheert.


Waarom worden sidechains gebruikt?

Je vraagt je misschien af wat het nut hiervan is. Waarom gebruikt Alice niet gewoon de Bitcoin-blockchain?

Het antwoord is dat de sidechain mogelijkheden heeft die Bitcoin niet heeft. Blockchains zijn zorgvuldig ontworpen systemen. Hoewel Bitcoin de meest veilige en gedecentraliseerde cryptocurrency is, komt het tekort op het gebied van doorvoer. Hoewel Bitcoin-transacties sneller zijn dan conventionele tansactiemethoden, is het nog steeds relatief langzaam in vergelijking met andere blockchain-systemen. Blocks worden elke tien minuten gemined en de kosten kunnen aanzienlijk stijgen wanneer het netwerk overbelast raakt.

Toegegeven, is dit beveiligingsniveau waarschijnlijk ook niet eens nodig voor kleine dagelijkse betalingen. Als Alice een kopje koffie wil betalen, wil ze niet staan wachten tot de transactie is bevestigd. Tegen de tijd dat het verschuldigde bedrag is voldaan, zal haar koffie waarschijnlijk al koud zijn.

Sidechains zijn niet gebonden aan dezelfde regels. Ze hoeven zelfs geen Proof of Work te gebruiken om te kunnen functioneren. Je kan elk consensusmechanisme gebruiken, een enkele validator gebruiken of een willekeurig aantal parameters aanpassen. Je kunt ook upgrades toevoegen die niet in de hoofdketen voorkomen, grotere blocks produceren of een snelle afwikkeling forceren.

Interessant is dat sidechains zelfs kritieke fouten kunnen bevatten zonder dat de onderliggende keten beïnvloedt wordt. Hierdoor zijn ze in te zetten als platform voor experimenten en om functies te lanceren waarvoor anders consensus moest worden bereikt onder een meerderheid van het netwerk.

Als gebruikers tevreden zijn met de compromissen, kunnen sidechains een belangrijke stap zijn naar effectieve schaalvergroting. Nodes uit de hoofdketen hoeven niet elke transactie van de sidechain op te slaan. Alice kon op de sidechain komen met een enkele Bitcoin-transactie om vervolgens honderden sidecoin-transacties uitvoeren en vervolgens weer de sidechain te verlaten. Met betrekking tot Bitcoin-blockchain transacties, heeft ze er slechts twee uitgevoerd: één om binnen te komen en één om de sidechain te verlaten.

Ethereum Plasma is hiermee te vergelijken, maar bevat enkele grote verschillen. Lees er meer over: Wat is Ethereum Plasma?


Een inleiding tot payment channels

Wat is een payment channel?

Payment channels hebben hetzelfde doel als sidechains op het gebied van schaalbaarheid, maar ze zijn fundamenteel anders. Net als sidechains verplaatsen ze de transacties van de hoofdketen om te voorkomen dat de blockchain wordt overspoeld. In tegenstelling tot sidechains hebben ze echter geen afzonderlijke blockchain nodig om te functioneren.

Een payment channel maakt gebruik van smart contracts om gebruikers in staat te stellen transacties uit te voeren zonder hun transacties naar de blockchain te publiceren. Met behulp van software wordt een overeenkomst tussen twee gebruikers tot stand gebracht.


Hoe werkt een payment channel?

Zoals bij het populaire Lightning Network gebruikelijks is, zouden twee partijen eerst coins moeten storten op een gezamenlijk adres. Dit is een multisignature-adres, oftewel een adres dat twee handtekeningen vereist om fondsen uit te geven. Als Alice en Bob een dergelijk adres hebben aangemaakt, kunnen fondsen alleen worden verplaats met toestemming van beiden.

Stel dat ze elk 10 BTC storten op een adres dat daardoor 20 BTC bevat. Het zou handig voor beide zijn om een balans bij te houden die aangeeft dat Alice en Bob elk 10 BTC hebben. Als Alice aan Bob een coin zou willen geven, dan kunnen ze de balans aanpassen zodat Alice 9 BTC heeft en Bob 11 BTC heeft. Ze hoeven dit dan niet op de blockchain te publiceren terwijl ze wel de saldi kunnen blijven bijwerken.



Laten we zeggen dat Alice inmiddels 5 BTC heeft en Bob 15 BTC. Ze zouden vervolgens een transactie kunnen maken die deze saldi naar adressen van de partijen stuurt. Vervolgens hoeven ze het maar te ondertekenen en tot slot nog uit te voeren.

Alice en Bob hadden misschien wel honderden of duizenden transacties op hun balans kunnen verwerken. Maar wat de blockchain betreft, hebben ze slechts twee on-chain-handelingen uitgevoerd: een voor de initiële financieringstransactie en een om saldi opnieuw toe te wijzen wanneer ze klaar zijn. Afgezien van deze twee transacties zijn alle andere transacties gratis en worden onmiddellijk uitgevoerd omdat ze off-chain plaatsvinden. Er zijn geen vergoedingen voor miners en geen blockbevestigingen waar op gewacht moet worden.

Dit voorbeeld gaat er natuurlijk wel vanuit dat de partijen samenwerken en elkaar kunnen vertrouwen, wat minder ideaal is voor overeenkomsten tussen vreemden. Er kunnen echter speciale mechanismen worden gebruikt om malafide handelingen af te straffen, zodat de partijen veilig zaken met elkaar kunnen doen zonder afhankelijk te zijn van elkaar. 


Betalingsrouting

Payment channels zijn handig in situaties waarbij twee partijen een groot aantal transacties verwachten. Maar dat is nog niet alles. Er kan een netwerk van deze kanalen worden opgezet, wat betekent dat Alice een partij kan betalen waarmee ze geen directe link heeft. Als Bob een kanaal geopend heeft met Carol, kan Alice haar betalen op voorwaarde dat er voldoende capaciteit is. Ze zal fondsen naar Bob's kant van het kanaal overzetten, die ze op hun beurt naar het kanaal van Carol zullen overzetten. Als Carol is verbonden met een andere deelnemer, zoals bijvoorbeeld Daan, dan kan ditzelfde principe worden herhaald.

Zo'n netwerk ontwikkelt zich tot een gedistribueerde topologie waar iedereen verbinding maakt met meerdere peers. Er zijn vaak meerdere wegen die naar Rome leiden en gebruikers kunnen zelf de meest effectieve weg kiezen.


Tot slot

We hebben twee schaalbaarheidsbenaderingen behandeld waarmee transacties kunnen worden uitgevoerd zonder de onderliggende blockchain te belasten. Zowel sidechains als de technologie van de betaalkanalen moeten zich nog verder ontwikkelen, maar ze worden steeds meer toegepast door gebruikers die de tekortkomingen willen omzeilen.

Over een afzienbare tijd zullen steeds meer gebruikers instappen en het is dan belangrijk dat de decentralisatie wordt gehandhaafd. Dit kan alleen worden bereikt door beperkingen op te leggen aan de groei van de blockchain, zodat nieuwe nodes gemakkelijk kunnen toetreden. Voorstanders van off-chain schaalbaarheidoplossingen zijn van mening dat de hoofdketen op termijn alleen zal worden gebruikt om hoogwaardige transacties af te wikkelen of om sidechains in / uit te pinnen en kanalen te openen / sluiten.