Jerrymie

Jerrymie is hoofdredacteur bij BTC Direct en heeft bijgedragen aan o.a. Algemeen Dagblad, VPRO en BNN.

Satoshi Nakamoto schreef in 2008 een revolutionaire whitepaper over bitcoin. Een digitale valuta die in potentie de hele wereld kan veranderen. Blockchain is het systeem waarop de bitcoin werkt. Het is het fundament van bitcoin en andere cryptomunten die hierop volgen.

Maar hoe werkt blockchain nu eigenlijk? Om dat te begrijpen is het belangrijk de aanloop naar de whitepaper te lezen. In dit artikel duiken we dieper in de geschiedenis van blockchain. Blockchain bestaat namelijk uit verschillende ideeën en die zijn in de loop der jaren door verschillende mensen bedacht.

In dit artikel gaan we in op:

  • Time-stamp
  • Private- en public keys
  • Proof of work
  • Betalen zonder derde partij
  • Double spending
  • Digitale schaarste
  • Reusable proof of work
  • Peer to peer

Hoe is blockchain ontstaan?

Bitcoin en blockchain zijn onlosmakelijk met elkaar verbonden. Bitcoin is de munt die op blockchaintechnologie draait. Bitcoin gebruikt de blockchain als een soort grootboek waarin alle transacties worden bijgehouden.

Tijdens de economische crisis van 2008 daalde het vertrouwen in de bankwereld tot een dieptepunt. Banken vielen om, de huizenmarkt zakt in elkaar en veel mensen kregen te maken met woekerpolissen. Dit moet anders, dacht Satoshi Nakamoto. In 2008 bedacht hij (of zij) een manier om geld op een decentrale manier te beheren: zonder tussenkomst van een bank of overheid.

Een jaar later was de allereerste transactie via blockchain een feit!

Time-stamp, echtheid controleren zonder inhoud prijs te geven

Maar even een paar stappen terug. Nakamoto bedacht bitcoin in 2008, bitcoin is tevens het eerste praktische nut van blockchaintechnologie. Maar die techniek is gebaseerd op ideeën uit de jaren 90. Daar verwijst Nakamoto ook naar in de voetnoten van de bitcoin whitepaper.

In 1991 beschreven Stuart Haber en W. Scott Stornetta het raamwerk wat blockchain zou worden. Zij schreven over een met cryptografie beveiligde keten van blokken.

Beide mannen zagen het gevaar van documenten bewaren en delen op computers. Dat kon volgens hun niet door op een centrale autoriteit (zoals een bank of regering) te vertrouwen, het grootboek kon beter verdeeld worden onder verschillende partijen. Ze beschreven een manier om de echtheid van data te controleren, zonder de inhoud prijs te geven.

Hun ideeën deelde ze in een paper genaamd “How to Time-Stamp a Digital Document.”

Volgens die paper verzendt iemand een document naar een tijdstempelserver en ondertekent de server het document met het huidige tijdstempel (time-stamp). Vervolgens koppelt de server het document aan het vorige document. De data in de tijdstempels verwezen naar hele specifieke gegevens uit voorgaande documenten in de ketting van data.

Wijzigt iemand data? Dan wordt de volgende input ongeldig. Dit zorgt ervoor dat niemand de gegevens kon manipuleren die ooit in de server zijn vastgelegd.

Private en public keys

In datzelfde jaar zei David Chaum, een futurist die zich vooral bezighield met privacy:

“Current developments in applying technology are rendering hollow both the remaining safeguards on privacy and the right to access and correct personal data. If these developments continue, their enormous surveillance potential will leave individuals’ lives vulnerable to an unprecedented concentration of scrutiny and authority.” 

Chaum hield zich al langer bezig met privacy in de digitale wereld. Hoewel, bezig houden, de man was geobsedeerd door privacy en in het verlengde daarvan, cryptografie. Dit is een ander woord voor geheimtaal ofwel het versleutelen van boodschappen.

In 1982 bedacht hij het concept van private en public keys. Hij publiceerde zijn bevindingen in een revolutionaire paper genaamd Blind Signatures. Jaren later is dat een van de belangrijkste filosofische bouwstenen waar blockchain op gebaseerd is.

Even kort wat hij nu echt beschreef over die keys:

Stel je neemt een willekeurige reeks getallen (bijvoorbeeld 72631519), dit is onze private key. Deze halen we door een wiskundig algoritme en de nieuwe reeks getallen die hieruit komen noemen we een public key. Heel belangrijk is dat dit eenrichtingsverkeer is. Dus je kan van een private key altijd een public key maken, maar andersom is niet mogelijk!

Dit klinkt misschien heel abstract maar hier kan je mooie dingen mee doen. Denk aan data die je wil beveiligen en naar iemand wil sturen. Je maakt een private key aan, deze zet je om in een public key. De public key kan je gewoon met de hele wereld delen, deze is namelijk niet meer terug te herleiden naar de originele data. De nieuwe dataset is nu onbegrijpelijk en onleesbaar.

Maar heeft de ontvanger de private key? Dan kunnen deze twee keys gebruikt worden om de originele data in te zien.

We maken een sprong naar naar de jaren 90, David Chaum richtte het bedrijf Digicash op en ontwikkelt eCash. ‘s Werelds eerste poging tot digitaal geld. Helaas ging hij een paar jaar later alweer failliet. Een groot verschil met bitcoin is dat eCash centraal werd beheerd door zijn bedrijf Digicash.

Proof-of-work als wapen tegen spam

De volgende stap richting blockchain werd gezet in 1997. Adam Back werd knettergek van spam mails. Hier moest wat aan gebeuren. Back was destijds lid van een mailinglijst voor Cypherpunks mailinglijst en in deze groep deelde hij zijn idee van hashcash. Cyperphunks zijn individuen die zich bezighouden met privacy en veiligheid van gegevens. In hun manifest staat:

“Privacy is noodzakelijk voor een open samenleving in het elektronische tijdperk. We kunnen niet van regeringen, bedrijven of andere grote, gezichtsloze organisaties verwachten dat ze ons privacy bieden. We moeten onze eigen privacy verdedigen, onze eigen code schrijven. Iemand moet software schrijven om privacy te beschermen.. Wij gaan het schrijven.”

Terug naar hashcash, het idee is dat e-mails versleuteld worden via private en public keys. Op het moment dat je op verzenden drukt moet je computer een wiskundige puzzel oplossen voordat de e-mail verzonden kan worden. Dit wordt hashing genoemd, vandaar de naam hashcash.

Dat werkte zo: alle data wordt door elkaar gehusseld (ontvangstadres, verzendadres, etc) en er wordt een willekeurig nummer aan toegevoegd. Deze data wordt gehashed en hier rolt een bepaald getal uit.

Nu moet je computer aan het werk. Als je de "normale" hash naar binaire taal omzet, wordt het een getal dat bestaat uit 0-en en 1-en. Nu moet je computer een hash vinden met een bepaalde hoeveelheid nullen aan het begin van de reeks getallen.

Je computer kent alle data (ontvangstadres, verzendadres, etc) maar weet het willekeurig toegevoegde nummer niet. De computer moet keer op keer een willekeurig nummer in het algoritme gooien om tot de juiste hash te komen. Dit wordt brute-force genoemd.

Gaat het maar om één e-mail? Dan gaat dat redelijk snel. Maar ben je een grootschalige spammer? En wil je miljoenen mailadressen tegelijkertijd spammen? Dan kost dit veel tijd en computerkracht. En computerkracht kost energie, waar betaald voor moet worden.

Komt dit bekend voor? Dit wordt proof-of-work genoemd, een belangrijk concept van de blockchain van bitcoin.

B-money, betalen zonder derde partij

We hadden het net al even over die mailingslijst van cypherpunks. Veel bekende namen uit cryptoland waren hier lid van. Denk aan David Chaum, Adam Back, Hal Finney, Satoshi Nakamoto en Wei Dai.

Laatstgenoemde ontwikkelde in 1998 b-money. In de woorden van Wei Dai zelf:

“…a scheme for a group of untraceable digital pseudonyms to pay each other with money and to enforce contracts amongst themselves without outside help”.

Ofwel, een betaalsysteem zonder hulp van derde partijen. Hij gebruikt het idee van Stuart Haber en W. Scott Stornetta van een met cryptografie beveiligde keten van blokken. Dit idee past hij iets aan om toe te kunnen passen op een betaalmiddel.

Hoe werkt dit? Allereerst is iedereen die meedoet een boekhouder. Dus in plaats van één centrale boekhouder, die alle transacties bijhoudt, is iedereen boekhouder. Iedereen heeft een kopie van het grootboek. Stel dat je geld verstuurt naar Frank, dan ziet iedereen deze transactie en wordt dit verwerk in ieders grootboek.

Alle transacties in dit systeem zijn versleuteld met private keys. Het is volledig transparant hoeveel transacties er worden gedaan, maar de transactie zelf kan niet ingezien worden.

Double Spending centraal oplossen

Maar Wei Dai voorzag een probleem, namelijk double spending. Je hebt altijd fraudeurs die hun geld twee keer willen uitgeven. Als voorbeeld: ik stuur een bericht naar boekhouder A dat ik mijn geld heb gestuurd naar Frank. Naar boekhouder B stuur ik een bericht dat ik geld heb gestuurd naar Steve. Nu heb ik hetzelfde geld twee keer uitgegeven!

Omdat Dai dit probleem al voorzag, dacht hij ook na over een oplossing. Zijn idee was om de grootboeken onder te brengen bij een paar grote partijen. Deze partijen moesten neutrale servers zijn. Nu beschikt niemand meer over de grootboeken, behalve een paar grote jongens.

Deze servers moeten allemaal een beetje geld opzij houden voor het geval ze hun werk niet goed doen.

Wei Dai dacht ook na over de waarde van zijn b-money. Hij redeneerde dat zijn bedachte geld alleen zou werken als de koers stabiel is. Dit wou hij bewerkstelligen door de waarde te koppelen aan producten. Is dat product dit jaar 5 euro waard? Dan is de munt nu ook 5 euro waard. De waarde van de munt is zo gekoppeld aan de waarde van dat product.

Om de waarde van de coin niet te hard te laten fluctueren moeten er ook nieuwe coins in omloop gebracht worden. Diegene op het netwerk die kon bewijzen dat hij net zoveel werk had geleverd als de coin waard was (bijvoorbeeld 5 euro dit jaar) kreeg een coin. Dit lijkt verdacht veel op het eerder genoemde concept van proof-of-work.

B-money is helaas nooit werkelijkheid geworden, het kwam niet verder dan de conceptfase.

Schaars, digitaal en niet vertrouwen in derde partijen

Een ander lid van die mailinglijst, Nick Szabo bedacht BitGold. Szabo werkte eerder bij DigiCash, het bedrijf van David Chaum. Hier leerde hij veel over de goede eigenschappen én de valkuilen van digitaal geld. Een van die valkuilen was het gecentraliseerde systeem van DigiCash. De munt E-cash was namelijk voor honderd procent afhankelijk van het bedrijf.

Szabo merkte dat hij met speels gemak de accounts kon inzien, en aanpassen van klanten.

Die positie van DigiCash als een centrale, noodzakelijk en fundamenteel onderdeel van E-cash is voor hem de kern van het probleem. Niet alleen van E-cash maar van het hele financiële systeem wereldwijd.

Wat als je een betaalsysteem hebt zonder zogenaamde vertrouwde derde partijen (trusted third parties)?

Een derde partij is elke entiteit die nodig is voor het uitvoeren van een bepaalde service en die deel uitmaakt van een proces. Denk aan al die betalingen die je in de winkel hebt gedaan met je pinpas.

Nick Szabo schreef hier een stevig essay over genaamd Trusted Third Parties Are Security Holes.

Hij redeneert dat vertrouwen (ofwel trust) in derde partijen tijd en inspanning vergt. Elke keer moet je weer overwegen of een partij wel te vertrouwen is. Zoals een bank of een creditcardmaatschappij.

Weer terug naar BitGold. Hij koos voor deze naam omdat hij alle goede eigenschappen van goud wou koppelen aan de voordelen van de digitale wereld.

Met de unieke eigenschappen van goud (schaars, verdeelbaar, veilig, waarde goed meetbaar) in zijn achterhoofd, wilde Szabo iets maken dat zowel schaars als digitaal was, zonder dat deze schaarste afhankelijk was van vertrouwen in derde partijen. Ook moest dit betaalmiddel veilig zijn, het kon niet gestolen of afgepakt worden. Kortom, hij wilde digitaal goud maken.

In 1998 deelde hij zijn idee voor het eerst met de mailinglijst maar pas in 2005 had hij het helemaal uitgewerkt. Szabo borduurde voort op al het werk van zijn voorgangers. Een beveiligde keten van blokken, private en public keys, hashing en proof-of-work om nieuwe munten in omloop te brengen.

Hij voorzag overigens wel een probleem met proof-of-work. Om nieuwe munten te verdienen (nu noemen we dat minen) moet je bewijzen dat je werk hebt geleverd door een bepaald getal als eerste te vinden. Daar heb je veel elektriciteit voor nodig waar je weer voor moet betalen. Computers blijven alsmaar in kracht en efficiëntie toenemen, zo wordt het steeds makkelijk en sneller om proof-of-work te leveren, zonder dat het meer energie (work) kost.

Zijn oplossing was om oudere hashes (gevonden munten) waardevoller te maken. Dat kon door alles een timestamp mee te geven. Nieuwere hashes leverde minder munten op, omdat het simpelweg makkelijker en goedkoper is om die te vinden. Dit lijkt verdacht veel op de halving die bitcoin ook hanteert. Om de vier jaar wordt bij bitcoin namelijk de beloning voor mining gehalveerd.

Ook dit idee kwam niet verder dan de tekentafel.

Reusable proof-of-work, geld vaker uitgeven

Het zal je niks verbazen maar ook de volgende influencer van blockchain was lid van de mailinglijst. Hal Finney werkt sinds de jaren 90 aan software om versleuteld berichten te versturen. Deze software was zo krachtig, dat de Amerikaanse overheid verbood om dit te exporteren naar het buitenland. De software mocht zelfs niet aan buitenlanders worden laten zien.

Deze software staat weer aan de wieg van de techniek achter Tor.

Finney was (helaas is Finney te vroeg overleden) groot fan van digitaal geld en in het bijzonder het werk van Nick Szabo, de bedenker van BitGold. Finney combineert het idee achter digitaal geld met proof-of-work.

Zoals eerder beschreven is proof-of-work bedoeld om e-mailspammers tegen te gaan. Daarbij moest alleen aangetoond worden dat er werk (energie en dus geld) achter zit, dan kan je je e-mail verzenden. Maar als je e-mail vervangt voor digitaal geld, dan zou het zonde zijn als je geld maar één keer kan gebruiken. In een normale economie kan je geld uitgeven in een winkel, en de winkel kan dat geld weer uitgeven bij een groothandel.

Op basis van proof-of-work kon dat nog niet. Het geld kon alleen naar de winkel verstuurd worden, verder niet. Finney bedacht het concept van reusable proof-of-work. Hierbij kon dat geld door de winkelier wel worden uitgegeven bij een groothandel. Dat werkt zo:

Je verstuurt een proof-of-work munt naar de winkel. Die winkel wisselt deze munt op een centrale server in voor een reusable proof-of-work munt. Deze kan de winkelier weer versturen naar de groothandel. De groothandel kan de reusable proof-of-work munt op de centrale server inwisselen voor een andere reusable proof-of-work munt etcetera.

Technisch gezien wordt elke munt dus maar één keer gebruikt maar voor de gebruikers op het netwerk voelt dat niet zo.

De originele transactie start een ketting van RPOW-transactie. Dit begint al op blockchain te lijken.

In eerste instantie was dit niet bedoeld als geld of om waarde te bewaren maar eerder om een bepaalde mate van computerinspanning weer te geven.

Peer-to-peer

Nog een belangrijke eigenschap van blockchain is dat het peer-to-peer is. Internet was oorspronkelijk ontworpen als een peer-to-peer-systeem, wat betekent dat de verschillende computers rechtstreeks met elkaar communiceerden. De voorloper van internet wordt Arpanet genoemd. Dit is ontwikkeld door het ministerie van defensie van de VS. Via dit net kon je berichten van de ene computer naar de andere computer sturen.
In de loop der jaren veranderde dit model langzaam en werd het internet gedomineerd door een zogenaamd client-servermodel.

In plaats van dat alle computers rechtstreeks met elkaar praten, waren er nu een paar grote servers waarmee alle computers verbonden waren om data vandaan te halen.

Begin 2000 werd dit systeem op z’n kop gezet. Peer-to-peer werd razend populair doordat je mediabestanden direct met elkaar kon delen, zonder dat er een derde partij tussen zit.

Het peer-to-peer netwerk is zo sterk als de gebruikers op dat netwerk.

Conclusie

Alle beschreven technische facetten kan je onderverdelen in drie categorieen:

  1. decentraal
  2. crypto(grafisch)
  3. currency

Dit leidde uiteindelijk tot de geboorte van bitcoin en blockchain zoals wij die nu kennen. Nakamoto combineert al deze concepten in zijn legendarische whitepaper. Daarin staat overigens niet een keer het woord blockchain.

De eerste alinea van de whitepaper zegt eigenlijk genoeg:

“Een volledig peer-to-peer versie van elektronisch geld staat toe om online betalingen direct te versturen van de ene partij naar de andere partij, zonder dat de betaling langs een financiële instantie gaat. Digitale handtekeningen zorgen voor een deel van de oplossing, maar de grootste voordelen gaan verloren als er nog steeds een vertrouwde derde partij vereist is om dubbele uitgaven te voorkomen.

Dit netwerk plaatst tijdstempels op transacties door ze te hashen in een constant groeiende keten van op hashes gebaseerde proof of work. De langste keten dient hierbij niet louter als bewijs van de volgorde van waargenomen gebeurtenissen, maar bewijst dat deze geleverd is door de grootste verzameling van CPU-kracht.“

1 BTC = €91,031.57
BCH = €427.71
ETH = €3,199.20
XRP = €2.06
LTC = €97.40
Bitcoin kopen