Basistips voor de bitcoiner

Onlangs schreven we over de basisprincipes van bitcoin; een set van regels waar elke deelnemer mee akkoord gaat en zich aan houdt. Er zijn echter ook een aantal geboden waaraan de individuele gebruiker goed doet deze te volgen.

  1. We drammen regelmatig voort over veiligheid. De eerste tip voor de bitcoiner is dan ook om zich bewust te zijn van het feit bitcoins alleen van jou zijn als jij de eigenaar bent van de privé-sleutels die bij de betreffende bitcoins horen. Staan je bitcoins op een exchange? Dan zijn het niet jouw bitcoins. Staan je bitcoins in een online wallet? Dan zijn het niet jouw bitcoins. Not your keys, not your bitcoins.

  2. Voortvloeiend uit punt 1 komt de best practice om geen grote bedragen in online (web) of hot (in constante verbinding met het internet) wallets op te slaan. Wat grote bedragen zijn, dat kan alleen jij zelf bepalen. Wel is zeker dat web wallets en hot wallets veel kwetsbaarder zijn voor aanvallen en diefstal dan een goede cold wallet, zoals een hardware wallet.

  3. Voortvloeiend uit punt 1 en 2 is het volgende: stop niet meer geld in bitcoin dan je bereid bent te verliezen. Zet niet meer euro’s om in bitcoin dan waar je je comfortabel bij voelt. Het kan zijn dat je veel kennis van bitcoin en daardoor veel vertrouwen in bitcoin hebt en je geheel comfortabel voelt met het aanhouden van grote tegoeden in bitcoin - geen probleem. Maar met name de beginnende bitcoiner doet er goed aan klein te beginnen en zich niet suf te kijken op de koers met dollar-tekens in de ogen. Bedenk je dat je op elk moment alles kunt verliezen, dan wel door een stomme fout, dan wel door de ondergang van bitcoin. Het is en blijft een experiment, hoe betrouwbaar ook gebleken.

  4. Draai je eigen node. Doe je dit niet, dan kies je er voor om op anderen te vertrouwen voor de verificatie van de transacties die je verstuurd en ontvangt. Je maakt dan geen optimaal gebruik van de vertrouwensloosheid die bitcoin biedt. Draai je eigen node en vertrouw alleen de informatie die deze node je doorspeelt. Alléén dan weet je zeker dat jouw betalingen voldoen aan de regels die jij gekozen hebt.

  5. Hergebruik nooit bitcoinadressen; gebruik voor elke transactie een nieuw adres. We schreven onlangs over meekijkers in de blockchain die meer informatie over jouw betalingen kunnen achterhalen dan je misschien zou verwachten. Zolang bitcoin nog het privacygehalte van een telefoonboek heeft doe je er goed aan bedachtzaam met je adressen en transacties om te gaan.

  6. Help de nieuwe bitcoiner op weg. Weet jij meer dan een ander? Deel je kennis dan. Ook jij hebt dit van een ander geleerd. Zie je mogelijkheden om je kennis breder te delen, of zie je een gat in de informatievoorziening? Doe dan je best om deze kans te pakken en dit gat te vullen.

  7. Besef je dat er weinig mensen in bitcoin zijn die zichzelf werkelijk een expert kunnen noemen. Waarschijnlijk is deze groep op een paar handen te tellen en zullen zelfs zij aangeven geen expert te zijn. We weten simpelweg nog niet goed genoeg wat bitcoin is en waar het heen gaat. Samen weten we veel en komen we ver; bitcoin draait niet om individuen. Doet iemand zich voor als expert? Wees dan uiterst behoedzaam, de kans is groot dat deze persoon je om de tuin probeert te leiden of dat hij of zij je wil overtuigen een autoriteit te zijn binnen een vakgebied dat geen autoriteiten kent.

  8. Laat je niet afleiden door flashy alt-coins en beloftes van een betere bitcoin. Wees zeer kritisch, altijd. Vraag je af wat iemand te winnen heeft bij het verhaal dat zij verkondigen en volg niet blindelings de kudde. Echte genieën zijn er maar weinig op de wereld, en ze komen vaak niet strak in pak met een glad praatje. Bitcoiners zijn veelal gedreven door idealistische beweegredenen, wanneer men hiervan afwijkt daalt vaak ook de morele standaard.

  9. Draag bij.

Hoe kun jij bijdragen?

Alleen voor de technici?

Het is niet nodig om programmeur, computerwetenschapper of cryptograaf te zijn om bij te kunnen dragen aan bitcoin. Bitcoin is een project zonder leider, bestaande uit duizenden individuen die vrijwillig, dan wel professioneel, bijdragen aan de ontwikkeling van het project en de infrastructuur eromheen. Elke bijdrage is welkom, hoe groot of klein dan ook.

Je kunt met bijna elke vorm van bijdragen wel op de een of andere manier een (flink) zakcentje verdienen, maar dit hoeft niet altijd de voornaamste drijfveer te zijn. Velen doen het vanuit een persoonlijke visie over de toekomst van bitcoin en zijn tevreden met de wetenschap dat zij bijdragen aan een belangrijke ontwikkeling. Je kunt hier jouw eigen weg in vinden. Wél zul je zelf de eerste stappen moeten zetten om betrokken te raken.

Een aantal mogelijkheden op een rijtje

  • Er zijn inmiddels over de hele wereld, ook in Nederland, aan de universiteit vakken te volgen over bitcoin en cryptocurrencies. Schrijf je in om een van deze vakken te volgen of wordt vakassistent bij een van deze vakken. Ook als dit betekent dat je als student voor een periode naar het buitenland zal gaan. Er zullen hierdoor ongetwijfeld veel interessante kansen op je pad komen.
  • Zit je nog op de middelbare school? Lees je in en doe je spreekbeurt over bitcoin.
  • Vind je het leuk om teksten over bitcoin te schrijven? Neem contact op en schrijf voor bitcoin.nl. We zijn altijd op zoek naar enthousiaste schrijvers die interessante, leuke of informerende stukken willen publiceren.
  • Maak je eigen blog met informatie over bitcoin. Iedereen dekt bitcoin uit een verschillend oogpunt, sommige richten zich op de sensatie van de koers, anderen op het internationale nieuws en weer anderen richten zich voornamelijk op de technische ontwikkeling, zoals bitcoin.nl. Alle beschikbare informatie helpt.
  • Ben je goed met talen? Neem contact op met een van de vele initiatieven en bedrijven die zich bezig houden met bitcoin. Bijna alle bitcoinbedrijven opereren internationaal en hebben dus te maken met een grote diversiteit aan klanten en taalbehoeftes. Er is altijd behoefte aan vertalingen van websites (bitcoin.org), teksten en documentatie en de impact hiervan is enorm: je bereikt een geheel nieuwe groep mensen. Hier zijn speciale platformen voor.
  • Deel kennis op Twitter, Facebook of andere platformen. Niet iedereen is ontwikkelaar, maar ook het delen van kennis op Twitter en het waarschuwen voor scams is een waardevolle bijdrage.
  • Begin met het gebruiken van bitcoin als betaalmiddel tussen jou en je vrienden, direct of via Lightning.
  • Neem contact op met de initiatiefnemers van een van de vele evenementen rondom bitcoin en vraag hoe jij die dag bij kunt dragen. Je raakt zo vanzelf betrokken.
  • Ben jij wel technisch? Dan kun je bijdragen door code te schrijven voor een van de open source projecten of code te reviewen. Ook kun je de code testen en op zoek gaan naar bugs - misschien wel een van de meest waardevolle taken die bijdraagt aan de robuustheid van bitcoin. Je kunt ook contact opnemen met een bitcoinbedrijf om te onderzoeken hoe je op een andere manier met je technische skills kunt bijdragen. Er moet niet alleen voor bitcoin zelf code geschreven worden, maar ook voor de gehele infrastructuur daaromheen. Denk aan: wallets, exchanges, informatieve websites en handige tools voor ontwikkelaars.
  • Ben je technisch, maar beter in schrijven dan programmeren? Schrijf dan documentatie of controleer bestaande documentatie op fouten.

Zie jij nog meer concrete manieren? Laat het weten en we voegen ze toe.

‘Bitcoin’ mag nu gescrabbled worden!

De zesde editie van Merriam-Webster's "Official Scrabble Players Dictionary", oftewel, de lijst van officieel toegestane worden bij het bordspel Scrabble, bevat nu ook het woord bitcoin! Samen met een paar honderd andere nieuwe woorden, zoals "OK", "botnet" en "emoji" maakt "bitcoin" nu deel uit van een lijst van ruim 100.000 toegestane Scrabble-woorden.

Het is wellicht geen groots nieuws, maar toont wel dat de term bitcoin langzaamaan gemeengoed wordt. Bredere bekendheid gaat uiteraard vooraf aan breder gebruik. Bij de laatste grote update van de woordenlijst werden ruim 5.000 woorden toegevoegd. Scrabble hoopt met de laatste toevoegingen klaar te zijn voor het komende decennium. De definitie van bitcoin is als volgt opgenomen in het Merriam-Webster:

Definition of Bitcoin : a digital currency created for use in peer-to-peer online transactions

Het zijn kleine stapjes zoals deze, de toevoeging van het bitcoinsymbool aan unicode en Apple die een bitcoin-glyph aan iOS 12 toevoegt, die bevestigen dat bitcoin gestaag een plek in onze digitale en fysieke wereld aan het veroveren is. Hoewel we misschien niet te veel moeten zoeken achter het feit dat het woord 'bitcoin' nu officieel gebruikt mag worden in Scrabble, is het toch een interessant stukje bitcoingeschiedenis.

Bliksemsnel fietsen!

Bliksemsnel een bliksemsnelle fiets huren

Onlangs beginnen er her en der interessante real-world use cases van het lightning netwerk op te duiken. Deze use cases tonen met een simpele demonstratie de kracht van het lightning netwerk. Zo nu ook het huren van een elektrische fiets via lightning! Matthias Steinig plaatste op Twitter een demonstratievideo van de elektrische fiets die te activeren is met een lightningbetaling.

De fiets wordt voor een bepaalde tijd geactiveerd nadat een betaling ontvangen is. Je kunt op het display op de fiets selecteren hoe lang je wil rijden, waarna er een QR-code getoond wordt waarna je je betaling kunt doen via je mobiele lightning app. De prijs van het fietsen is 250 satoshi's per minuut, omgerekend 1,4 cent per minuut. Het systeem is geheel mobiel en maakt gebruik van een mobiele verbinding, de energie die het systeem gebruikt komt van de battery van de e-bike. Het project dient uiteraard als proof-of-concept.

Het op deze manier on-the-fly huren van een fiets door direct een betaling te doen maakt duidelijk dat er allerlei nieuwe vormen van delen mogelijk worden. Omdat de betaling rechtstreeks plaatsvindt is het niet nodig aangesloten te zijn bij een bepaalde dienst of lid te zijn via een abonnement. In de video hieronder is een demo van het process te zien en op GitHub staan meer foto's en details over het project.

Satoshis, bits, mBTC, BTC?

Iedereen is het erover eens: we zullen de eenheid die we gebruiken voor het aangeven van hoeveelheden bitcoins moeten veranderen naar een eenheid die beter behapbaar is dan het rekenen in decimalen. Maar welke eenheid gaat het worden?

De kandidaten

Er zijn door de jaren heen veel verschillende kandidaten geopperd als alternatieve notatie-eenheden, elk met zijn eigen groep vurige voorstanders. Toch zal er maar één eenheid uiteindelijk veelgebruikt gaan worden. Welke dit is, dat moet nog blijken en is geheel aan jou: de gebruiker. We zetten de kandidaten op op een rijtje.

Gehele bitcoins (BTC)

We noteren hoeveelheden bitcoins al sinds het begin in gehele bitcoins, met acht decimalen. Deze notitie werkte in de beginjaren prima; bitcoins waren nog niet veel waard en de groep gebruikers bestond voornamelijk uit technici die het wel prima vonden om met veel decimalen te rekenen. Handig was het echter niet, en dit wordt vandaag de dag duidelijk bij kleinere bedragen en nieuwe gebruikers. Het is onhandig om bedragen van 0,00007198 bitcoins te versturen; het werkt mentaal niet soepel en is vatbaar voor fouten. Hiermee zal het noteren van bitcoins als gehele BTC waarschijnlijk minder gebruikt gaan worden, en uiteindelijk gereserveerd zijn voor de rijken die over gehele bitcoins beschikken.

mBTC

De eenheid mBTC staat voor millibitcoin en geeft een duizendste van een bitcoin aan: 0,001 BTC. Deze eenheid kent veel voorstanders vanuit een groep die het prettig vindt om op dezelfde manier met geld te rekenen zoals zij dat doen met afstanden (meters) en hoeveelheden vloeistof (liters), maar komt voor de meesten meteen over als onpraktisch. De eenheid is te groot voor het tonen van kleine prijzen, waardoor wederom een andere eenheid nodig is voor kleine prijzen óf er wederom met decimalen gewerkt moet worden.

µBTC

Hier komt de eenheid µBTC om de hoek kijken: microbitcoin; een miljoenste van een bitcoin (0,000001). Deze eenheid lijkt klein genoeg voor dagelijks gebruik en staat het toe om prijzen te noteren als bijvoorbeeld: “1,50 µBTC”. Microbitcoin rekent echter niet handig terug naar grotere hoeveelheden bitcoins en blijft onderdeel van het voor geld toch wat onhandige systeem van duizendsten.

Bits

De eenheid µBTC heeft de naam “bits” gekregen, waardoor het wat menselijker en minder wiskundig overkomt dan “microbitcoin”. “Tien bits betalen” klinkt nou eenmaal een stuk prettiger dan “dat is dan acht microbitcoin alstublieft”. Bits heeft echter te maken met dezelfde nadelen als µBTC en lijkt dan ook met name te willen bereiken dat we op dezelfde manier met geld blijven rekenen zoals we dat nu doen: in hele euro’s met twee decimalen. €1,25 wordt dan bijvoorbeeld 1,25 bits. Maar is het echt nodig dat we dit systeem uit het verleden in stand houden?

De Finney

De “Finney” is bedacht als eerbetoon aan een van de eerste deelnemers in het bitcoinnetwerk en ontvanger van de eerste bitcointransactie. Een Finney staat voor 0,0000001 bitcoin, oftewel een tiende bit of µBTC. Het zou kunnen dat de eenheid in combinatie met de eenheid ‘bits’ in gebruik genomen wordt, als indicator voor wat we nu kennen als een dubbeltje.

De satoshi

Vooralsnog lijkt de grootste kanshebber de “satoshi” te te zijn. Het is geen verassing dat naam van deze eenheid afkomstig is van de bedenker van bitcoin: Satoshi Nakamoto. Een satoshi vertegenwoordigd de kleinste bitcoineenheid: 0,00000001 bitcoin. Op het eerste gezicht lijkt de eenheid te klein om praktisch te zijn, maar naarmate je er even over nadenkt en bedenkt dat de prijs van bitcoin wellicht nog zal stijgen blijkt de satoshi toch een praktische eenheid voor dagelijks gebruik.

Het biedt namelijk een systeem waar mensen goed mee overweg kunnen: een eenheid die aangegeven kan worden als veelvoud. Het is voor mensen makkelijker om om te gaan met bedragen zoals 500.000 satoshis, dan 0,005 BTC en 1,5 miljoen satoshis in plaats van 15 mBTC. Hiermee kan het wel eens zijn dat “satoshi” de uiteindelijke winnaar is. Lees hier een uitgebreid artikel over het gebruik van satoshis als eenheid.

De keuze is aan jou

Welke eenheid uiteindelijk brede adoptie ziet is geheel aan jou. Uiteindelijk zullen de meeste (lightning) wallets meerdere eenheden implementeren, zoals in de afbeelding hierboven te zien, zodat de keus bij de gebruiker ligt. Je kunt hier een volledige lijst zien.

Test de iOS versie van Zap!

De ontwikkeling van verschillende lightning-wallets is volop in gang. Er zijn verschillende partijen die allemaal hun eigen visie van de toekomst van bitcoin aan het uitbouwen zijn, bovenop het lightning netwerk. Zo ook Zap, de iOS lightning-wallet van Jack Mallers. Het motto van Zap deelt dezelfde visie die Bitonic had met haar motto. Met het motto "bitcoin voor iedereen" wilde bitonic bitcoin voor iedereen beschikbaar maken. Dit is gelukt. Het motto van Zap luidt:

Making bitcoin usable for everyone.

Net zo belangrijk als beschikbaarheid en toegankelijkheid is de gebruiksvriendelijkheid, en hier zet het team van Zap goede stappen in. Een zeer belangrijke rol in de ontwikkeling van het lightning netwerk. In een tweet doet een van de ontwikkelaars van Zap een oproep aan enthousiaste toekomstige gebruikers om vast mee te helpen met het testen van de iOS versie van de Zap lightning-wallet.

Het wachten is al een tijdje op de kant-en-klare Android en iOS wallets waarmee men zonder al te veel moeite aan de slag kan met het lightning netwerk. Dit is jouw kans om een steentje bij te dragen aan het eindproduct van Zap. Op deze pagina kun je alle informatie vinden die je nodig hebt om de app te downloaden en van start te gaan met het testen. De app is zowel op testnet als op het hoofdnetwerk van bitcoin te gebruiken in combinatie met je eigen node. Vergeet niet je waardevolle feedback achter te laten.

Bitcoin viert 10e verjaardag!

Tien!

Tien jaar geleden, op 31 oktober 2008, publiceerde Satoshi Nakamoto het paper genaamd “Bitcoin: A Peer-to-Peer Electronic Cash System” en ongeveer twee maanden later ging het bitcoinnetwerk live. Op 3 januari 2019 zal het bitcoinnetwerk tien jaar oud zijn. Er zullen niet veel mensen geweest zijn die hadden kunnen voorspellen wat er in die tien jaar allemaal zou plaatsvinden, misschien had zelfs Satoshi zelf er niet van durven dromen.

It might make sense just to get some in case it catches on. - Satoshi Nakamoto

We stipten onlangs al aan hoe bitcoin gedurende de afgelopen tien jaar nagenoeg vlekkeloos geopereerd heeft, betrouwbaar is geweest en altijd online is geweest. In deze 10 jaar heeft bitcoin geen grote blunders gemaakt en heeft zich bewezen als degelijk en betrouwbaar wereldwijd betaalsysteem. Wat een prestatie.

Bitonic viert!

Op woensdag 31 oktober aanstaande, precies tien jaar na de publicatie van de Bitcoin whitepaper, organiseert Financieel Erfgoed samen met Bitonic een bijeenkomst om deze revolutionaire gebeurtenis te vieren. Tien jaar na dato had ook Satoshi Nakamoto de impact van dit idee niet kunnen voorspellen.

In de Beurs van Berlage zal onder het genot van een drankje stil worden gestaan bij het historische en opstandige belang van Bitcoin. Simon Lelieveldt van Financieel Erfgoed zal tegen 20.00 uur een lezing houden over hoe deze opstandige filosofie ten grondslag ligt aan de Beurs van Berlage.

Lees meer over deze avond of lees het originele bitcoin whitepaper.

Meekijkers in de blockchain?

We hebben al eerder een artikel geschreven over de verschillende aspecten die invloed hebben op de mate van privacy die een bitcoingebruiker geniet. In dit artikel gaan we specifieker in op twee verschillende heuristieken die deanonymisering mogelijk maken.

Samen uitgeven

Bitcointransacties bestaan uit één of meerdere inputs en één of meerdere outputs. Simpel gezegd is de output van een transactie de input van een volgende transactie. Op deze manier zijn alle transacties aan elkaar gelinkt. Grafisch ziet dit er in een simpele transactie zo uit:

heuris

In deze transactie stuurt Alice vanaf haar adres (A) één hele bitcoin naar twee verschillende adressen: adres B van Bob en adres C van Carol. Alice splitst de bitcoin die zij stuurt op in twee gelijke delen van 0.5 bitcoins. Vervolgens kunnen Bob en Carol deze bitcoins weer doorsturen naar andere adressen.

Op dit moment kunnen we nog niet veel informatie uit de transacties opmaken: Alice kent de adressen van Bob en Carol, maar Bob en Carol weten alleen dat adres A van Alice is. Het wordt interessant wanneer we een vervolgtransactie toevoegen:

heuris

In de transactie vanuit adres B worden twee inputs samengevoegd in een transactie naar één enkel adres. Op dit moment valt er wat informatie te achterhalen middels de shared-spending heuristiek.

Alice weet dat de 0.5 bitcoins uit adres B van Bob zijn en kan zien dat deze 0.5 bitcoins samen met 0.25 bitcoins uit een ander adres worden doorgestuurd. Wij als buitenstaanders weten dit ook, behalve dat voor ons niet bekend is dat adres B van Bob is: voor ons is dit een onbekende entiteit. Omdat de 0.5 uit adres B en 0.25 bitcoins uit adres ? beide als input voor dezelfde transactie dienen weten we dat adres B en ? (hoogst)waarschijnlijk van dezelfde persoon zijn; in dit geval Bob:

heuris

Van wie het laatste ontvangstadres dat 0.75 bitcoins ontvangt (?) is blijft onbekend, behalve voor Bob. Met deze informatie kunnen we al wel de entiteit Bob in kaart beginnen te brengen: we weten dat adres B1 en B2 van dezelfde entiteit zijn. Dit betekent dat we kunnen proberen meer informatie af te leiden uit de transactie van en naar deze adressen; wie weet kunnen we nog meer adressen koppelen aan dezelfde identiteit.

Vers wisselgeld

Bekijk het scenario hieronder. Bob beschikt in totaal over 0.75 bitcoins. Bob heeft deze bitcoins ontvangen in de vorm van twee verschillende outputs naar zijn adressen: één output van 0.5 bitcoins en één output van 0.25 bitcoins.

heuris

Bob wil nu 0.7 bitcoins naar een derde partij gaan versturen. Om dit te doen zal Bob zijn outputs samen moeten voegen zoals in het net gegeven voorbeeld; Bob heeft immers met één enkele output niet genoeg bitcoins om de betaling van 0.7 bitcoins te voltooien. Zoals we nu weten geeft Bob door dit te doen informatie over zijn adressen vrij, maar in dit scenario kunnen we nog wat extra informatie achterhalen. Er ontstaat een transactie met twee inputs en twee outputs:

heuris

De twee outputs die ontstaan zijn: één output voor 0.7 bitcoins naar Dave en één output van 0.05 bitcoins. De output van 0.05 bitcoins is in dit geval de change output: het is het ‘wisselgeld’ dat Bob terug naar zichzelf stuurt. Bob moest immers in totaal 0.75 bitcoins als input gebruiken om de transactie van 0.7 bitcoins mogelijk te maken, het overige geld stuurt Bob in de transactie terug naar zichzelf.

In dit voorbeeld doen we even alsof Dave een exchange is, een cluster van adressen dat al bij ons bekend is. Doordat wij weten dat de entiteit Bob een transactie van 0.7 bitcoins naar exchange Dave heeft gedaan, weten we nu ook dat het adres dat 0.05 bitcoins ontvangen heeft wederom (hoogst)waarschijnlijk ook van Bob is. We kunnen dit adres nu ook toevoegen aan het cluster van adressen dat bij ‘entiteit Bob’ hoort.

Mocht Bob geen vers bitcoinadres gebruikt hebben om zijn wisselgeld heen te sturen, dan valt er nu nog meer informatie te achterhalen door naar de transacties van en naar het wisselgeld-adres te kijken. Het cluster adressen van Bob bestaat nu uit drie adressen: B1, B2, en de zojuist toegevoegde B3. We zouden nu verder kunnen gaan kijken naar de transacties die van en naar deze adressen plaatsvinden om nog meer adressen toe te voegen aan het cluster. Het op deze manier clusteren van adressen heet de fresh-change-address heuristiek.

Slechts een start

De twee heuristieken die we in dit artikel hebben beschreven zijn onderdeel van een groter arsenaal aan onderzoeksmethoden om informatie over entiteiten in de blockchain te achterhalen. Geen van deze heuristieken bieden in alle gevallen 100% zekerheid, maar wel bieden ze een sterke indicatie van mogelijke verbanden. Blockchainanalysetools gebruiken dergelijke heuristieken om te achterhalen welke transacties bij welke entiteit horen, om zo bijvoorbeeld een crimineel op te sporen. Omdat de blockchain openbaar is kan iedereen deze analyse uitvoeren; vandaar dat privacy van belang is en in de toekomst een punt van verbetering voor bitcoin zal blijven.

De basisprincipes van Bitcoin

Breed gezegd zijn er een aantal principes waar Bitcoin, Bitcoiners en Bitcoinontwikkelaars zich aan houden. Er zijn veel specifieke, kleinere, regels over de geldigheid van transacties en de validiteit van een block, maar dit zijn de principes die er in grote lijnen voor zorgen dat het netwerk decentraal gecoördineerd kan worden. Iedereen die meedoet aan Bitcoin is verantwoordelijk voor het verdedigen van deze principes. Meedoen is instemmen.

De basisprincipes

  1. Er zullen nooit meer dan 21 miljoen bitcoins. Dit is een regel die ingebakken zit in het protocol en in elk stukje software dat Bitcoin draait. Ook is het voor alle deelnemers, de miners, de node-draaiers en de ontwikkelaars duidelijk dat deze regel niet aangepast wordt en pogingen tot het aanpassen van deze regel gezien worden als een aanval op het systeem.

  2. De Bitcoinsoftware is open-source. Iedereen is in staat om de code in te zien, aan te passen, te kopiëren en delen. Dit zorgt ervoor dat het niet nodig is vertrouwen te hebben in derden; iedereen heeft de mogelijkheid om te controleren dat de code die zij draaien doet wat het hoort te doen. Een vertrouwensloos systeem zoals bitcoin zou zonder open-source software niet mogelijk zijn.

  3. Er is geen toestemming nodig om mee te doen met Bitcoin. Er is geen autoriteit die iemand ervan kan weerhouden deel te nemen aan het netwerk. Iedereen kan gebruiker zijn, een node draaien of beginnen als miner. Behalve wellicht een financiële drempel en de noodzaak voor enige basiskennis is er geen barrière om mee te doen.

  4. Transacties zijn onomkeerbaar. Wanneer een transactie opgenomen is in een block is deze transactie definitief. De geschiedenis die geschreven staat in de blockchain is onaanpasbaar. Was dit niet het geval, dan zou dit bitcoin kwetsbaar maken voor frauduleuze of politieke beïnvloeding van buitenaf.

  5. Er mag geen censuur plaatsvinden in het netwerk. Iedereen mag mee doen; dit betekent dus ook dat er niemand is die transacties kan blokkeren of kan weigeren uit de blockchain. Ook dit is van groot belang om Bitcoin neutraal te houden als betalingssysteem dat onafhankelijk van politieke invloeden opereert.

  6. Bitcoin is pseudoniem. Evenals er geen toestemming nodig is om mee te doen met bitcoin, is er ook geen identificatie nodig om bitcoin te gebruiken. Meedoen aan Bitcoin kan geheel anoniem, als je weet wat je doet, maar is in ieder geval pseudoniem: een bitcoinadres is een entiteit. Alleen wanneer je zelf informatie prijsgeeft over welke adressen van jou zijn is het mogelijk om een echte identiteit te koppelen.

  7. Alle bitcoins zijn gelijk; de ene bitcoin is niet meer waard dan de andere. Met geld en kostbare goederen is het risico aanwezig dat de ene eenheid minder waard is dan een gelijke andere eenheid. De afkomst van de eenheid speelt hier vaak een grote rol; als het goed gestolen is of afkomstig is uit het criminele circuit dan kan de waarde minder zijn dan van een ‘schone’ versie van hetzelfde goed. Bitcoins moeten daarom een-op-een verwisselbaar zijn voor elkaar, met dezelfde waarde. Dit is ook onderdeel van het belang van privacy.

Lightning in het wild!

Bij het Zwitserse café energyKitchen in Bern is het vanaf nu mogelijk om via een lightningbetaling een bestelling te doen, om deze vervolgens aan de balie af te halen. Een van de eerste real-world implementaties van het lightning netwerk.

Simpel en snel

Het proces is simpel: je bedenkt welk drankje of hapje je wil bestellen, scant de bijbehorende QR-code en voert een lightningbetaling uit. Je krijgt een willekeurige naam toegewezen, bijvoorbeeld "Pink Sofa" of "Blue Door" waarmee je je order kunt identificeren. Vervolgens komt de order aan de balie binnen en wordt deze voor je bereid. Zodra de order klaar is wordt de naam omgeroepen en binnen enkele minuten sta je weer buiten met je kopje koffie of ontbijt, zonder in de rij te hoeven staan voor het plaatsen van je bestelling.

Het experiment werd op twitter aangekondigd door Oliver Gugger en maakt gebruik van de LND client van Lightning Labs. Het project is gerealiseerd in samenwerking met Puzzle ITC. Het is ook mogelijk om via shop.energy-kitchen online vooraf een bestelling te plaatsen die je direct, of later komt ophalen. Een videodemonstratie van het gehele proces is ook op twitter te zien.

Hier begint de toepassing van het lightning netwerk in de echte wereld; een betaling rechtstreeks van klant naar bedrijf, instant, en geheel via bitcoin. Contactloze betalingen zijn er niks bij. De toepassing toont de kracht van programmeerbaar geld: innovatieve ondernemingen kunnen zelf aan de slag met het implementeren van een leuke, handige en efficiënte verkoopoplossing, zonder afhankelijk te zijn van pinapparaten of bankstandaarden.

dnxzwlxcaakgx

Bitcoin is niet overal vanzelfsprekend

Nederland heeft een van de grootste percentages bitcoingebruikers in verhouding met het totaal aantal inwoners. Deels komt dit waarschijnlijk doordat Nederland een welvarend land is met veel hoogopgeleide mensen, maar ook omdat Nederlanders een vrije stroom van informatie genieten. Er zijn echter ook landen waar bitcoin en informatie over bitcoin, voor zover mogelijk, actief beperkt wordt of zelfs volledig verboden is.

Een verbod op wiskunde?

Zo zul je in bepaalde landen, bijvoorbeeld Indonesië en China, moeite hebben met informatie vinden over bitcoin vanwege blokkades van bepaalde websites. Ook zijn er landen (rood) die aangegeven hebben bitcoin als een illegale activiteit te zien en zelfs boetes of gevangenisstraffen opleggen wanneer iemand zich wel bezighoudt met het doen van bitcointransacties.

Eigenlijk is een verbod op bitcoin lastig te definiëren. Wat wordt er precies verboden? Het doen van transacties? Het draaien van de software? Of ligt het verbod op het individueel uitoefenen van wiskundige principes? Het is daarom nog maar de vraag wat deze (il)legale status precies betekent; het is lastig om inwoners volledig buiten het bitcoinnetwerk te houden. Het is duidelijk dat enige regulering voor bitcoinbedrijven en exchanges wenselijk is, maar een verbod op het draaien van vrij beschikbare software is lastig te verantwoorden en handhaven.

Op coin.dance is een goed overzicht (afbeelding hieronder) te vinden van de status van bitcoin in verschillende landen, met zelfs informatie over de steun vanuit verschillende politieke partijen. Iedereen kan informatie bijdragen over de situatie in zijn of haar land. Deze kaart zal voortdurend veranderen; het zal dan ook zeer interessant zijn hoe deze kaart er over vijf, tien of twintig jaar uitziet.

coindancelegeal

Lightning Labs is op dreef!

Onlangs zette Lightning Labs, een van de voornaamste ontwikkelaars achter het lightning netwerk, twee grote stappen vooruit richting de verwezenlijking van een volwassen lightning netwerk dat klaar is voor alledaags gebruik.

Niet zomaar een facelift

De eerste aankondiging is de release van een nieuwe versie van de Lightning Labs desktop app. De nieuwe release bestaat uit een volledige redesign, met tevens verschillende optimalisaties op de achtergrond. Daarnaast stipte Lightning Labs onlangs in een blog over de gebruikerservaring van het lightning netwerk voor de gemiddelde gebruiker het belang van gebruiksvriendelijkheid aan; hier wordt nu een grote stap in gezet.

Deze release maakt namelijk het gebruik van het lightning netwerk toegankelijk voor allerlei gebruikers. De Lightning Labs app kan nu gemakkelijk gebruikt worden als losstaande light-client die automatisch met een van de nodes van Lightning Labs verbinding maakt, zowel mobiel als op een desktop. Hierdoor wordt er niet langer van de gebruiker verwacht dat zij apart hun eigen bitcoin en lightning nodes draaien; iets waar nog altijd enige technische kennis voor nodig is.

Lightning Labs zegt terecht: als we er niet in slagen het gebruik van het lightning netwerk eenvoudig te maken voor de nieuwe gebruikers, dan is de kans van slagen van deze nieuwe technologie klein. Daarom heeft Lightning Labs deze release zo eenvoudig mogelijk gemaakt met nadruk op helderheid en gebruiksgemak.

We feel there is a valuable learning experience to be had by making the Lightning protocol more accessible to novice users and learning about potential UX pitfalls along the way. If we can’t make the protocol accessible to this group of users then the technology will likely never move beyond the enthusiast market segment.

Lightning Labs probeert actief nieuwe gebruikers op te leiden in best practices op het gebied van bitcointransacties. Zo leert de nieuwe release gebruikers dat saldo’s en transacties op het lightning netwerk vergelijkbaar zijn met die op een alledaagse bankrekening: hier heb je voldoende liquide middelen staan voor je dagelijkse uitgaven, maar niet al je spaargeld. Apart zijn er de verschillende cold storage oplossingen voor het veilig bewaren van de overige tegoeden, welke dienen als ‘spaarrekening’. Dit onderscheid wordt gemaakt omdat lightning wallets hot wallets zijn en daarmee kwetsbaar(der) voor verschillende aanvallen.

Naast eenvoud en het benadrukken van verschillende soorten transacties is er bij deze release veel focus gelegd op het gebruik van kleuren om duidelijk naar gebruikers te communiceren welke acties zij ondernemen, zoals te zien in de screenshots in dit artikel. De release geeft hoop: het gebruik van bitcoin hoeft niet ingewikkeld te zijn. Je kunt hier de volledige blog over de release en het ontwerp daarvan lezen; dit is een aanrader voor eenieder die geïnteresseerd is in de gebruikerservaring van het lightning netwerk of diegenen die zich nog niet aan het lightning netwerk hebben durven wagen.

Halverwege!?

Kort na de aankondiging van het nieuwe design van de Lightning Labs app werd versie 0.5-beta van LND, de lightning-client van Lightning Labs. De voornaamste focus voor deze release lag op het mogelijk maken van applicaties voor de eindgebruikers, de light-clients zoals hierboven beschreven. Daarnaast voert deze release verschillende privacy- en veiligheidsverbeteringen door en wordt het grondwerk voor de volgende release gelegd, welke zich zal richten op nodes die betalingen routen over het lightning netwerk.

Op het gebied van veiligheid voegt deze release dataloss protection toe. Samen met toekomstige updates zal dataloss protection ervoor zorgen dat er geen tegoeden verloren gaan in het geval van corruptie van de data of verlies van een toestel. Wel zo prettig. Versie 0.5-beta voegt ook uitgebreidere support voor het gebruik van Tor toe. Dit zal, in combinatie met onion-routing via Sphinx, voor de nodige privacy zorgen.

Met release-nummer 0.5 zou je haast zeggen dat we halverwege voltooiing van het lightning netwerk zijn, maar de nummers van een release zijn niet altijd een indicatie van de exacte vordering van een project. Er wordt met deze releases wél een grote stap gezet richting software die klaar is voor bredere adoptie. Je kunt hier de volledig blog over de release van versie 0.5-beta van LND lezen.

Lightning Labs is, op zijn zachtst gezegd, op dreef! De ontwikkeling van het lightning netwerk en alle nodige apps daaromheen gaat keihard. Voor velen zal deze voortgang onopgemerkt gaan tot het opeens daar is; dagelijks gebruik van het lightning netwerk is het doel. Het team van Lightning Labs en alle andere lightning-ontwikkelaars schrijven geschiedenis.

De Casa Lightning Node

Een van de technische drempels die mensen tegenhoudt volledig mee te doen aan het bitcoinnetwerk en het lightning netwerk is het draaien van een eigen node. Dit heeft veel voordelen, maar vergt ook enige technische kennis. De Casa Lightning Node kan hier verandering in brengen.

Alles-in-1

De Casa Lightning Node is een alles-in-1-oplossing voor het meedoen aan het lightning netwerk. Het apparaatje van Casa is plug-and-play en komt voorgesynchroniseerd met de bitcoin blockchain, waardoor er minimale technische kennis nodig is om de node in gebruik te nemen. Hierdoor wordt het gemakkelijker voor de beginner om mee te doen aan het lightning netwerk en zelfstandig een node te draaien.

De Casa node kost zo'n €250. Het kistje bestaat uit een Raspberry Pi 3B+ in combinatie met een 1TB Seagate HDD en is dus in verhouding tot de hardware die geleverd wordt niet bepaald goedkoop. Na het aansluiten van de node kunnen gebruikers lightningbetalingen versturen en ontvangen, en payment channels met andere nodes openen en sluiten. De eerste twee batches van 100 nodes zijn reeds uitverkocht en worden in oktober en november verzonden. Het is op dit moment mogelijk om een pre-order te plaatsen voor de volgende batch.

Niet te vroeg juichen?

Hoewel je met elk hardware apparaat dat je in gebruik neemt een bepaalde hoeveelheid vertrouwen moet hebben in de fabrikant daarvan, kan de hoeveelheid benodigde vertrouwen over het algemeen geminimaliseerd worden door het zetten van de juiste stappen door gebruiker en fabrikant.

Helaas is de Casa Lightning Node niet geheel open-source. Dit is jammer, want dit maakt het lastig te verifiëren dat het kistje echt betrouwbaar is. Hoewel de node niet afhankelijk is van de servers van Casa, vertrouw je wel op de data die zij vooraf ingeladen hebben. Je kunt vervolgens niet zelf controleren dat het kistje doet wat het zou moeten doen en dit ook altijd zal blijven doen.

Dergelijke oplossingen voor het draaien van een node zijn wél wenselijk; het is simpelweg voor de meesten (nog) niet weggelegd om zelfstandig de technische stappen te doorlopen die nodig zijn om een eigen node te draaien. Dit creëert een lastige situatie: enerzijds wil je dat zoveel mogelijk mensen zelfstandig meedoet en zijn plug-and-play apparaten dus een mooie oplossing. Anderzijds is spelen met vertrouwen gelijk aan spelen met vuur wanneer het om bitcoins gaat; voor je het weet zijn ze weg. Het zal met de tijd moeten blijken of er betrouwbare oplossingen op de markt beschikbaar komen. Vooralsnog zijn kant-en-klare oplossingen zoals de Casa Lightning Node een interessant experiment.

Gaan we over de biljoen?

Gaan we over de biljoen?

Wat betreft de prijs? Hoogstwaarschijnlijk niet. Totale marktwaarde? Mogelijk, maar voorlopig onwaarschijnlijk. Wél halen we in 2018 waarschijnlijk een totale transactiewaarde van meer dan 1 biljoen euro. Dat is meer dan goud. De totale transactiewaarde per dag en per jaar is een getal dat er eigenlijk meer toe doet dan de prijs; het beantwoord namelijk de vraag of bitcoin goed functioneert als transactienetwerk.

Bitcoin verwerkt op dit moment dagelijks miljarden euro’s aan waarde in bitcoins, waar dit gedurende 2013, 2014 en 2015 nog 'slechts' in de honderden miljoenen was. Bitcoin heeft geheel 2018 slechts één dag minder dan €2 miljard aan waarde verwerkt. Het gemiddelde per dag voor 2018 ligt daar ver boven. Hiermee lijkt het erop dat het bitcoinnetwerk dit jaar over de 1 biljoen euro verwerkte waarde zal gaan. Een goed teken: bitcoin werkt. Het doet waar het voor bedoeld is, en dat op steeds grotere schaal.

bitcoinusdvalue

De grafiek hierboven is afkomstig van coinmetrics.io en toont het dagelijks transactievolume van bitcoin in Amerikaanse dollars. De totale overgedragen waarde van het bitcoinnetwerk op dit moment is in vergelijking met alle wereldwijde financiële transacties nog niet echt groot te noemen. Wel is het bereiken van 1 biljoen euro aan transacties per jaar een prestatie die niet zomaar nagedaan wordt.

De volgende bitcoin?

Vaak is men gretig op zoek naar de volgende bitcoin, de 'betere' coin die bitcoin overbodig gaat maken en, geheel toevallig, ook zijn voorstanders stinkend rijk zal maken. Zo zijn er honderden cryptocurrencies die allemaal beweren 'the next big thing ’ te zijn. Maar hoe groot is de kans dat die er daadwerkelijk komt?

Onwaarschijnlijk

Vanuit technologisch perspectief biedt bitcoin op termijn eigenlijk alles wat andere cryptocurrencies als unique selling point promoten. Privacy, smart-contracts en instant betalingen, het komt allemaal naar bitcoin. Op zijn tijd, uiteraard, want succesvolle uitvoering is niet simpel en je krijgt maar één kans om een goede basis te bouwen en vertrouwen te winnen. Dit alles wordt gebouwd bovenop een systeem dat werkelijk decentraal opereert, iets wat de overgrote meerderheid van de concurrentie niet kan zeggen.

De concurrerende systemen zijn vaak nodeloos ingewikkeld, met kwetsbaarheid en gevoeligheid voor fouten tot gevolg, en maken gebruik van onbewezen consensussystemen die vaak vroeg of laat slachtoffer worden van machtspelletjes waardoor het belangrijkste aspect van een decentraal geldsysteem verloren gaat: decentraliteit. Marketing teneinde financiële winst staat boven degelijke systeemontwikkeling. Helaas vaak met succes, doordat misbruik gemaakt wordt van een gebrek aan technische kennis bij 'investeerders' en er voldoende rook opgeworpen wordt waardoor zelfs voor de kenner onduidelijk is hoe dingen in elkaar steken.

De volgende bitcoin?

Dat is bitcoin. Kocht je vijf jaar geleden (zie screenshot hieronder) een willekeurige selectie alternatieve cryptocurrencies uit de top 10 dan kwam je er slecht vanaf: alleen bitcoin en litecoin doen nog mee, de rest is in vergetelheid geraakt. De verwachting is dat de honderden tokens als gevolg van ICO’s hetzelfde lot wacht. Belangrijker nog: geen van de honderden altcoins heeft bitcoin overtroffen. Bitcoin zelf? Die heeft precies gedaan wat men hoopte dat hun eigen unieke paradepaardje zou doen.

coinmarketcap

Bitcoin bestaat nu bijna 10 jaar. In deze 10 jaar heeft bitcoin geen grote blunders gemaakt, is altijd online geweest, en heeft zich bewezen als degelijk en betrouwbaar wereldwijd betaalsysteem. Deze reputatie, van 10 jaar trouwe dienst, een reputatie die essentieel is wil men grote hoeveelheden waarde toevertrouwen aan een dergelijk systeem, kan alleen overtroffen worden door een nieuw en beter systeem dat minstens even lang betrouwbaar heeft gebleken. Een praktisch onmogelijke opgave dus.

Nieuwe cryptocurrencies? Die zijn er zat. Betere? Discutabel. Betrouwbaar? Zelden. Ondertussen draait bitcoin rustig door en vordert de ontwikkeling gestaag. Het digitale geld van de toekomst is, net als het internet zelf, niet in één klap 'af' en wereldwijd populair. Geef het 20 jaar. Help mee aan het bouwen van dit systeem en zie de markt voor alternatieve cryptocurrencies aan voor wat het is: een casino.

Mining, hoe zit het eigenlijk?

We hebben eerder geschreven over de rol van proof-of-work in bitcoin en hoe het digitale schaarste creëert door energie om te zetten in hashes. Maar waar werkt al die rekenkracht precies aan?

Het doel van proof-of-work is het genereren van een stukje data dat moeilijk is om na te maken maar makkelijk voor anderen om te verifiëren. Het produceren van een geldig stukje proof-of-work, een geldige hash, is een willekeurig proces. Hierdoor valt er geen algoritme te bedenken dat sneller of slimmer de oplossing kan vinden. Een geldig proof-of-work is een waarde die lager is dan het huidige target. In dit artikel leggen we uit hoe dit in elkaar steekt.

We hashen erop los

Het zijn termen die al vaker zijn langsgekomen: hashen, een hash, hashes en hashfuncties. Een hashfunctie is een algoritme dat, gegeven een bepaalde input, een unieke output genereert. Vanuit de gegenereerde output kan niet terug berekend worden wat de input was, maar het is wel mogelijk om, gegeven de input, te controleren dat de eerder getoonde output klopt door het algoritme nogmaals uit te voeren met de input. In dit geval is de unieke output een hash.

Het hashen van data is een veelgebruikt principe dat overal in de computerwetenschap terug te vinden is. Je gebruikt het, op de achtergrond, ook dagelijks bij het browsen op het internet. Wanneer je bijvoorbeeld een nieuw wachtwoord aanmaakt, dan wordt deze gehashed opgeslagen; geheel onherkenbaar. Hierdoor kan de partij waarbij jij jouw wachtwoord opslaat jouw wachtwoord niet zien en kan een potentiële hacker er niet zomaar met jouw wachtwoord vandoor gaan.

miningscreencap

De gecombineerde rekenkracht van het bitcoinnetwerk (hierboven en hier) is geheel bezig met het uitvoeren van een enorme hoeveelheid aan hashes. Dit wordt gedaan door gespecialiseerde hardware, hier te zien. Dit doen zij teneinde het vinden van een geldige hash van een block, waardoor zij de beloning van vers aangemaakte bitcoins kunnen claimen. Een geldige hash is er een die voldoet aan een aantal voorwaarden.

Doelwit?

De belangrijkste van deze voorwaarden is het vinden van een waarde die lager is dan het huidige target. Het huidige target is een indicatie van de huidige moeilijkheidsgraad. We kunnen dit het beste uitleggen aan de hand van een simpel voorbeeld.

We gaan een simpel stukje data hashen met het SHA-256 algoritme, een veelgebruikt algoritme en tevens het algoritme dat de bitcoinminers gebruiken. De data die we gaan hashen is de zin "Hello, world!" en het beoogde target dat we onszelf stellen is het vinden van een hash die begint met vier nullen. Je zou dus kunnen zeggen dat de moelijkheidsgraad "4" is. Wanneer we de zin simpelweg een keer hashen komt er de volgende reeks uit:

315f5bdb76d078c43b8ac0064e4a0164612b1fce77c869345bfc94c75894edd3

Helaas, deze begint niet met vier nullen. Maar wat kunnen we nog doen om deze hash te veranderen? Elke input heeft echter maar één unieke output. Bitcoin gebruikt hiervoor een nonce, dit is een gewoon getal dat toegevoegd wordt aan de originele data. Bijvoorbeeld: "Hello, world!1". Door een willekeurig getal toe te voegen verandert de hash volledig:

e9afc424b79e4f6ab42d99c81156d3a17228d6e1eef4139be78e948a9332a7d8

Helaas levert dit wederom geen hash die begint met vier nullen op. We zullen het getal moeten veranderen en het nogmaals moeten proberen, dit doen we door systematisch het getal op te hogen; "Hello, world!2", "Hello, world!3", … , "Hello, world!500", enzovoorts. Dit doen we totdat we de gewenste hash tegenkomen. In dit geval moeten we het getal ophogen tot en met 4250. De data "Hello, world!4250" geeft de hash:

0000c3af42fc31103f1fdc0151fa747ff87349a4714df7cc52ea464e12dcd4e9

Nu hebben we ons doel bereikt. Het vinden van een geldig proof-of-work in bitcoin werkt vrijwel hetzelfde, alleen is de ingegeven data anders en verandert het target regelmatig.

Eens per 10 minuten

De data die bij het minen gebruikt wordt om de geldige hash te berekenen is de data die in het huidige block gaat en dus uniek. Onderdeel van deze data is de hash van het vorige block. Hierdoor is het dus niet mogelijk om vast een voorsprong te nemen en vast vooruit te rekenen aan het volgende block. Er moet gewacht worden tot de oplossing van het laatste block bekend is voordat de miners kunnen beginnen met het volgende block. Dit helpt om de boel eerlijk te houden.

De moeilijkheidsgraad van het vinden van een geldige hash is zodanig dat het gemiddeld 10 minuten duurt voor de volgende oplossing gevonden wordt. Maar wat nu als een miner heel veel extra rekenkracht toevoegt aan het netwerk, dan wordt de oplossing toch veel sneller gevonden? Dit zou inderdaad het geval zijn. Als oplossing hiervoor is de moeilijkheidsgraad zo ontworpen dat deze zichzelf automatisch aanpast aan de hoeveelheid rekenkracht in het netwerk.

Is er veel rekenkracht in het netwerk waardoor de oplossingen gemiddeld sneller dan eens per 10 minuten gevonden worden, dan wordt de moeilijkheidsgraad verhoogd. Dit gebeurt eens per 2016 blocks, ongeveer elke twee weken. Bij het verhogen van de moeilijkheidsgraad wordt het target verlaagd. Dit wil zeggen dat de waarde van de hash die gevonden moet worden kleiner wordt gemaakt. Waar dit voorheen in ons voorbeeld vier nullen was, wordt het target nu een hash die begint met vijf nullen. Hierdoor moeten er weer een stuk meer pogingen gedaan worden voordat de geldige oplossing gevonden wordt. Op dezelfde manier kan de moeilijkheidsgraad verlaagd worden. Wanneer er minder rekenkracht in het netwerk is dan voorheen, dan wordt het target verhoogd van bijvoorbeeld een hash die begint met vijf nullen terug naar een hash die begint met vier nullen.

Op deze manier wordt het vinden van een nieuwe block beperkt tot gemiddeld eens per 10 minuten. Dit is van belang om onder andere mining eerlijk te houden voor alle deelnemers, maar ook om te zorgen dat de rest van het netwerk de tijd heeft om de meeste recente blocks te ontvangen en te verwerken. Er wordt zo voorkomen dat sommige deelnemers in het netwerk op achterstand komen en deze wellicht niet meer in kunnen halen.

Eitje, toch?

Nogmaals in het kort: men neemt de data voor het volgende block, de hash van het laatste block en begint deze te hashen in combinatie met een extra getal dat bij elke poging stapsgewijs ophoogt. Wanneer de hash gevonden is met het juiste aantal nullen, op dit moment 18 nullen, is het recht om verse bitcoins te claimen gewonnen en gaan alle miners aan de slag met het volgende block. Doordat de hash van het laatste block steeds wordt opgenomen in het volgende block ontstaat er een ketting van hashes: de blockchain.

Dat minen? Simpel gokwerk dus, gebaseerd op willekeur en een geheel zelfregulerend systeem waar geen mens invloed op heeft. Misschien niet het interessantste onderdeel van bitcoin, met al die hashes en andere technische termen, maar tegelijkertijd van grote impact op bitcoin als geheel.

Het belang van achterwaartse compatibiliteit

Eerder schreven we kort over het verschil tussen een hard fork en een soft fork en het belang van het voorkomen van een hard fork. Dit alles staat in het teken van het behouden van de achterwaartse compatibiliteit.

Niet zomaar buitengesloten

Wanneer iemand er voor kiest mee te doen met bitcoin, dan gaat men akkoord met de regels van het protocol. Deze regels kunnen vervolgens niet zomaar gebroken worden, want dit zou betekenen dat een deel van de gebruikers ineens niet meer mee kunnen doen of ineens deel uitmaken van een systeem van afspraken waar zij het niet mee eens zijn.

Het 'upgraden' van bitcoin is daarom lastig: sommige nieuwe features die men graag toegevoegd ziet kunnen gevolgen hebben voor de regels die in het verleden zijn afgesproken. Zo komt het bij een gedwongen upgrade, een hard fork, voor dat iemand die ervoor kiest een nieuwe feature niet te gebruiken niet meer mee kan doen in het systeem. Bij een systeem als bitcoin moet dit voorkomen worden, omdat het schade toericht aan de betrouwbaarheid en stabiliteit van bitcoin.

Als opfrisser, even snel het verschil tussen een hard fork en een soft fork. Bij een upgrade via hard fork worden de bestaande regels uitgebreid, de nieuwe regels vallen dus niet binnen de huidige afspraken. Dit zorgt voor een breuk in de achterwaartse compatibiliteit. Bij een upgrade via soft fork word er binnen de bestaande regels geopereerd. Hiermee wordt de achterwaartse compatibiliteit behouden.

Een andere manier van ontwikkelen

Er wordt daarom in de ontwikkeling van bitcoin veel moeite gedaan om nieuwe toevoegingen zoveel mogelijk zodanig te implementeren dat een upgrade optioneel is; via een soft fork. Door de upgrade optioneel te maken wordt er niemand buitengesloten. Er kan niet verwacht worden dat men de nieuwste versie van 'de regels’ download voordat zij verder gaan. Tevens kan er niet verwacht worden dat iedereen het zomaar eens is met nieuwe regels. Een bitcoin is een bitcoin, en de definitie daarvan moet vandaag hetzelfde zijn als over 100 jaar. Door het toepassen van een conservatief beleid is het vandaag mogelijk om je wallet of node van vijf jaar geleden te openen en een transactie uit te voeren. Deze wordt zonder problemen geaccepteerd door het bitcoinnetwerk.

Zij die gebruik willen maken van de nieuwe feature kunnen dat en zij die dit niet willen kunnen gewoon doorgaan met het doen van betalingen zoals zij dit altijd hebben gedaan. Een voorbeeld van een dergelijke vrijwillige upgrade is de segregated witness soft fork, waar tot op heden ongeveer 40% van de transacties gebruik van maakt. De andere 60% heeft geen hinder ondervonden. Wanneer segregated witness doorgevoerd was als hard fork, dan zouden er dus twee verschillende blockchains ontstaan zijn met elk hun eigen regels. Het doorvoeren van upgrades middels een hard fork zorgt dus voor een reeks eindeloze splitsingen van het netwerk.

segwit

Veiligheid, decentraliteit en weerbaarheid voorop

Wanneer er gedebatteerd wordt of een verandering wel of niet doorgevoerd moet worden gaat dit debat vaak niet eens geheel over de verandering zelf, maar over het behouden van achterwaartse compatibiliteit. Als het toevoegen van een bepaalde feature ten koste gaat van de achterwaartse compatibiliteit, dan wordt er gekozen voor het behouden van de achterwaartse compatibiliteit.

Wanneer dit niet gedaan wordt kunnen oude versies van de software zich niet meer verenigen met het huidige netwerk en worden de regels die nieuwe software aanhoudt als ongeldig gezien door de oude software. Een systeem waarbij dat mogelijk is, is geen stabiel platform om een wereldwijd betaalmiddel op te draaien. Alleen wanneer het écht noodzakelijk is dat een verandering door wordt gevoerd wordt een hard fork overwogen. Bijvoorbeeld als blijkt dat de huidige cryptografie niet meer veilig is en deze vervangen moet worden.

Daarnaast zou de mogelijkheid tot het doorvoeren van een verandering die de achterwaartse compatibiliteit breekt gevoelig zijn voor allerlei invloeden van verschillende partijen met verschillende belangen: het maakt bitcoin kwetsbaar. Wie bepaalt welke verandering gedwongen doorgevoerd wordt? In een decentraal systeem als bitcoin is hier geen autoriteit voor. Alleen het netwerk als geheel kan een verandering doorvoeren.

Het voeren van een beleid waarbij de achterwaartse compatibiliteit koste wat kost behouden wordt komt wellicht over als een rigide beleid voor een softwareproject, maar het dient als manier om het project te coördineren zonder dat het project kwetsbaar wordt voor overname door een enkele partij. Hiermee wordt de continuïteit van bitcoin gegarandeerd.

Spark: een nieuwe lightning interface

Spark

Onlangs werd Spark aangekondigd: een losstaande gebruikersinterface voor het doen van lightningbetalingen. Spark zorgt ervoor dat je het lightning netwerk zo vertrouwensloos mogelijk kan gebruiken. Spark is afkomstig van onafhankelijke ontwikkelaar Nadav Ivgi. De interface is beschikbaar voor Linux, Windows, macOS, Android en binnenkort ook voor iOS. Zoals de meeste lightning apps en tools is ook Spark voornamelijk nog gericht op ontwikkelaars.

Spark is een simpele interface die alleen lightningbetalingen ondersteunt. Spark is zo ingericht dat deze te gebruiken is in combinatie met de full node en c-lightning node van de gebruiker zelf. Hierdoor kun je volledig vertrouwensloos betalingen doen op het lightning netwerk. In de aankondiging zijn meer instructies te lezen over het gebruik en de volledige informatie is op GitHub te vinden.

Demo

Hieronder is een demonstratie te zien van de Spark interface in combinatie met de Nanopos point-of-sale lightning app (lapp) voor een kijkje naar hoe de nabije toekomst van lightningbetalingen aan de kassa eruit kan zien. Nadav Ivgi geeft aan de interface in de toekomst eventueel uit te breiden zodat deze ook gewone bitcoinbetalingen kan uitvoeren, maar vooralsnog is gekozen voor optimalisatie voor het lightning netwerk.

Naarmate de ontwikkeling van het lightning netwerk vordert wordt het steeds toegankelijker voor webdevelopers en UI-developers om interessante use cases te implementeren en mooie ontwerpen voor gebruikersinterfaces neer te zetten. Zo wordt het lightning netwerk niet alleen langzaam toegankelijk voor reguliere gebruikers maar komen ook de tools die andere ontwikkelaars nodig hebben om lightningbetalingen in de praktijk te brengen langzaamaan beschikbaar.

Het ananasfonds is afgerond

Een half jaar geleden schreven we over het ananasfonds. Een fonds opgezet met als doel 5.100 bitcoins te verdelen over verschillende goede doelen. Inmiddels zijn alle bitcoins gedoneerd en heeft de initiatiefnemer een boodschap voor de gemeenschap achtergelaten.

Een inspirerend einde

De initiatiefnemer, bekend als Pine, is nog altijd anoniem. Pine geeft aan dat dit zo zal blijven omdat het fonds niet draaide om de persoon, maar om het bijdragen aan een betere wereld - met dank aan bitcoin. Pine zou tot de top 250 bitcoinbezitters behoren en heeft in totaal 5.104 bitcoins gedoneerd. De uiteindelijke waarde van de weggegeven bitcoins bedraagt zo’n €47,5 miljoen. Het zou om de meerderheid van de bitcoins gaan die Pine in bezit heeft.

Pineapple Fund was an experiment in philanthropy with cryptocurrency wealth. What happens when your 'play-money' becomes a treasure chest, and you're past the satiety point of money?

Het idee voor het fonds kwam voort uit de vraag wat je doet wanneer je ineens meer geld hebt dan je mogelijk kunt uitgeven. De goede doelen die een donatie ontvangen hebben van Pine variëren van een instelling die onderzoek doet naar het gebruiken van psychedelisch middelen in de strijd tegen PTSD tot projecten voor schoon drinkwater. De laatste post van Pine is hier te vinden. Pine probeert tot slot andere gelukkigen uit de bitcoin-wereld te stimuleren om dezelfde stap te zetten. De volledige lijst van donaties en de bijbehorende bedragen kun je hieronder en ook hier terugvinden.

I consider this project a success. If you're ever blessed with crypto fortune, consider supporting what you aspire our world to be :)

fullpine

Hoeveel wegen leiden naar Rome?

Kortgeleden schreven we over Atomic Multi-Path Payments (AMP) als oplossing voor het vinden van een route voor een betaling over het lightning netwerk wanneer er tussen betaler en ontvanger niet voldoende liquiditeit beschikbaar is via een enkele route. Maar hoe groot is de verbetering die AMP brengt?

Het is een te raden om eerst onze artikel die achtergrondkennis over het lightning netwerk bieden te lezen. Het betreft de volgende artikelen: introductie payment channels, van payment channels naar lightning netwerk, het bijvullen van lightning saldo's, het vinden van een route voor een betaling en privacy in het lightning netwerk.

Praktisch testen

Twitter-gebruiker @YeOldDoc heeft interessante grafieken geplaatst van de kans op succesvolle betaling met en zonder AMP. Er werd gekeken naar de kans op het vinden van tenminste één beschikbare route voor betalingen die geheel via een enkele route lopen en betalingen die opgedeeld worden en via meerdere routes het einddoel bereiken middels AMP. De resultaten zijn duidelijk: AMP biedt een aanzienlijke verbetering in de kans op een succesvolle betaling. Je kunt hier meer over de methodiek lezen.

Een aanzienlijke verbetering

In de eerste grafiek hieronder is te zien dat de kans op het vinden van een route minder snel zakt naarmate het te versturen bedrag groter wordt wanneer gebruik wordt gemaakt van AMP. Dit heeft deels te maken met de nog conservatieve saldo's die worden aangehouden op het lightning netwerk, omdat het nog niet aan te raden is zeer grote bedragen vast te zetten in een payment channel. Hierdoor zijn grote betalingen over het algemeen nog lastig te faciliteren. Dit zal in de toekomst echter niet veel anders zijn: de bedragen waarbij het lastig wordt een route te vinden zullen hoger zijn, maar de voordelen die AMP biedt zullen vergelijkbaar zijn.

dhcqecuwaavkn

AMP biedt dus een behoorlijk voordeel. De kans op succesvolle betaling van bedragen groter dan 0,001 BTC zonder AMP zakt snel naar lager dan 50%, waarbij dit met AMP pas bij bedragen ruim boven de 0,1 BTC het geval is - een bedrag dat via een enkele route nagenoeg niet mogelijk zou zijn. Zo wordt er wederom meer uit minder gehaald door slim om te gaan met de beperkte scripting functionaliteit van bitcoin.

dhcrolvaaizp

De afbeelding hierboven laat zien hoeveel routes er nodig zijn om de betaling succesvol af te leveren. Zoals te verwachten stijgt het aantal nodige routes naarmate de grote van het transactiebedrag stijgt; er moet gebruik gemaakt worden van veel verschillende kleine saldo's om de grote betaling door te voeren. Het is toch gaaf om te zien dat, wanneer een normale lightning-betaling zou falen, een betaling die gebruik maakt van 20 verschillende routes middels AMP wél kan slagen. Een echte verbetering in de robuustheid van het netwerk.

Hoeveel bitcoinadressen zijn er?

Er wordt altijd aangeraden om voor elke betaling een nieuw (vers) bitcoinadres te gebruiken. Dit bevordert namelijk de veiligheid en privacy. Maar wat is de kans dat twee verschillende personen hetzelfde bitcoinadres aanmaken?

Praktisch onmogelijk

Het korte antwoord op de vraag hoeveel bitcoinadressen er zijn is 2160. Een getal, genaamd een quindecillion, dat eigenlijk te groot is om uit te schrijven, maar we doen het toch!

1.461.501.637.330.902.918.203.684.832.716.283.019.655.932.542.976

De kans dat twee personen hetzelfde bitcoinadres aanmaken is dus enorm klein, maar wanneer we het getal zo uitgeschreven zien lijkt het voor sommigen toch alsof het wel mogelijk is. Laten we het getal daarom wat verder in perspectief zetten.

Er zijn, naar grove schatting, zo’n 7,5 triljoen zandkorrels op aarde: 7.500.000.000.000.000.000. De kans dat persoon A een willekeurige zandkorrel op aarde aanwijst en persoon B deze vervolgens vindt is dus nog steeds vele malen (!) groter dan de kans dat twee personen hetzelfde bitcoinadres aanmaken.

Wanneer we het totale aantal bitcoinadressen delen door de wereldpopulatie komen we uit op zo’n 190 undecillion bitcoinadressen per persoon:

190.230.285.000.000.000.000.000.000.000.000.000.000

Elke persoon op aarde kan dus een dermate grote hoeveelheid bitcoinadressen aanmaken dat het hoogst onwaarschijnlijk is dat er ooit hetzelfde bitcoinadres wordt aangemaakt door twee verschillende personen. Het is hierdoor ook niet rendabel om een supercomputer aan het rekenen te zetten en alsmaar nieuwe bitcoinadressen te laten aanmaken in de hoop wat bitcoins te kunnen bemachtigen. Dit zou simpelweg een verspilling van rekenkracht en energie zijn.

Zo, met deze kennis van getallen kunnen we weer rustig slapen.

Spam-vrije e-mail met yalls.org

yalls.org was een van de eerste websites waar men lightning-betalingen kon testen door voor het lezen van een online artikel een micro-betaling te doen. Nu heeft de website een simpele anti-spam e-mail functie toegevoegd, mogelijk gemaakt door lightning!

Van hashcash naar lightning

yalls.org is een initiatief van Alex Bosworth, een actieve bitcoin- en lightning-ontwikkelaar. Via de "Inbox" tab is het mogelijk om een inbox voor een specifieke (eigen) e-mail aan te maken die e-mails alleen doorstuurt wanneer de verzender een kleine betaling heeft gedaan. Hiermee wordt voorkomen dat reclamebedrijven massaal e-mails sturen naar elke e-mail die ze kunnen vinden - dit zou simpelweg te duur worden. Bosworth noemt de feature "Hashcash Inbox".

wwwtrujillonlspammen

Interessant om te weten is dat hashcash, van uitvinder Adam Back, in eerste instantie ook bedoeld was om e-mail spam tegen te gaan. Het idee van hashcash was om de verzender een kleine hoeveelheid proof-of-work uit te laten voeren en het bewijs hiervan mee te sturen, hiermee zou het voor verzenders ook te duur worden om massaal te spammen. Hashcash als middel tegen e-mail spam is nooit aangeslagen, maar wel is het idee geadopteerd door Nick Szabo in zijn concept voor Bitgold en later ook Satoshi Nakamoto als proof-of-work in bitcoin. In het originele bitcoin paper wordt Adam Back ook gerefereerd voor zijn uitvinding.

Het is waarschijnlijk dat we de toepassing van micro-betalingen voor het lezen van e-mails vaker zullen zien in de toekomst. Daarmee komen we full-circle en heeft hashcash, naast het mogelijk maken van bitcoin, toch ook nog bijgedragen aan het tegengaan van spam. Zie de video hieronder voor een demonstratie en zet meteen je eigen inbox op!

BetterHash: decentraler minen

Een van de problemen van mining is dat het voor kleine miners niet loont zelfstandig te minen; zij sluiten zich aan bij zogenaamde mining pools om samen een block te vinden en de beloning te verdelen. Het poolen van de rekenkracht komt de decentraliteit van mining echter niet ten goede.

Een soort loterij

Minen kan gezien worden als een soort loterij: hoe groter het percentage van de totale rekenkracht een miner bezit, hoe groter de kans dat die miner het volgende block vindt en de bijbehorende beloning (de block reward) mag claimen. Koop je 20% van de kaartjes van een loterij, dan heb je 20% kans op het winnen van de trekking. Hetzelfde geldt voor mining.

Het probleem ontstaat bij de investering die nodig is om enigszins mee te kunnen doen als miner. Een kleine zelfstandige miner heeft maar een klein percentage van de totale rekenkracht in handen. Met dit kleine percentage rekenkracht is de kans klein dat de zelfstandige miner een block vindt en de volledig block reward kan claimen.

Voor een miner met een zeer klein percentage rekenkracht is het praktisch onhaalbaar om winstgevend te minen. Statistisch gezien vindt ook een kleine miner uiteindelijk een block, maar dit zou jaren kunnen duren. Het is voor kleine miners dus eigenlijk niet de moeite waard om zelfstandig mee te doen, aangezien de miner wel de operationele kosten moet kunnen dragen.

De oplossing voor dit probleem kwam in de vorm van mining pools. Miners sluiten zich bij elkaar aan en poolen hun rekenkracht. Zo hebben zij samen controle over een groter percentage van de totale rekenkracht en dus een grotere kans op het vinden van een block. Het grote voordeel hiervan is dat, wanneer de pool een block heeft gevonden, de block reward verdeeld wordt over alle deelnemers naar proportie van de bijgedragen rekenkracht. Zo kan een kleine miner dus toch een deel van de block reward in ontvangst nemen én rekenen op regelmatige inkomsten.

Beter hashen

Het poolen van rekenkracht heeft echter ook een groot nadeel: de decentraliteit onder de miners gaat verloren. Wanneer kleine miners zich namelijk bij een pool voegen geven zij de controle over hun rekenkracht uit handen. In plaats van het draaien van zelfstandige mining-software draaien de miners die aangesloten zijn bij een pool specifieke software van de mining pool. Deze software draagt als het ware de rekenkracht over aan de beheerder van de mining pool.

Hierdoor is de beheerder van de pool theoretisch in staat om de rekenkracht voor kwaadaardige doeleinden in te zetten. In de praktijk is dit nog niet gebeurd, omdat een dergelijke actie niet winstgevend zou zijn voor de beheerder van de pool. Ook zouden de individuele miners in rap tempo de pool verlaten wanneer duidelijk wordt dat de pool niet meer goedaardig handelt. Toch blijven pools met een groot percentage rekenkracht een dreiging vormen.

poolsshot

De beheerder van een pool heeft namelijk ook de controle over het aanmaken van het gevonden block: de beheerder bepaalt welke transacties er wel of niet worden opgenomen in een block. Over het algemeen wordt dit simpelweg gedaan door te kijken welke transacties de grootste winst opleveren voor de miners: de transacties met de hoogste fee gaan voor. Het kan echter ook voorkomen dat de beheerder besluit bepaalde transacties uit te sluiten: censuur. Er wordt daarom actief gewerkt aan het bedenken van manieren en prikkels om de decentraliteit onder miners te stimuleren.

Werk en beloning gescheiden

BetterHash is een voorstel van Matt Corallo dat poogt om de decentraliteit van mining te bevorderen. Matt Corallo is al lange tijd bitcoin-ontwikkelaar en heeft al veel bijgedragen aan de verbetering van het bitcoinnetwerk. Het voorstel van Corallo scheidt het aanmaken van het nieuwgevonden block van de betaling van de beloning. Het voorstel wordt door velen aangehaald is zeer belangrijke innovatie, maar is tevens grotendeels onopgemerkt gegaan.

Het duidelijke voordeel dat behaald wordt met de constructie uit het voorstel van Corallo is dat een kleine zelfstandige miner zichzelf nog steeds kan aansluiten bij een pool, waardoor de miner kan rekenen op regelmatige inkomsten, zonder dat de miner het recht op het aanmaken van het volgende block opgeeft. Daarnaast kan de beheerder van een pool de individuele miners niet meer dwingen mee te doen met bepaalde upgrades wanneer zij dit niet wenselijk vinden.

De pool dient nog steeds als verdeler van de inkomsten, maar de miner die verantwoordelijk is voor het gevonden block behoudt het recht om te bepalen welke transacties er in het block worden opgenomen. Hiermee wordt voorkomen dat een beheerder, gedwongen of ongedwongen, censuur kan uitoefenen.

Volgens Corallo en velen anderen is het oplossen van de centralisering van mining een van de meest dringende onderwerpen. Het hopen is nu dat de verschillende mining pools hier hetzelfde over denken en het BetterHash voorstel in de praktijk gaan toepassen. Geheel verholpen zijn de centraliseringsproblemen met dit voorstel nog niet, maar het is een stap in de goede richting.

Hoe snel is bliksemsnel?

Miljoenen transacties per seconde

We weten inmiddels allemaal dat de transactiecapaciteit van het bitcoinnetwerk zelf beperkt is tot enkele honderdduizenden transacties per dag, nog geen 10 per seconde. Maar hoeveel meer transacties per seconde zijn mogelijk met het lightning netwerk?

Volgens onderzoek van Christian Decker, Core Tech Engineer bij Blockstream, kan elk payment channel in het lightning netwerk zo’n 500 transacties per seconde afhandelen. Op dit moment bestaat het lightning netwerk uit ongeveer 11.000 payment channels. Dit betekent dat het netwerk nu al ongeveer 5,5 miljoen transacties per seconde kan verwerken, terwijl het nog in zijn kinderschoenen staat!

Toch? Oké, misschien nog niet helemaal.

Het vermenigvuldigen van de transactiecapaciteit met het aantal payment channels geeft misschien geen geheel eerlijk beeld van hoeveel transacties er per seconde mogelijk zijn. Mede omdat elke transactie die gedaan wordt invloed heeft op de staat van het netwerk, niet elke node in het netwerk optimaal presteert, elk payment channel voldoende bitcoins beschikbaar moet hebben om daadwerkelijk transacties te kunnen uitvoeren en variabele netwerklatentie ook nog wel eens roet in het eten kan gooien.

trujillopuntnlsuperfastlightingnetwork

Het daadwerkelijke aantal transacties per seconde zal dus waarschijnlijk lager liggen dan de schatting hierboven, maar nog steeds in de miljoenen. Helaas is het lastig om te meten hoeveel transacties per seconde er daadwerkelijk gedaan worden op het lightning netwerk, omdat niet elke transactie publiek verzonden wordt. De daadwerkelijke capaciteit in de praktijk zal moeten blijken uit betrouwbare verslagen over werkelijk gebruik.

Op dit moment is de netwerklatentie een van de grote bottlenecks voor het aantal transacties per seconde. Er moet voor elke transactie nu eenmaal tussen twee partijen heen en weer gecommuniceerd worden. Elk bericht over en weer kost een aantal milliseconden.

De uiteindelijke capaciteit van het lightning netwerk is ongekend groot, groter dan elk ander betaalmiddel dat we kennen, en zal ergens in de miljoenen en misschien wel miljarden transacties per seconde liggen. En dit is ook wel nodig. Het lightning netwerk zal namelijk niet alleen dienen voor dagelijkse transacties van menselijke gebruikers, maar ook voor miljarden kleine transacties tussen machines zelf.

Bliksemsnelle groei

Nog maar een paar maanden geleden schreven we over de snelle groei van het lightning netwerk. Deze groei zet zich voort en het lightning netwerk bestaat inmiddels al uit ruim 10.000 payment channels!

Een mijlpaal

Het lightning netwerk bestaat inmiddels uit ruim 10.000 payment channels met een totale capaciteit van meer dan 110 bitcoins. Deze capaciteit toont aan dat er meer vertrouwen in het netwerk begint te komen; mensen vertrouwen meer bitcoins aan de payment channels toe en meer mensen beginnen met experimenteren. Het grootste deel van de deelnemers bestaat echter nog wel uit ontwikkelaars en hobbyisten.

Het volgen van de groei en ontwikkeling van het lightning netwerk is alsof je de geboorte van bitcoin opnieuw meemaakt - een groot deel van het toekomstige betalingsverkeer zal immers via deze laag verlopen. Je kunt de groei van het lightning netwerk hier zelf bijhouden. Wie weet hoeveel van de 21 miljoen bitcoins uiteindelijk onderdeel van het lightning netwerk zullen zijn en hoe het netwerk eruitziet bij brede adoptie. Spannend!

channels

Wanneer mobiele apps voor iedereen?

Mobiele wallets, met name voor iOS, laten nog op zich wachten vanwege de ontwikkeling van het protocol en watchtowers. Voor Android zijn al wel enkele lightning wallets beschikbaar, maar ook deze zijn nog wat ruw. De ontwikkelaars richten zich op het bouwen van een robuuste fundering zodat het potentieel van het lightning netwerk in de toekomst maximaal benut kan worden. Dit is tijd waard. Net als bij het bouwen van een nieuw huis begint men met de fundering en komen de mooie gordijnen pas op het laatst, zo ook voor de gepolijste apps voor de eindgebruikers.

lnjanvsjul

De brug tussen fysiek en digitaal

De term proof-of-work wordt vaak geïnterpreteerd als "computers die rekensommetjes maken". Hoewel deze omschrijving niet onjuist is, omvat het niet geheel de kracht van proof-of-work. Proof-of-work zorgt namelijk voor een brug tussen de fysieke en de digitale wereld.

Block als representatie voor verricht werk

Proof-of-work draait niet om het kiezen van een gelukkige winnende miner die vers aangemaakte bitcoins in ontvangst mag nemen; dit stukje van proof-of-work, hoewel essentieel, dient slechts als motivatie voor miners om het werk te leveren. Krijgen zij geen beloning, dan wordt er ook geen werk geleverd.

De werkelijke functie van proof-of-work is het omzetten van elektriciteit in een digitaal block als onderdeel van de blockchain. Miners voeren continue hash-operaties uit totdat zij de cryptografische puzzel die dient als loterij voor de miners oplossen. Alle operaties die zij uitvoeren, al het werk dat zij leveren, doet er niet meer toe op het moment dat de oplossing is gevonden.

Een hashfunctie is een algoritme dat, gegeven een bepaalde input, een unieke output genereert. Vanuit de gegenereerde output kan niet terug berekend worden wat de input was, maar het is wel mogelijk om, gegeven de input, te controleren dat de eerder getoonde output klopt door het algoritme nogmaals uit te voeren met de input.

Die éne oplossing is representatief voor de enorme hoeveelheid energie die nodig was om deze oplossing te produceren. Dit is het "bewijs" van het werk dat is geleverd: proof-of-work. Deze oplossing wordt omgezet in een block en aan de blockchain toegevoegd, waardoor een aanvaller dezelfde hoeveelheid werk zou moeten leveren om de oplossing succesvol na te maken. Hiermee wordt de transactiegeschiedenis die aan de blockchain wordt toegevoegd hard; bijna alsof in het in steen geschreven is.

Digitaal en toch fysiek

Wanneer we een digitaal bestand van iemand ontvangen dan 'voelt' dat niet hetzelfde als wanneer we een geldmunt ontvangen. Bij het ontvangen van een geldmunt, bijvoorbeeld een euro, weten we zeker dat er waarde is overgedragen van de tegenpartij naar ons; we weten zeker dat de tegenpartij in ieder geval niet meer over die waarde beschikt.

De enorme hoeveelheid energie die geleverd is en gepresenteerd wordt door die ene oplossing, een oplossing die met heel weinig energie te verifiëren is, geeft ons deze zelfde zekerheid. Deze cumulatie van verbruikte energie geeft aan hoe moeilijk het is om de waardeoverdracht tussen twee partijen te vervalsen, waar dit bij het versturen van een gewoon digitaal bestand zo makkelijk is.

tekbcbrug

Het ontvangen van bitcoins 'voelt' en is daardoor net zo fysiek, misschien wel fysieker, als het ontvangen van een geldmunt. De bitcoin-transactie die wij ontvangen hebben is niet vervalsbaar. Deze onvervalsbaarheid is gevangen door de reeks van gekoppelde oplossingen die elk representatief zijn voor de praktisch onmogelijke opgave om sneller te rekenen dan alle miners bij elkaar. Proof-of-work maakt dat onze digitale bitcoins eigenschappen hebben die we normaal alleen terugzien in de fysieke wereld. Het is de brug tussen fysiek en digitaal.

Atomic Multi-Path Payments

In het vorige artikel over het lightning netwerk gingen we in op het bijvullen van een payment channel op het lightning netwerk middels splicing. Het is echter niet altijd nodig een payment channel bij te vullen, we kunnen ook slim gebruik maken van meerdere open channels voor een betaling.

Vele wegen leiden naar Rome

Zie 1 - 2 voor achtergrond en 3 - 4 voor aanvullende informatie.

Herinner je dat het lightning netwerk bestaat uit een netwerk van payment channels tussen gebruikers. Een gebruiker kan meerdere payment channels open hebben met verschillende partijen. Een betaling van Alice naar Dave wordt gedaan door één van de mogelijke routes die Alice uiteindelijk met Dave linkt te gebruiken.

ampath

Stel nu dat Alice een betaling van 0,006 BTC wil gaan doen naar Dave, maar Alice niet voldoende bitcoins in haar payment channel met Bob heeft om deze betaling te kunnen uitvoeren. Of, stel nu, dat Bob niet voldoende bitcoins in zijn channel met Carol heeft, of dat er niet voldoende bitcoins tussen Carol en Dave beschikbaar zijn. Hoe kunnen we deze betaling dan alsnog uitvoeren zonder bitcoins bij te laden door middel van splicing én zonder het openen van een nieuw payment channel tussen Alice en Dave?

We kunnen gebruik maken van de andere payment channels die Alice open heeft om de betaling "op te splitsen" en via meerdere routes te laten verlopen. Het gehele netwerk van payment channels tussen Alice en andere partijen kan er bijvoorbeeld zo uitzien:

ampath


Gegeven dat Alice in totaal wel voldoende bitcoins in haar payment channels met Bob, Eve en Victor heeft, kan de betaling plaatsvinden door gebruik te maken van deze routes. Stel dat Alice in elk kanaal met Bob, Eve en Victor 0,002 BTC beschikbaar heeft en een betaling van 0,006 BTC naar Dave wil doen. Hoe kunnen we dit uitvoeren op zo’n manier dat de gehele betaling op hetzelfde moment aankomt en er niet delen van de betaling per ongeluk niet doorgaan?

We kunnen de betalingen zo inrichten dat Dave de gehele betaling pas kan claimen op het moment dat Dave alle onderdelen van de betaling ontvangen heeft. Herinner je uit het artikel over Hashed Time-Lock Contracts (HTLCs) het delen van een geheim voor het succesvol uitvoeren van een betaling via tussenpartijen. We gaan hier een soortgelijk trucje gebruiken genaamd Atomic Multi-Path Payments (AMP), een idee van Olaoluwa "roasbeef" Osuntokun.

De verzender, Alice, maakt in dit geval het geheime getal P aan en maakt drie verschillende betalingen aan waarvoor P nodig is om deze te claimen. Vervolgens splitst Alice P op in drie verschillende delen: P1 , P2 en P3 . Vervolgens voegt Alice P1 , P2 en P3 aan de verschillende betalingen die zij gaat versturen. Voor de betalingen maakt Alice gebruik van de payment channels die zij open heeft met Bob, Eve en Victor.

ampath

Wanneer alle betalingen zijn aangekomen bij Dave is hij in staat om de originele P te herconstrueren, welke nodig is om de betalingen te claimen. Dit doet Dave door P1 , P2 en P3 te combineren. Vervolgens kan Dave direct alle betalingen tegelijk claimen, waardoor de betaling in zijn geheel doorgaat. Zo is er succesvol een betaling van 0,006 BTC van Alice naar Dave verstuurd, zonder het openen van nieuwe payment channels en extra on-chain transacties.

ampath

De voordelen

Het op deze manier inrichten van een betaling via meerdere routes heeft als duidelijk voordeel dat we niet langer gebonden zijn aan een enkele route van verzender naar ontvanger. Hierdoor is niet noodzakelijk om payment channels met daarin grote bedragen open te hebben. Dit komt de decentraliteit ten goede, omdat er voorkomen kan worden dat iedereen via een paar grote hubs betalingen doet. Daarnaast helpt AMP voorkomen dat sommige payment channels een te kleine hoeveelheid bitcoins bevatten, terwijl andere payment channels een overschot hebben, waardoor een ongelijke liquiditeit ontstaat.

Ook heeft AMP effect op de hoeveelheid fee die betaald zal moeten worden voor een dergelijke betaling. Hoewel de fees voor lightning-transacties al laag zullen zijn, zorgt het vermijden van grote hubs er ook voor dat de fees voor een dergelijke betaling niet hoger dan normaal zijn.

Tot slot bevordert AMP de privacy. Bij een normale lightning-betaling weten de tussenpersonen hoeveel er verstuurd wordt, maar niet wie de afkomst en eindbestemming zijn. Het toepassen van AMP heeft het effect dat de tussenpersonen ook niet meer weten hoeveel bitcoins er precies van A naar B verstuurd worden, omdat zij niet weten hoe groot de totale betaling is. Daarnaast is er een groter aantal routes beschikbaar voor het doen van kleine betalingen, waardoor het moeilijker is om de geldstroom tussen payment channels te analyseren.

Lightning Netwerk: Splicing

Wanneer we kijken naar de werking van het lightning netwerk in de praktijk komen er allerlei interessante vraagstukken naar boven. Hoe zit het bijvoorbeeld met het toevoegen van bitcoins aan een lightning channel wanneer een channel bijna leeg is?

Even opfrissen

We hebben in het verleden in een serie artikelen de basisprincipes van het lightning netwerk doorgenomen. Deze kun je hier lezen: 1 - 2. Het is verstandig in ieder geval even het eerste artikel te lezen, voordat je verder gaat met dit artikel.

Herinner je uit het eerste artikel over de basisprincipes van payment channels dat het opzetten van een payment channel op het lightning netwerk gebeurt door het uitvoeren van een aantal speciale transacties. Deze transacties zorgen ervoor dat Alice en Bob elkaar kunnen gaan betalen, zonder transacties via de blockchain te laten gaan én zonder het risico op verlies van bitcoins door een kwaadwillende tegenpartij.

channel

Via deze constructie kunnen Alice en Bob elkaar over en weer betalen, maar niet voor meer dan het initieel ingezette bedrag (in dit voorbeeld 1 BTC) en in eerste instantie alleen van Alice naar Bob. Alle transacties die vanuit het multi-signature adres tussen Alice en Bob gedaan worden zijn off-chain en worden dus pas definitief na het sluiten van het payment channel.

Herinner je ook dat het payment channel tussen Alice en Bob slechts een onderdeel is van het gehele lightning netwerk: dit bestaat uit een netwerk van payment channels. Alice kan dus gebruik maken van haar channel met Bob om betalingen naar Carol of Dave uit te voeren.

htlc

Het kan voorkomen dat Alice onvoldoende bitcoins in haar payment channel met Bob heeft om succesvol betalingen naar andere partijen uit te voeren via hetzelfde channel. Dit kan gebeuren doordat Alice haar volledige 1 BTC heeft verstuurd naar andere partijen.

Beeld je een rekenrek in; alle bitcoins in het channel zitten dan aan de "rechter-" kant. Alice zou dus een nieuw payment channel op moeten zetten (direct naar Carol of Dave) of eerst betalingen moeten ontvangen om verdere betalingen uit te kunnen voeren. Het opzetten van een nieuw payment channel doen we echter liever niet, want hiervoor zijn dure transacties en kostbare blockchain-ruimte nodig. Het liefst "laden" we het payment channel tussen Alice en Bob met nieuwe bitcoins zonder het channel te sluiten of een nieuw channel te openen.

Splice in, splice out

Door slim gebruik te maken van de mogelijkheden die de scripting functionaliteit van bitcoin ons biedt is gelukkig ook hier een oplossing voor: splicing. Bij splicing wordt gebruik gemaakt van het reeds bestaande multi-signature adres tussen Alice en Bob. Met het "splicen" van deze transactie worden er van buiten het payment channel nieuwe bitcoins toegevoegd aan het payment channel, zonder dat het payment channel gesloten wordt en er dus onnodig veel on-chain transacties gedaan worden.

De nieuwe bitcoins worden in dit voorbeeld alleen toegevoegd door Alice, maar dit kan ook door Bob of door beide partijen gedaan worden. Dit doet Alice door een transactie aan te maken vanuit het oude multi-signature adres voor het volledige aantal bitcoins, waaraan zij een nieuwe input toevoegt vanuit haar eigen bitcoin-voorraad, naar een nieuw multi-signature adres.

splice

Dit nieuwe multi-signature adres dient vervolgens als de nieuwe basis van het payment channel; Alice en Bob sturen vanaf nu vanuit dit nieuwe multi-signature adres transacties naar elkaar. Alice tekent haar deel van de transactie: haar nieuwe input en haar deel van de multi-signature output, en laat de transactie vervolgens ondertekenen door Bob. Deze transactie wordt vervolgens wél gepubliceerd en bevestigd op de blockchain, maar door deze constructie is het aanvullen van een payment channel mogelijk met één enkele on-chain transactie in plaats van meerdere.

Tijdens het wachten op een bevestiging van de transactie naar het nieuwe multi-signature adres kan de oude versie van het payment channel gewoon bijgehouden worden. Op het moment dat de nieuwe transactie bevestigd is kan overgeschakeld worden naar het nieuwe multi-signature adres met een hoger saldo.

splice

Het is op deze manier ook mogelijk om bitcoins uit het payment channel te versturen naar een regulier bitcoinadres, zoals te zien in de afbeelding hierboven. In plaats van het toevoegen van een input met nieuwe bitcoins voegt Alice een output naar een adres van zichzelf toe aan de splicing-transactie. Op deze manier kan een deel van de bitcoins opgenomen worden uit het payment channel door Alice of Bob, of naar een derde partij verstuurd worden.

Zo wordt het mogelijk om willekeurig transacties van 'gewone' bitcoinadressen naar lightning channels te versturen, en andersom. Dit zorgt ervoor dat er naadloos overgeschakeld kan worden tussen het doen van een snelle lightning-transactie vanuit een lightning-wallet voor dagelijks gebruik en het 'opnemen' van bitcoins vanuit een normale bitcoin-wallet die dient als spaarrekening. Zie het als het heen en weer schuiven van geld tussen je bankrekening voor alledaagse zaken en je spaarrekening.

Lees ook hoe lightning-transacties de privacy verhogen.

De voorgeschiedenis van bitcoin

In tegenstelling tot wat velen denken, is Bitcoin niet zomaar uit de lucht komen vallen. Op nakamotoinstitute.org is een uitgebreid overzicht te vinden van alle literatuur die bijgedragen heeft aan de uitvinding van Bitcoin, de verschillende teksten geven veel inzicht in het gedachtegoed achter de ontwikkeling van digitaal geld.

Meer dan een spontaan hobbyproject

De voorgeschiedenis van Bitcoin is voor velen onbekend, maar wel erg interessant wanneer men geïnteresseerd is in hoe dit alles is ontstaan. De uitvinding van bitcoin kwam op een moment waarop alle puzzelstukjes op zijn plek vielen. Er was al vaker geprobeerd digitale schaarste in de vorm van een digitale munteenheid te creëren, zo vroeg als de jaren 80, maar pas in 2008-2009 werd het idee succesvol uitgevoerd met de implementatie van Bitcoin.

Satoshi Nakamoto geeft in een forumpost op bitcointalk.org aan dat Bitcoin een implementatie is van het "b-money" van Wei Dai uit 1998 en het "bitgold" van Nick Szabo uit 2005. Beide voorstellen dateren van jaren voor de aankondiging van Bitcoin en zijn op vele vlakken vergelijkbaar met Bitcoin in ontwerp en filosofie.

Zo beschrijft het voorstel van Wei Dai bijvoorbeeld het verspreiden van het grootboek over alle deelnemers in een distributed netwerk, waarbij iedereen de huidige versie aanpast wanneer er een nieuwe transactie gedaan wordt. Daarnaast zou b-money, net als Bitcoin, gebruik moeten maken van publieke sleutels om bedragen aan te koppelen. Het voorstel van Nick Szabo beschrijft al het gebruik van proof-of-work, vergelijkbaar met het hashcash principe van Adam Back, voor het onvervalsbaar maken van de transactiegeschiedenis.

De verschillende teksten (ruim 80+) op nakamotoinstitute.org geven veel inzicht in het gedachtegoed achter de ontwikkeling van digitaal geld en hoe het over de jaren heen samen is gekomen tot het systeem dat we vandaag de dag kennen als Bitcoin. Absoluut het lezen waard wanneer men meer wil weten over de voorgeschiedenis van Bitcoin. Begin met de teksten van Nick Szabo, Wei Dai, David Chaum en Adam Back en je zult snel genoeg verdwaald raken in een leestocht over de oorsprong van het geld. Naast een overzicht van literatuur geeft nakamotoinstitute.org ook een overzicht van alle forumposts die gemaakt zijn door Satoshi Nakamoto na de aankondiging van Bitcoin.

Bitcoin was not forged in a vacuum. These works serve to contextualize Bitcoin into the broader story of cryptography and freedom. nakamotoinstitute.org

Scaling Bitcoin 2018: "Kaizen"

Er vindt dit jaar wederom een nieuwe editie van de Scaling Bitcoin workshops plaats, dit maal in Tokyo met als thema: "Kaizen". Scaling Bitcoin is dé conferentie waar ontwikkelaars, academici en onderzoekers samenkomen om de problemen en oplossingen rondom de schaalbaarheid van Bitcoin te bespreken.

Een fase van continue verbetering

De workshops vinden plaats op 6 en 7 oktober aan de Keio Universiteit in Tokyo, Japan. Het thema van de bijeenkomst is dit jaar "Kaizen", wat staat voor continue verbetering. Op dit moment staat de call for proposals open, waarbij onderzoekers hun bevindingen kunnen aanmelden om deze te bespreken tijdens de conferentie.

Scaling Bitcoin ‘Kaizen’, focuses on the systematic identification of portions of the Bitcoin protocol that best lend themselves to continuous, non-’consensus layer’ improvement. ‘Kaizen’ focuses on the refinement of Bitcoin’s existing impressive security, integrity and performance properties by identifying opportunities to drive further algorithmic efficiency and rigorous testing.

Het thema is representatief voor de huidige staat van de ontwikkeling van bitcoin; er wordt continu doorontwikkeld en bitcoin wordt daarmee op alle vlakken verbeterd en robuuster gemaakt. Op de voorgrond steelt vooral het lightning netwerk de show, maar op de achtergrond gebeurt er veel meer. De onmiddellijke capaciteitscrisis is voor nu verholpen en het aantal actieve ontwikkelaars neemt met de tijd toe, daarmee is er ruimte voor algehele optimalisering.

De organisatoren geven dan ook aan dat de focus van de presentaties dit jaar met name op de volgende onderwerpen moet liggen: het simuleren, modelleren en testen van verschillende aanpassingen aan het netwerk, methodes en tools die gebruikt kunnen worden voor het modelleren en simuleren, de onderliggende game theory en het economisch mechanisme dat voor de juiste prikkels binnen het netwerk zorgt en het verbeteren van de scripting mogelijkheden.

Inschrijven

In 2015 was Bitonic aanwezig in zowel Montreal als Hong Kong, in 2016 was een grote groep Nederlanders aanwezig op de internationale bijeenkomst in Milaan en ook in 2017 werd de conferentie nauw gevolgd. 
De verkoop van kaarten voor de bijeenkomst van dit jaar zal binnenkort van start gaan, een aankondiging zal volgen op de Scaling Bitcoin Twitter. Let wel dat de conferentie bedoeld is voor ontwikkelaars, academici en journalisten.

Op het Scaling Bitcoin Youtube kanaal kun je de bijeenkomsten van vorige jaren terugkijken.