Het Bitcoin netwerk heeft momenteel een potentiele bottleneck. Het netwerk kan namelijk maar een stuk of 10 transacties per seconde aan. Eén van de mogelijke oplossingen hiervoor is het Lightning Network. Dit is een extra laag boven op Bitcoin welke vrijwel onbeperkte hoeveelheden transacties mogelijk maakt. Daarnaast worden de transacties ook goedkoper en anoniem. Dat klinkt bijna te goed om waar te wezen dus laten we eens kijken wat Lightning Network is en hoe het werkt.
Is er echt een probleem?
Eerst even terug naar de basis. Zoals gezegd heeft Bitcoin momenteel de beperking dat er maximaal iets van 10 transacties per seconde verwerkt kunnen worden. Dit komt, onder andere, door het feit dat de ruimte in de Blockchain kostbaar is. De Blockchain is de openbare decentrale database waarin alle Bitcoins en Bitcoin-transacties vastgelegd worden. Deze Blockchain bestaat weer uit opeenvolgende blokken met daarin de Bitcoin transacties. Ongeveer elke 10 minuten wordt er een nieuw “Block” toegevoegd aan de Blockchain waardoor deze transacties bevestigd worden.
Er woedde vorig jaar een heftig debat over de grootte van de blocks. Het zogenaamde ‘scaling’ debate. Kort samengevat was de ene partij van mening dat de blocks groter moesten zodat er meer transacties per seconde mogelijk zouden worden. De andere partij vond dat je het vergroten van de blocks heel voorzichtig aan moet pakken en dat het opschalen slimmer moest gebeuren via een protocol upgrade genaamd segwit. Segwit loste trouwens ook een hoop andere zaken op zoals de zogenaamde malleability bug en het maakt ook vele nieuwe innovaties, zoals het Lightning Network, mogelijk.
Om een heel lang verhaal kort te maken heeft de segwit partij uiteindelijk gewonnen. Als segwit op grotere schaal gebruikt gaat worden (wat je nu begint te zien) zullen onder andere de transacties iets kleiner worden waardoor er meer per seconde plaats kunnen vinden. De invoering van segwit geeft Bitcoin voorlopig weer even wat ademruimte. En aangezien er nu gemiddeld vaak maar 1,5 tot 2 transacties per seconde uitgevoerd worden op het Bitcoin netwerk is er nu nog geen noodsituatie. Maar toch: als Bitcoin wel massaal als betaalmiddel gebruikt zou gaan worden moet je waarschijnlijk denken aan tienduizenden of misschien wel honderduizenden transacties per seconde. En daar komt het Lightning Network dus om de hoek kijken.
Een extra laag op Bitcoin.
Zoals je zojuist kon lezen zijn er partijen die vinden dat Bitcoin moet opschalen op de Blockchain zelf. Dus: te weinig transacties mogelijk? maak de blocks groter. Het Lightning Network echter is een hele andere manier van denken. Lightning Network is een zogenaamde “layer 2” oplossing, een laag bovenop Bitcoin. De transacties van het Lightning Network zijn als het ware verankerd in de Bitcoin-laag eronder. Dit maakt de zaak een stuk flexibeler en meer geschikt voor opschalen.
Op het internet bijvoorbeeld wordt ook op deze manier gewerkt. Op het internet heb je het TCP-IP protocol, welke verantwoordelijk voor het transport van data. Je kan rechstreeks met dit protocol werken alleen dat is nogal omslachtig en de mogelijkheden zijn beperkt. TCP-IP is bijvoorbeeld prima geschikt om data van punt a naar punt b te brengen met behoud van integriteit maar niet ontworpen om webpagina’s mee te bekijken. Daarom is er op een gegeven moment het HTTP protocol ontworpen dat bovenop het TCP-IP protocol draait. Dit maakt het mogelijk om webpagina’s mee te presenteren. Bovenop dit HTTP protocol kregen we weer internet browsers welke de gegevens omzetten naar zichtbare webpagina’s.
De vergelijking met Bitcoin is snel gemaakt. Bitcoin is goed geschikt om waarde extreem veilig te versturen maar minder geschikt om dat snel, anoniem en goedkoop te doen voor kleine bedragen. Daarom wordt het Lightning Network nu ontwikkeld als laag bovenop Bitcoin om dit wel mogelijk te maken. Als laag bovenop het Lightning Network zal je straks weer grafische Bitcoin portemonnees krijgen welke weer communiceren met het Lightning Network zodat je de welbekende Bitcoin wallets te zien krijgt. Laten we eens verder kijken hoe het Lightning Network werkt.
Koffie?
Stel je eens voor dat er 2 personen zijn, (P en Q), die geregeld kleine Bitcoin transacties willen doen. P koopt bijvoorbeeld elke dag iets van Q voor 1 euro, een kopje koffie bijvoorbeeld. Dit scenario zou in de huidige staat van Bitcoin de volgende problemen opleveren. 1: De transactiekosten zijn vaak nogal hoog vergeleken met de daadwerkelijke betaling. 2: Alle kopjes-koffie transacties blijven voorgoed in de Blockchain staan. (Stel je voor dat grote hoeveelheden mensen hun kopjes koffie gaan afrekenen op de Blockchain dan zal deze hierdoor sterk groeien wat weer uitdagingen voor opslag en decentralisatie oplevert) 3: De bevestiging van de betaling van het kopje koffie duurt rond de 10 minuten. Al hoef je daar niet perse op te wachten als het om een klein bedrag gaat.
Een oplossing voor deze drie kwesties is een “payment-channel”, vrij vertaald: een betalingskanaal. Het idee achter een betalingskanaal is dat er tussen P en Q een soort van lopende rekening geopend wordt waarin P dan geld kan storten. Het aanmaken van dit betalingskanaal gaat op de achtergrond via een zogenaamd multisig-adres. Elke keer dat P dan een kopje koffie afrekent wordt de gezamenlijke balans bijgewerkt maar nog niet daadwerkelijk afgerekend. Als P en Q uiteindelijk klaar zijn met hun transacties (het geld is op of er is geen zin meer in koffie) dan zal er gekeken worden hoeveel ze elkaar nog schuldig zijn en wordt de afsluitende transactie daadwerkelijk uitgevoerd op de Blockchain. In plaats van een grote hoeveelheid kleine transacties, die op de Blockchain vastgelegd moeten worden en moeten wachten op een bevestiging, heb je met een payment-channel maar 2 transacties. Eén bij het openen van het kanaal en één bij het sluiten van het kanaal.
Het is te vergelijken met een avond in het café waar je een rekening opent door het overhandigen van 100 euro aan de kastelein. De hele avond zal de kastelein de kosten van jouw biertjes bijhouden en aan het einde van de avond krijg jij je wisselgeld terug. Dit gaat veel sneller dan dat elk biertje apart afgerekend moet worden. In plaats van een heleboel transacties heb je nog maar twee transacties, één bij het overhandigen van de 100 euro en één bij het retour krijgen van je wisselgeld.
Routeren van betalingen
Maar stel je nou eens voor dat P niet alleen bij Q wil kopen maar ook bij Z en U. Als P bij iedereen een betalingskanaal zou moeten openen zou dat nogal omslachtig wezen. Gelukkig hebben ze daar iets op gevonden en in het Lightning Network hebben ze het mogelijk gemaakt dat alle betalingskanalen met elkaar kunnen communiceren zodat betalingen doorgestuurd kunnen worden. Dat doorsturen van transacties wordt routeren genoemd. Internet verkeer bijvoorbeeld wordt ook gerouteerd via diverse partijen om uiteindelijk op deze webpagina aan te komen. Deelnemers aan het Lightning Network, zogenaamde nodes, kunnen dus als tussenpersoon dienen en betalingen van anderen routeren. P zou bijvoorbeeld niet rechstreeks verbonden zijn met Z maar Q daarentegen, die halverwege zit is wel met beide verbonden. verbonden met P aan de ene kant en met Z aan de andere kant. Een betaling van P naar Z zal wordt dus gerouteerd van P naar Q naar uiteindelijk Z.
fig 1. Schematische weergave van nodes verbonden door payment channels.
Het Lightning Network is dus simpel gezegd een netwerk van payment-channels waarover betalingen gerouteerd kunnen worden. Alle payment channels hebben in dit netwerk weer meerdere verbindingen met andere payment channels waardoor een sterk verweven netwerk gerealiseerd wordt. In dit netwerk kan verkeer over meerdere routes lopen wat de snelheid en betrouwbaarheid weer ten goede komt. Net zoals bij het internet nu het geval is.
Valsspelen?
Naast het feit dat de Betalingen gerouteerd worden zodat je razendsnel iedereen over de hele wereld kan betalen hoef je, net zoals bij Bitcoin, de andere partij niet te vertrouwen. Het lightning network heeft een beveiliging ingebouwd zodat bitcoins, die in je payment channel staan, niet zomaar gestolen kunnen worden. In een payment channel wissel je geld met elkaar uit door de status van het kanaal te vernieuwen. Als er geld overgemaakt wordt tussen de twee deelnemers aan het kanaal komt het kanaal in een nieuwe staat. Dit op zijn beurt gebeurt weer door het uitwisselen van informatie tussen de deelnemers waar 1 van de 2 partijen in zijn eentje niks mee kan. Om een transactie te doen of om het kanaal te sluiten moeten beide partijen gezamenlijk de informatie gebruiken die ze van elkaar gekregen hebben. Als 1 van de 2 partijen op eigen houtje probeert het kanaal te sluiten om er met de fondsen vandoor te gaan kan de andere partij, met de informatie die hij eerder gehad heeft, niet alleen al zijn eigen fondsen terughalen uit het kanaal maar krijgt hij ook de fondsen van de andere partij zodat die alles kwijt is. Valsspelen loont dus niet.
De transacties op het lightning network worden dus, zoals ze dat noemen, “offchain” gedaan. Niet op de Blockchain. In het geval van problemen gaat men dus wel terug naar de Blockchain die als een soort van scheidrechter optreedt.
Anonimiteit
Naast het voordeel van snelheid en lage transactiekosten mogen we het derde voordeel niet over het hoofd zien, anonimiteit. Het mooie aan het opzetten van een payment channel op het lightning network is dat alleen het opzetten en het afsluiten van het channel te zien is op de Blockchain. Wat er allemaal gebeurt terwijl het kanaal openstaat is volstrekt onzichtbaar voor de buitenwereld. Je kan bij het afsluiten van het kanaal wel zien dat er bitcoins bij of afgeschreven zijn maar dus niet zien wie wie de eventuele ontvangers of afzenders waren. Nu heb ik me wel laten vertellen dat je wel meerdere payment channels open moet hebben staan om de zaak echt anoniem te houden. Dit heeft dan weer te maken met het feit dat als je maar 1 kanaal open hebt staan je alleen een ontvanger of zender moet zijn aangezien je geen betalingen kan routeren met maar 1 open kanaal.
Dat er niet te zien is wat er gebeurt terwijl het kanaal open staat is te danken aan de onion routing welke ingebouwd is in het Lightning Network. Door onion routing kan er niet door een derde partij achterhaald worden waarnaartoe en waarvandaan transacties gestuurd worden. Het onion routing protocol wordt ook gebruikt in TOR, een netwerk wat internetverkeer anoniem maakt. Het idee erachter is als volgt. In het Lightning Network wordt, voor het versturen van een transactie, eerst gekeken wat de route wordt naar de bestemming. In ons eerdere voorbeeld wilde P een betaling doen, deze ging via Q, om uiteindelijk bij Z uit te komen. De route wordt dan P,Q,Z. Deze route wordt verpakt in een datapakket welke bestaat uit lagen en verstuurd naar het eerste punt op de route (de eerste HOP zoals dat wordt genoemd) Elk punt op de route naar de eindbestemming kan alleen het voor hun bestemde laagje van het datapakket ontcijferen. Als een node een lightning datapakket ontvangt ziet deze na het ontcijferen 1: het adres van de volgende node in de router en stuurt het door, of 2: dat het pakket voor hem bestemd is, eindbestemming bereikt dus, en hij mag dan de data openen. Op deze manier kan een tussenliggend station dus nooit zien wat de oorsprong was van de betaling en wat de eindbestemming is. Dit maakt de betalingen anoniem in tegenstelling tot het Bitcoin netwerk waar elke transactie openbaar is.
Het Lightning Network zou Bitcoin dus een concurrent kunnen maken voor privacy based crypto’s zoals Monero en Zcash
De oorsprong van het Lightning network
Eigenlijk gaat de geschiedenis van het Lightning Network helemaal terug tot de oorsprong van Bitcoin. Toen Satoshi zijn eerste aankondiging van Bitcoin deed op de Cryptography mailing list was de eerste reactie meteen een opmerking over de schaalbaarheid van Bitcoin. Of beter gezegd de niet schaalbaarheid ervan. De opmerking ging over het feit dat op het Bitcoin netwerk elke transactie, die ooit gedaan zou worden, opgeslagen wordt in de Blockchain. In de beginjaren van Bitcoin was dat niet zo’n probleem. Des te meer er echter gebruik gemaakt wordt van Bitcoin des te meer de blocks vol raken en des te groter de Blockchain wordt met alle bijbehorende problemen van dien. Dus: hoe gaan we kleine transacties, waarvan het niet echt belangrijk is dat ze tot in de eeuwigheid bewaard worden, nu van de Blockchain afhouden? Precies: via het Lightning Network.
Op 6 oktober 2016 schreven we hier voor het eerst over het Lightning Network want op 5 oktober 2016 was er namelijk een eerste demo naar buiten gekomen. In deze demo kon je zien dat er een kattenplaatje werd gekocht via een peer to peer betaling over het Lightning Network. De daadwerkelijke start van het Lightning Network was in 2015 toen Joseph Poon and Tadge Dryja het idee voor het Lightning Network voor het eerst op papier zetten. Na veel ontwikkelen, testen en de bovengenoemde demo werd in december 2017 B.O.L.T. geintroduceerd. Er waren op dat moment al meerdere bedrijven bezig met het ontwikkelen van hun eigen Lightning Network implementaties. BOLT, wat staat voor “Basis of Lightning Technology”, bevat standaarden voor het Lightning Network waar alle lightning implementaties zich aan moeten houden. Met behulp van deze standaarden kunnen alle implementaties met elkaar overweg. In december 2017 leidde dat ertoe dat het testen van de compatibiliteit tussen de verschillende implementaties uitkwam op een score van 75/75. Vlag en wimpel dus.
Alleen maar voordelen en voorstanders?
Uiteraard zijn er ook kanttekeningen te plaatsen bij het Lightning Network. Zo moet je bijvoorbeeld in principe altijd online zijn om een betaling te ontvangen en zijn er uitdagingen wat betreft de centralisatie en beveiliging. In dit artikel kan je een evenwichtige opsomming van alle voor en nadelen. Als je verder misschien denkt dat iedereen enthousiast is over het Lightning Network dan heb je het mis. Er zijn er ook die bang zijn dat het Lightning Network zal leiden tot centralisatie en tot overname van Bitcoin door banken. Maar eerlijk gezegd vallen die zorgen bijna in het samenzwerings-hoekje. Ik heb een aantal van deze video’s bekeken en er zitten zeker wat goede punten in. De algemene negatieve en denigrende toon en feitelijke onjuistheden maken het echter dat ze mij slecht kunnen overtuigen. Om compleet te zijn heb ik toch wat links hieronder gezet naar de desbetreffende video’s. 1. How The Banks Bought Bitcoin | Lightning Network 2. Rick Reacts to the Lightning Network
Zelf aan de slag?
Een leuke plek om risicoloos het gevoel te krijgen voor Lightning Network is op htlc.me. Daar krijg je een lightning wallet met wat testnet Bitcoins welke je dan weer kan uitgeven. Op de site kan je ook een lijst vinden met sites waar je kan betalen. Als je zelf op het productienetwerk aan de slag wilt met Lightning Network dan zal je het grotendeels zelf moeten uitzoeken. Das waarschijnlijk maar beter ook. Als je het niet zelf kan uitvogelen dan kan je het waarschijnlijk maar beter laten. Het staat nog in de kinderschoenen en de kans dat je geld kwijtraakt is reeel. Mocht je daardoor niet afgeschrikt worden dan is de LND Overview and Developer Guide een goede plek om te beginnen. Op youtube en google zijn ondertussen ook al genoeg goede tutorials te vinden.
Fig 2. Op de #recksplorer (https://lnmainnet.gaben.win/) kan je het Lightning Network zien groeien.
Hoe nu verder ?
Na alle voors en tegens van het Lightning Network wil je waarschijnlijk weten wanneer we het daadwerkelijk kunnen gaan gebruiken. Het antwoord daarop is even simpel als teleurstellend: het is af als het af is. Het Lightning Network is op dit moment nog vol in ontwikkeling. De grootste spelers op dit moment zijn ACINQ met hun implementatie genaamd Eclair, Blockstream met Lightning-charge en Lightning Networks, van de bedenkers Poon en Dryja, met LND. Als je wilt kan je nu zelf al aan de slag met het lightning network op testnet en op het productienetwerk maar het is alles behalve gebruikersvriendelijk. je kan het een beetje vergelijken met het internet begin jaren 90. Je had toen nog geen browsers en zelfs geen DNS. Als je iets op wilde zoeken moest je zelf een connectie maken met een ip-adres om aldaar via gopher of ftp je data op te halen.
Een voorspelling doen over wanneer Lightning daadwerkelijk op een veilige gebruikersvriendelijke manier te gebruiken is wordt lastig. Het einddoel lijkt mij dat alle moeilijke processen van het Lightning Network verborgen zijn onder de motorkap van je Bitcoin wallet. Een Bitcoin client zou je bij voorkeur een keuze geven of je op het Bitcoin netwerk of op het Lightning Network wil werken en vanaf dat punt is het een kwestie van zenden en ontvangen zoals je nu ook gewend bent.
Ten slotte:
Zoals je ziet is er genoeg te vertellen over het Lightning Network, te veel bijna. Mijn impressie is dat het Lightning Network veelbelovend is maar dat we er nog lang niet zijn. Naast alle voordelen zijn er zeker een aantal kanttekeningen te plaatsen wat betreft de uitvoerbaarheid en veiligheid. Gelukkig is het Lightning Network niet de enige hoop wat scaling betreft en wordt er achter de schermen aan veel meer gewerkt.
Ik hoop dat ik met dit artikel je een goed beeld heb gegeven van de oorsprong en werking van het Lightning netwerk. Ik hoor graag van je in de comments of jij denkt dat het de belofte kan waarmaken. Vragen zijn uiteraard ook welkom.
Gepost door Roland – Disclaimer.
Volg Bitcoinspot op Twitter en Facebook om op de hoogtete blijven
van het belangrijkste nieuws over Bitcoin.
Als ik het goed gelezen heb dan zit er geen limiet op de bedragen die er verstuurd kunnen worden.
Wat dus betekend dat dit het ideale systeem is voor het verrekenen van crimineel geld. Ideeal om je dagelijkse shot heroine mee af te rekenen. En alle andere zwaardere zaken. Niet te traceren. Dus geven we de overheid hiermee een prima reden om het onderliggende bitcoin gebeuren aan te pakken. Lijkt mij dat er een limiet moet zijn op het af te rekenen bedrag.
Voor zover ik weet kan je niet zien van wie de bedragen afkomstig zijn maar je kan wel zien dat je geld erbij gekregen hebt dus dat valt op waarschijnlijk.
Tevens is het lightning netwerk niet echt geschikt voor hele grote bedragen omdat de veiligheid minder groot is bij offchain betalingen.