Je bent hier:-, Nieuws-Segwit & Lightning: wat is het scaling probleem?

Segwit & Lightning: wat is het scaling probleem?

Wellicht weet je al dat de meeste blockchains lijden onder een capaciteitsprobleem. Vooral de netwerken van bitcoin en ethereum zijn continu overbelast.  Deze overbelasting drijft de transactiekosten erg omhoog tot een record van omgerekend zelfs meer dan $30 per transactie! Waarom kan het netwerk niet meer transacties verwerken? En wat zijn mogelijke oplossingen?

Hoeveel transacties kunnen bitcoin en ethereum nu aan?
Zowel bitcoin als ethereum draaien op een zogenoemd “proof-of-work” algoritme. Hoe dat precies zit, kun je hier lezen. Dit is kort gezegd een soort puzzel die een computer moet oplossen. De moeilijkheidsgraad van deze puzzel wordt hoger naarmate meer computers rekenen aan het probleem. Deze moeilijkheidsgraad wordt zo ingesteld, dat het voor bitcoin ongeveer 10 minuten duurt om hem op te lossen, ongeacht het aantal computer dat eraan rekent. Bitcoin wordt dus niet sneller bij meer rekencapaciteit, maar veiliger! Voor ethereum is dit ongeveer 15 seconde.

Daarnaast is er een limiet aan de grootte van een gevonden block. Bij bitcoin is dit 1 megabyte, bij ethereum werkt het iets anders. Ethereum heeft een zogenoemde “gas limit”, wat een door de miners democratisch besloten maximale waarde is. Het verhogen van de maximale block grootte heeft als voordeel dat er meer transacties in een block passen, maar het betekent ook dat de grootte van de gehele blockchain heel erg snel oploopt. Als je mee wilt doen aan het verwerken van transacties moet je alle transacties ooit gedaan downloaden, wat voor bitcoin nu al zo’n 150GB is. Als de maximale block grootte wordt verhoogd, wordt het onmogelijk voor kleine spelers om mee te doen, en krijg je centralisering van het netwerk.

De combinatie van 10 minuten en 1 megabyte per block legt een maximum van ongeveer 7-8 transacties per seconde op aan het gehele bitcoin netwerk. Bij ethereum ligt dit op ongeveer 15 transacties per seconde. Nogmaals: meer computers aan het netwerk toevoegen verhoogt niet de snelheid, maar de veiligheid.

Mogelijke oplossingen voor de schaalbaarheid
De reden waarom het zo moeilijk is om gedecentraliseerde netwerken te schalen is precies waarom ze waardevol zijn: je kunt ze gebruiken zonder iemand te vertrouwen. Maar daarvoor moet je alle transacties zelf kunnen verifiëren.

De maximale block grootte verhogen is precies wat Bitcoin Cash heeft gedaan. Hun block size is nu gezet op 8MB in plaats van 1MB. Dit resulteert in een maximum van ongeveer 61 transacties per seconde, maar hun blockchain groeit nu ook 8 maal zo hard dan die van Bitcoin. Mocht een cryptomunt ooit de hoeveelheden van bijvoorbeeld Visa bereiken (meer dan 1500 transacties per seconde), dan zou de blockchain echter veel en veel te groot worden. Er zijn andere oplossingen nodig.

Segwit & Lightning
Segwit, of segregated witness, is een techniek om de hoeveelheid informatie in een block te reduceren. De “witness” (het wiskunde bewijs dat de transactie valide is) wordt “segregated” (gescheiden) van de transactie-informatie. Daarnaast wordt de limiet hernoemd van 1MB naar 1 miljoen “dingen”, waarbij het witness gedeelte gedefinieerd is als een kwart “ding”. Hierdoor wordt de maximale block grootte verhoogd naar effectief 1.8MB. Segwit is eind vorig jaar definitief geïmplementeerd in het Bitcoin netwerk, en draait onder andere ook op bijvoorbeeld Litecoin. Het klinkt een beetje arbitrair om zoiets te doen, maar de hoofdreden is dat dit de weg vrijmaakt voor het Lightning netwerk.

Er vinden vaak meerdere transacties plaats tussen twee personen. Met het lightning netwerk kunnen deze twee personen een tijdelijk betalingskanaal openen en onbeperkt transacties doen die alleen geverifieerd worden door die twee personen. Deze transacties gaan dus niet naar het bitcoin netwerk. Op het moment dat de transacties afgerond zijn, worden de transacties bij elkaar opgeteld en gaat het geheel als één transactie naar het Bitcoin netwerk. Daarbij wordt het betalingskanaal afgesloten. Er zit geen tijdslimiet op het afsluiten van het kanaal!

Je kunt uiteraard alleen maar transacties doen met bitcoin die je daadwerkelijk bezit, en om het betalingskanaal open te houden kun je de bitcoin die je hiervoor ‘inzet’ niet meer gebruiken voor andere transacties. Stel Anne en Bob openen een kanaal en leggen ieder 0.1 bitcoin in. Anne kan dan 0.05 bitcoin overmaken naar Bob, zodat de stand op 0.05 en 0.15 staat. Bob kan dan weer 0.12 bitcoin naar Anne overmaken, etcetera. Als Anne of Bob bij zijn/haar bitcoin wilt, kan het kanaal altijd gesloten worden.

De kracht zit hem in het netwerk effect. Als er een kanaal tussen Anne en Bob, en Bob en Daan aanwezig is, kan Anne via Bob geld overmaken naar Daan. Dit netwerk effect breidt zich supersnel uit: stel dat elke wallet 10 kanalen open heeft staan. Dan kun je via één tussenpersoon naar 100 mensen bitcoin overmaken zonder dat dit naar de blockchain moet. Via 3 tussenpersonen kun je naar 10.000 mensen bitcoin overmaken! Er is dus een gigantisch web van open kanalen. Wanneer er af en toe eentje wordt gesloten, worden de transacties voor altijd opgeslagen in de blockchain, en kunnen transacties via andere routes in het betaalkanaalnetwerk gedaan worden.

Helaas is de kans dat het overgrote deel van het netwerk altijd via een aantal knooppunten gaat lopen. Dit netwerk van betaalkanalen kun je vergelijken met een netwerk van vrienden, vrienden van vrienden, etc op Facebook. Je ziet dan altijd dat er een aantal knooppunten vormen (hele populaire mensen), zoals te zien is in de afbeelding hieronder:

Deze knooppunten leiden tot centralisatie. Centralisatie in grafentheorie (het onderliggende wiskunde concept dat dit soort netwerken beschrijft) is echt een ding: https://en.wikipedia.org/wiki/Centrality. Daarnaast zijn de bitcoins die gemaakt zijn om een betalingskanaal op te zetten niet beschikbaar voor andere transacties. Als er heel veel betalingskanalen op staan, staan er dus veel bitcoins “op slot”.

Het lightning netwerk is nog in volle ontwikkeling, het kan nog even duren voor het zo ver is. Maar dit zou wel eens dé oplossing kunnen zijn voor het schalingsprobleem.

Tot slot
Op de korte termijn is er nog geen echte oplossing voor het schalingsprobleem. Segwit heeft een beetje ademruimte gecreërd, maar de echte oplossing is nog in aanbouw. Het zou het lightning netwerk kunnen zijn: een groot netwerk tussen personen die betalingskanalen open hebben staan, waarin transacties plaatsvinden die niet op de blockchain opgeslagen worden.

Er zijn nog veel meer mogelijke oplossingen voor het schalingsprobleem. Je kunt een klein stukje decentralisatie opofferen voor snelheid, zoals Stellar doet. Daarnaast is Ethereum bezig met sharding en een proof-of-stake methode (Caspar). Dat laatste vervangt het minen volledig met het staken van munten. In plaats van computertijd in te leveren om transacties te verifiëren, wordt er een persoon aangewezen die de transactie moet verifiëren, gebaseerd op hoeveel coins je hebt. Daarnaast kan iedereen als validator optreden, en iedereen die meedoet aan het verifiëren van de transacties krijgt een deel van de transactiekosten.

Het grootste voordeel hiervan is dat er geen mining meer plaatsvindt, wat echt heel veel energie scheelt! Proof-of-stake wordt al toegepast in bijvoorbeeld Peercoin.

Hopelijk heb je wat meer inzicht gekregen in het schalingsprobleem! Reageer hieronder als je vragen of opmerkingen hebt!

Door |2018-06-24T09:14:33+00:001 juni 2018|Categorieën: Know How, Nieuws|Tags: , , |1 Reactie

Comments on Segwit & Lightning: wat is het scaling probleem?

  • BlockerNL

    30$ is serieus veel geld voor een enkele transactie? Heb jij ooit zoveel betaald en belangrijker nog: waar ligt de max voor jou?!