Dit is het eerste gastartikel op Bitcoin-Partner, geschreven door Arnold Hubach. In dit artikel lees je hoe het lightning netwerk werkt en leer je meer over dit razendsnelle betalingsnetwerk. Sommige mensen vragen zich namelijk af: "Is bitcoin wel geschikt voor alledaagse betalingen?" Dat was een terechte vraag die in 2017 vaak terugkwam. De blockchain is traag en de kosten liepen flink op. Er passen gemiddeld maar een paar duizend betalingen in een block, en daarnaast duurt het met een beetje pech ook nog eens 10 minuten voordat de betaling is bevestigd. Verre van optimaal voor het geld van de toekomst! Echter: dit is een feature en niet een bug. Dat vergt enige uitleg.
Tegenwoordig hoor je dit argument alleen nog maar bij ongeïnformeerde cryptofanaten die een altcoinproject pushen en het over de tps (transactions per second) hebben. Waarom? Inmiddels bestaat er een secundaire laag op de bitcoin blockchain waarmee ook de derde eigenschap van geld weer van kracht is, die van het betaalmiddel.
Store of Value
Unit of Account
Medium of Exchange
Dat bitcoin een goed potentieel oppotmiddel is, mag duidelijk zijn: bitcoin is schaars. Daarnaast hoeft je niet veel transacties te doen om het als spaarmiddel te gebruiken. Maar als je het ook als betaalmiddel wilt gebruiken, om vervolgens een rekeneenheid te worden, moet het protocol heel veel betalingen kunnen verwerken. En daar wringt de schoen.
In 2017 vond het ‘scaling debate’ plaats wat precies hierover ging. Het probleem was dat de basislaag van bitcoin niet geschikt is om honderdduizenden betalingen per dag te verwerken. Door een blocktijd van ~10 minuten en een blockgrootte van 1 MB kan het heel lang duren voordat een betaling in de blockchain gebeiteld staat. Tel daar de oplopende transactiekosten bij op en een steeds voller wordende mempool, en we kunnen stellen dat bitcoin geen perfect betaalmiddel is. Je rekent niet zomaar even een kopje koffie af met bitcoin, als de betaling pas enkele uren later aan komt, terwijl je ook nog eens een paar euro aan transactiekosten betaalt. Maar hoe kun je dit oplossen?
Bigblockers
Er zijn verschillende oplossingen bedacht. Je kunt blocken groter maken waardoor de doorstroom vanuit de mempool sneller gaat. Op die manier kun je alle betalingen in de blockchain krijgen, zonder dat je met transactiekosten concurreert om een plekje in het eerstvolgende block van 1 MB. Een (klein) deel van de bitcoin community was van mening dat dit de oplossing was: de limiet van de blockgrootte in het protocol moest worden aangepast naar 2, 4 of zelfs 8 MB. Deze groep is in 2017 (en 2018) afgesplitst van bitcoin en zijn verder gegaan onder de naam Bitcoin Cash (BCH) en Bitcoin SV (BSV).
Bitcoin (BTC) koos een ander pad: opschalen buiten de blockchain om. Het is een bewuste keuze om het netwerk traag en kostbaar te houden, en dus niet zozeer een technische tekortkoming. Bitcoin houdt expres vast aan de blockgrootte van ~1 MB en een blocktijd van ~10 minuten. Waarom? Op deze manier blijft het netwerk decentraal. Nodes zouden anders enorm moeten schalen, op een manier die helemaal niet logisch is. De blockchain zou teratbytes aan informatie bevatten (en per jaar groeien) waardoor alleen grote serverparken nodes kunnen draaien om transacties te verifiëren. Ook zou het qua synchronisatie van het peer-to-peer netwerk voor problemen kunnen zorgen. Het mooie aan bitcoin is momenteel juist dat iedereen op een mini computer de gehele blockchain kan downloaden om transacties te verifiëren, zoals een Raspberry Pi. Dit houd de kosten behapbaar en voorkomt dat het voor nieuwe deelnemers te duur wordt om een node te draaien.
Om van bitcoin tóch een goed decentraal ruilmiddel te maken, is er een tweede laag op de blockchain gebouwd. Deze betalingsinfrastructuur heet het lightning netwerk en dit zorgt ervoor dat het internetgeld wel goed als ruilmiddel kan fungeren. Via lightning kun je wél jouw dagelijkse betalingen voor kopjes koffie met bitcoin en satoshi’s doen.
Nieuw netwerk
Lightning is een peer-to-peer netwerk waarin betalingen daadwerkelijk van de ene persoon naar een andere persoon gaan. Dit is een belangrijk verschil tussen bitcoin nodes en lightning nodes:
Bij de on-chain bitcoin betalingen worden alle (!) transacties door het hele (!) netwerk gecontroleerd en geverifieerd: iedere node doet exact hetzelfde.
Bij lightning is dit niet het geval: betalingen gaan direct van verzender naar ontvanger: andere nodes uit het netwerk hoeven hier niets van te weten.
Omdat dat niet hoeft, zit je ook niet vast aan regels omtrent consensus en de tijd die het duurt voordat de hele wereld akkoord is over een specifieke betaling. Maar toch gebruikt het bitcoin als basislaag.
Stel, jij koopt iedere dag een kopje koffie van 10.000 satoshi’s. Om hier iedere keer een on-chain betaling te doen is veel te duur. Daarom kun je met de koffietent eigenaar een afspraak maken.
Jullie maken samen een barrekening aan en jij legt alvast wat geld in. Laten we zeggen dat het om 100.000 satoshi’s gaat, waarvan je dus 10 keer een kopje koffie kunt kopen. Iedere keer als jij een kopje koffie koopt, wordt de balans van de onderlinge barrekening bijgewerkt. Zowel jij als de eigenaar van de koffietent houden deze balans bij en updaten deze iedere keer dat er een betaling plaatsvindt. Op deze manier doe je slechts twee onchain transacties:
jij legt het geld in (100.000 sats), en
na bijvoorbeeld 8 bestellingen krijg jij het wisselgeld terug (20.000 sats).
Alle andere records van het kasboek gebeuren onderling in wederzijds vertrouwen, omdat jij een koffie krijgt en daarvoor belooft te betalen (en zelfs al geld hebt ingelegd). Het mooie aan bitcoin is dat je deze belofte al cryptografisch kunt ondertekenen als potentiële laatste transactie die je naar miners kunt sturen. Op deze manier kun je dus acht betalingen doen, terwijl er maar twee echte transacties plaatsvonden: het aanmaken van de barrekening en het sluiten van deze rekening.
Deze 100.000 satoshi komen bij het openen van de barrekening echter niet in de wallet van de koffietent terecht. Deze wordt ‘vastgezet’ in de blockchain: de koffietent kan er zelf niets mee doen. Jullie zijn er samen de baas over. Je maakt als het ware een kralenketting. Hierin zitten 100.000 kralen en iedere keer als je een aankoop doet, schuif je kralen (of dus: satoshi’s) door naar de andere kant van de lijn. Zo’n lijn heet een betaalkanaal.
Het aanmaken van zo’n betaalkanaal is een on-chain transactie, die in de blockchain komt. Als je op een gegeven moment het betaalkanaal wilt sluiten (en de satoshi's aan jouw kant van de lijn wilt claimen) kun je dit gewoon doen. Dit is wederom een on-chain betaling.
Terwijl je één transactie doet (om het kanaal te openen) en één transactie doet (om het kanaal te sluiten) kun je tussendoor gigantisch veel betalingen doen. Deze honderden, duizenden zo niet tienduizenden betalingen vervuilen de blockchain niet en nemen dus ook geen ruimte in beslag. Omdat je dus met z’n tweëen lokaal de balans van dit betaalkanaal bijhoudt, kost dit ook niets: je hoeft voor deze microbetalingen geen transactiekosten af te staan aan miners.
Multi-sig
Een betaalkanaal is in wezen een multi-sig wallet, wat staat voor multi-signature. Dat is een digitale portemonnee waarvoor je meerdere handtekeningen nodig hebt om coins uit te geven. Als je een betaalkanaal opent, doe je feitelijk gezien ook zo iets: er zijn namelijk twee partijen in het spel.
Nadat dit kanaal is geopend, kun je dus meerdere keren een kopje koffie kopen. Het idee daarbij is heel simpel: als jij een koffie bestelt, doe je een betaling: je ondertekent de nieuwe balans van het betaalkanaal. Uiteraard is de koffietent het met deze betaling eens: zij hebben de dienst geleverd. Zo kom je samen tot een nieuwe staat van het betaalkanaal.
De coins blijven onaangeroerd in de blockchain in de multisig constructie zitten. De twee betrokken partijen zijn het echter met elkaar eens hoe de onderlinge balans eruit ziet.
Netwerk van kanalen
In het voorbeeld hadden we het over twee partijen: de koffietent en jij als klant. Echter is het heel onpraktisch om met iedereen met wie je een lightning betaling wilt doen, betaalkanalen te moeten openen en sluiten. Want dan moet je alsnog heel veel on-chain transacties doen, wat dus een volle mempool zou veroorzaken. Daarnaast wordt een deel van jouw bitcoin opgesloten in deze kanalen, wat ook niet optimaal is. Deze sats zou je dan namelijk nergens anders kunnen uitgeven, als je dat zou willen.
Toch is dit probleem niet relevant. Want stel je voor dat deze koffietent óók een betaalkanaal heeft geopend met de pizzatent, dan sta jij indirect ook in contact met deze persoon. Als je dan een pizza wilt betalen met bitcoin, gaan er satoshi’s van jouw kralenketting naar de koffietent toe, en van de koffietent naar de pizzatent. En zo ontvangt de pizzatent dus jouw betaling, zonder dat je een direct kanaal hoeft te openen. Je betaalt daarvoor doorgaans 1 sat aan transactiekosten, afhankelijk van wat de tussenliggende routing node instelt.
Lightning node en wallets
Je kunt lightning betalingen doen door zelf een node te draaien, waardoor je een radar wordt in het netwerk van inmiddels al duizenden nodes. Vervolgens moet je dus wel zelf de eerste betaalkanalen openen en ook zorgen dat deze in balans blijven. Dit vergt extra tijd en kennis over ‘channel management’. Voor de gemiddelde computerliefhebber is dit heel erg leuk om te doen. Je moet namelijk bezig gaan met het herbalanceren van kanalen en het zorgen voor inbound capacity en outbound capacity. Ook kun je inzien als er betalingen via jouw node doorgestuurd worden naar de ontvanger en kun je hier een kleine vergoeding voor vragen.
Maar je hoeft (gelukkig) niet per se een eigen node te draaien om lightning betalingen te versturen of ontvangen. Je kunt ook wallets downloaden waarbij alles voor jou wordt geregeld. Dit maakt het voor íedereen toegankelijk. Je kunt kiezen tussen twee opties (naast een eigen node):
Custodial of hosted wallets: de wallet provider beheert jouw geld, net als je bij de bank jouw geld afgeeft. De bekendste wallets zijn BlueWallet en Wallet of Satoshi.
Non-custodial wallets: je hebt zelf de keys tot de bitcoin in handen, en de wallet regelt alles omtrent lightning onder de motorkap. Bekende wallets zijn Phoenix en Breez.
Open source code
De broncode van de lightning software is, net als die van bitcoin, open source. Iedereen kan het inzien, eraan bijdragen en deze dus verbeteren. Er zijn drie grote bedrijven die werken aan een eigen implementatie van de standaarden. Dit zijn:
Blockstream (met c-lightning)
Lightning Labs (met lnd)
ACINQ (met eclair)
Daarnaast is er de Lightning Development Kit (LDK) en zijn er enkele experimentele varianten. Je zou deze implementaties kunnen vergelijken met Android, iOS en Windows. Het is geen probleem om een Whatsappje te sturen van een iPhone naar een Android telefoon. Zo werken de verschillende implementaties onderling ook gewoon. Evenzo kun je gewoon een betaling sturen van iemand die lnd gebruikt naar iemand die eclair gebruikt. De eerder genoemde wallets (zoals BlueWallet en Breez) gebruiken deze implementaties om een lightning wallet bovenop te bouwen.
Tot slot
Lightning is nog relatief nieuw en bestaat nog maar een aantal jaar. Het biedt heel veel mogelijkheden en heeft enorm veel potentie. Het is een snelle manier om betalingen te doen zonder dat je de blockchain vervuilt en zonder dat je een centrale partij nodig hebt.
El Salvador draait op lightning en ook Twitter heeft het ingebouwd via bitcoinapp Strike. Er zijn ruim 75.000 betaalkanalen tussen in totaal 16.000 publieke nodes, zoals statistiekensite 1ML laat zien.
Het opent nieuwe businessmodellen, zoals moneystreaming, microbetalingen en nieuwe media- en advertentie modellen. Liquiditeitsproviders worden de nieuwe ISP’s, terwijl je binnen seconden fiatwaarde kunt versturen met lightning als payment rail. De mogelijkheden lijken eindeloos en het gaat ongetwijfeld nog veel nieuws brengen.
Beurzen zijn begonnen om het te implementeren, zoals Bitfinex, Kraken, OKCoin en ook het Nederlandse BL3P. Inmiddels bouwen bedrijven in de hele wereld door op lightning, zoals CoinCorner, Pouch, Bitnob of NeutronPay. Hiermee kun je onderling internationale overboekingen afwikkelen waarbij de bitcoin die binnenkomt direct wordt omgezet naar de lokale valuta.
De bitcoin mainchain blijft hierdoor een monetair settlement netwerk waarop lightning functioneert als betalingsnetwerk. Bitcoin transacties over lightning breken de snelheid van het licht en zijn een innovatie in de manier waarop waarde wordt uitgewisseld.
Bitcoin is met lightning daarom zeker (weer) een betaalmiddel. Je kunt het beruchte kopje koffie dus gewoon met bitcoin afrekenen. Zoals het hoort! Indien je lightning wilt testen, kun je hier een donatie achterlaten!
Over de schrijver:
Dit artikel is geschreven door Arnold Hubach, een bekende naam in de (Nederlandse) Bitcoin scene. Arnold is naast digital nomad een echte Bitcoin fanatic en freedom maximalist. Je kent hem als Co-founder van Bitcoin Focus, maar ook van zijn werk als redacteur voor Bitcoin Magazine. Arnold is al sinds 2016 actief in de wereld van Bitcoin en heeft al aardig wat proof of work achter zijn naam staan. Hier kun je meer van zijn werk terugvinden:
- documentaire: bitcoin in El Salvador
- cursus: kennismaking met bitcoin
- magazine: cursusbundel kennismaken met bitcoin
- boekvertalingen:
Lees hier het volgende artikel: #12 - Proof of Work: fysieke verdediging voor een economische realiteit
Comentarios