Module 3 van 8

Technische geschiedenis van Bitcoin

3.0 Inleiding

De samenvatting van het Bitcoin White Paper

Een puur peer-to-peer versie van elektronisch geld zou het mogelijk maken om online betalingen rechtstreeks van de ene partij naar de andere te sturen zonder tussenkomst van een financiële instelling. Digitale handtekeningen bieden een deel van de oplossing, maar de belangrijkste voordelen gaan verloren als er een vertrouwde derde partij nog steeds nodig is om dubbel uitgeven te voorkomen. Wij stellen een oplossing voor het probleem van dubbel uitgeven voor met behulp van een peer-to-peer netwerk. Het netwerk voorziet transacties van een tijdstempel door ze te hashen in een voortdurende keten van hash-gebaseerd proof-of-work, waarmee een registratie wordt gevormd die niet kan worden gewijzigd zonder het proof-of-work opnieuw uit te voeren. De langste keten dient niet alleen als bewijs van de volgorde van gebeurtenissen, maar ook als bewijs dat deze afkomstig is van de grootste pool van rekenkracht (CPU power). Zolang de meerderheid van de rekenkracht wordt gecontroleerd door nodes die niet samenwerken om het netwerk aan te vallen, zullen zij de langste keten genereren en aanvallers voorblijven. Het netwerk zelf vereist minimale structuur. Berichten worden op basis van best effort uitgezonden, en nodes kunnen het netwerk naar wens verlaten en opnieuw toetreden, waarbij ze de langste proof-of-work keten accepteren als bewijs van wat er is gebeurd terwijl ze weg waren.

Bitcoin is niet uit het niets ontstaan, maar is gebouwd op het werk van velen in de voorgaande decennia. In deze module verkennen we de fundamenten van het internet waarop Bitcoin voortbouwt, evenals het onderzoek en de ontwikkeling die in het whitepaper worden erkend.

In de jaren 70 keek een groep individuen naar hoe de Amerikaanse overheid in het bijzonder probeerde de toegang tot cryptografie te beperken, en zij zetten zich ervoor in om ervoor te zorgen dat deze technologie voor iedereen beschikbaar zou zijn om hun privacy online te beschermen. Sommige van deze vroege pioniers richtten zich ook op de potentiële voordelen van een digitaal ‘sound money’ systeem dat gebruikt kon worden om waarde op te slaan en uit te wisselen via het opkomende internet. Friedrich Hayek – een toonaangevende bijdrager aan de Oostenrijkse economie – voorzag al ruim voor het internettijdperk hoe een ideale valuta gebaseerd op vrije marktwerking eruit zou zien, maar vond het technisch en politiek onhaalbaar. Naast digitale privacy probeerde deze groep, die later de Cypherpunks werd, Hayeks visie voor digitaal geld te realiseren, maar deze pogingen mislukten tot Satoshi zijn ideeën op de mailinglijst publiceerde.

  • TCP/IP-protocol (1976)
  • Protocollen voor Public Key Cryptosystemen - Ralph Merkle (1980)
  • Digicash - David Chaum (1989)
  • Digitale tijdstempeling (jaren 90)
  • Hashcash - Adam Back (1997)
  • BitTorrent - Bram Cohen (2001)
  • Herbruikbare POW - Hal Finney (2004)
  • Bitcoin Whitepaper - Satoshi Nakamoto (2008)

Een belangrijke invloed op de ontwikkeling van Bitcoin was de opkomst van de Cypherpunk-beweging in de jaren 90. Zij ontwikkelden verschillende cryptografische technologieën, waaronder public-key cryptografie, waarmee gebruikers veilig en privé konden communiceren en informatie delen. Veel van de hier beschreven ontwikkelingen en betrokken personen maakten deel uit van deze groep.

De behoefte aan digitaal geld werd ook onderkend en er werden verschillende pogingen gedaan om het te creëren, maar deze hadden beperkingen waardoor ze niet succesvol waren. Het genie van Satoshi Nakamoto was om deze mogelijkheden samen te brengen en, met enkele eigen innovaties, hierop voort te bouwen om het Bitcoin-protocol te creëren dat vandaag de dag wordt gebruikt. In de volgende secties zullen we enkele van deze ontwikkelingen verkennen en uitleggen hoe ze hebben bijgedragen aan het ontwerp van Bitcoin. We bespreken ook welke ontbrekende puzzelstukken Satoshi wist op te lossen.

3.1 De ontwikkeling van TCP/IP

De meesten van ons zijn bekend met de TCP/IP-protocollen die tegenwoordig worden gebruikt als de basis van het internet. Hun oorsprong gaat terug tot het einde van de jaren 70, toen wetenschappers alternatieve ontwerpen voor Arpanet onderzochten – een nog eerder netwerk dat werd bedacht door het Amerikaanse Ministerie van Defensie om het delen van middelen tussen computers op afstand mogelijk te maken. TCP/IP werd in 1983 de protocolstandaard voor Arpanet, wat ertoe leidde dat het tegen het einde van de jaren 90 het dominante netwerkmodel werd en de basis vormde voor het internet waarop Bitcoin vandaag draait.

OSI-model TCP/IP
Applicatie Applicatie
Presentatie Applicatie
Sessie Applicatie
Transport Transport
Netwerk Netwerk
Datalink Datalink
Fysiek Fysiek

Tegelijkertijd met de ontwikkeling van het TCP/IP-model werd er een vergelijkbaar maar uitgebreider raamwerk ontwikkeld door de International Standards Organisation (ISO) en de telecomindustrie (CCITT). Het proces om nieuwe protocollen te ontwikkelen of wijzigingen voor te stellen verliep traag en omslachtig in vergelijking met de meer gedecentraliseerde aanpak die werd gebruikt voor de ontwikkeling van TCP/IP, wat heeft geleid tot de dominantie van deze aanpak vandaag de dag.

Verzoek tot wijziging

Alle voorgestelde ontwikkelingen aan bestaande protocollen of ideeën voor nieuwe kunnen in het TCP/IP-model worden voorgesteld via een Verzoek tot wijziging proces. Deze doorlopen een goedkeuringsproces, beheerd door de Internet Engineering Task Force (IETF), en worden open source zodra ze zijn goedgekeurd, zodat iedereen ze kan implementeren en overnemen. Enkele opmerkelijke voorbeelden:

  • 1969 RFC 1 Documenteerde hoe pakketten zouden worden verzonden in het Arpanet
  • 1981 RFC791 definieerde het Internet Protocol V4 – nog steeds veel gebruikt vandaag
  • 1982 RFC 821 Simple Mail Transfer Protocol
  • 1987 Domain Name System – hoe domeinnamen worden omgezet naar IP-adressen
  • 1999 RFC 2616 Hypertext Transfer Protocol – essentieel voor het surfen op het web

De Bitcoin Improvement Proposal (BIP) volgt een vergelijkbare aanpak als RFC, maar richt zich puur op verbeteringen aan Bitcoin zelf in plaats van de ontwikkeling van nieuwe of alternatieve protocollen. Bitcoin leent ook van dit gelaagde model, en je zult extra protocollen zien die worden beschreven als laag twee of drie.

Op dezelfde manier als de basislagen van het TCP/IP-model de afgelopen decennia relatief weinig zijn veranderd, met innovatie die plaatsvindt op hogere lagen, wordt verwacht dat de basislaag van Bitcoin op dit moment zeer langzaam zal veranderen, met schaaloplossingen zoals Lightning en Liquid die daarboven plaatsvinden.

Een goed voorbeeld van hoe basislaagprotocollen na verloop van tijd moeilijk te veranderen worden, is IPv6. De verwachte uitputting van het adresbereik in IPv4 creëerde een vraag naar een nieuw protocol. De eerste conceptstandaard werd in 1998 opgesteld, maar pas in 2017 als internetstandaard bekrachtigd. Hoewel het veel problemen met IPv4 oploste en veel toekomstbestendiger is, is de adoptie ervan in de industrie vandaag nog steeds erg traag. In deze periode zijn er op de bovenste lagen veel nieuwe protocollen gedefinieerd om multimedia, e-mail, enz. mogelijk te maken.

De bouwstenen die door Bitcoin worden gebruikt

Deze scheiding van de problemen van onderlinge connectiviteit maakt het mogelijk dat protocollen onafhankelijk van de lagen erboven en eronder kunnen worden ontwikkeld. In plaats van oplossingen voor elke laag opnieuw te moeten uitvinden, kan het Bitcoinnetwerk vertrouwen op de onderliggende mogelijkheden van het netwerk die op de fysieke en datalinklagen worden geleverd.

Laag TCP/IP Oorspronkelijk
Applicatie Gebruikt Domain Name System (DNS) om naburige nodes te identificeren. Poort 8333 signaleert Bitcoin-protocol.
Transport UDP voor FIBRE-communicatie tussen miners voor lage latentie. TCP voor P2P-communicatie tussen nodes.
Transport TOR-routing: Maakt anonimiteit en privacy mogelijk. Broadcast-protocol: Routeert verkeer over het netwerk.
Link Werkt over elk medium (bijv. Ethernet, Wi-Fi, enz.)
Fysiek Fysieke transmissie via draadloos, Ethernet of andere hardware-interfaces.
Bitcoin is een neutraal protocol om waarde over te dragen, zoals HTTPS een protocol is om informatie over te dragen
  • HTTPS: Beveiligde websites
  • SMTP: E-mails verzenden
  • FTP: Bestanden overdragen
  • DNS: Domeinnamen beheren
  • BTC: Waarde opslaan en overdragen

Bitcoin maakt het mogelijk om waarde betrouwbaar en zonder tussenkomst van een derde partij tussen mensen of apparaten via het internet te verplaatsen. Dit zal naar verwachting enorme waarde ontsluiten.

3.2 Publieke-sleutelcryptografie en protocollen

Het internet van vandaag, en de meeste moderne computersystemen, zijn afhankelijk van cryptografie, een methode om informatie te verhullen zodat alleen de ontvanger van de informatie deze kan ontcijferen. De fundamenten van de cryptografie die wordt gebruikt om Bitcoin te beveiligen, zijn terug te voeren tot de jaren 70.

Het eerste probleem dat opgelost moet worden is: hoe stuur je een gedeeld geheim over een onbeveiligd medium.

Dit werd voor het eerst onderzocht door Whitfield Diffie en Martin Hellman.

Het probleem: de twee partijen – meestal aangeduid als Alice en Bob – willen geheime informatie delen via een netwerk waar anderen mogelijk meeluisteren. Om dit te bereiken, hebben ze het Diffie-Hellman-sleuteluitwisselingsproces gecreëerd.

Dit gedeelde geheim kan vervolgens worden gebruikt als uitgangswaarde om talloze symmetrische sleutels te creëren om berichten te versleutelen en te ontsleutelen die ze naar elkaar sturen, zonder de sleutel zelf openbaar te maken.

Omdat de privésleutel nooit gedeeld hoeft te worden, en aan beide kanten verschillende sleutels worden gebruikt om te versleutelen en te ontsleutelen, wordt dit een asymmetrisch encryptie-algoritme genoemd.

Toepassingen:

  • Alice ondertekent een bericht met Bobs publieke sleutel – hij is de enige die het kan ontsleutelen met zijn privésleutel
  • Alice ondertekent een bericht met haar privésleutel – door te ontsleutelen met haar publieke sleutel kan iedereen verifiëren dat het bericht door Alice is verstuurd, zonder haar privésleutel te kennen
  • Door deze twee benaderingen te combineren met twee lagen van encryptie, kan een bericht versleuteld worden verzonden zodat alleen Bob het kan ontsleutelen, en kan hij vervolgens verifiëren dat de afzender daadwerkelijk Alice was.

Hoewel hij niet als auteur op het artikel stond, was Ralph Merkle van groot belang bij het helpen oplossen van wat tot dan toe als een onoplosbare puzzel werd beschouwd – hoe privécommunicatie tot stand te brengen of te herstellen via een open en mogelijk vijandig netwerk.

Deze aanpak is op zichzelf vatbaar voor een brute-force aanval, waarbij een aanvaller de gedeelde getallen kan nemen en uiteindelijk een gedeelde sleutel kan reconstrueren, mits voldoende tijd en middelen, dus het is op zichzelf niet de volledige oplossing.

Protocollen voor Public Key Cryptosystemen

Naast zijn bijdrage aan het hierboven beschreven Diffie-Hellman public-key systeem,Ralph Merkle bleef jarenlang bijdragen aan dit vakgebied en was van groot belang bij de ontwikkeling van enkele belangrijke componenten die door Bitcoin worden gebruikt.

Een cryptografische hashfunctie is een wiskundig algoritme dat invoer van elke grootte neemt en complexe berekeningen uitvoert om een hashwaarde in bits terug te geven, die meestal wordt weergegeven als een alfanumerieke uitvoer van vaste lengte in hexadecimale notatie.

  • Invoer kan elke grootte hebben
  • De uitvoer is altijd van vaste lengte en deterministisch (dezelfde invoer levert elke keer dezelfde hash op)
  • Het is eenvoudig te verifiëren, maar buitengewoon moeilijk om het proces om te keren om de invoer te bepalen
  • Een kleine wijziging van de data verandert de uitvoer volledig
Hash function

Hashing is een integraal onderdeel van het Bitcoin-protocol. SHA-256, gebruikt in Bitcoin, is ontwikkeld door de NSA en is een voorbeeld van een cryptografisch hash-algoritme.

  • Elk blok in de keten wordt gehasht zodat data niet kan worden gewijzigd – dit waarborgt de integriteit van het gedistribueerde grootboek.
  • De gegenereerde hash moet voldoen aan de ‘Proof of work’-criteria om als een geldig blok te worden beschouwd.
  • Merkle-bomen – door gebruik te maken van vertakkingen en hashes van hashes, kunnen hashbomen de verificatie van grote datasets mogelijk maken met minimale opslag.
  • Op hashes gebaseerde handtekeningen en sleutels kunnen worden gebruikt voor wallets, adressen en autorisatie van transacties.

Gedecentraliseerde verificatie van blockchain-toestanden en append-only grootboekmodellen die bestand zijn tegen aanpassing, worden mogelijk gemaakt door eenrichtings-hashing. Hashfuncties bieden de betrouwbare, deterministische methode om gebeurtenissen op openbare grootboeken zoals Bitcoin te verifiëren zonder een gecentraliseerd vertrouwensmodel.

Van deze nieuwe mogelijkheden op het gebied van cryptografie werd door de bedenkers verwacht dat ze een nieuwe golf van innovatie zouden inluiden.

Elliptische kromme cryptografie

Een van deze latere innovaties kwam in de vorm van elliptische kromme cryptografie.

Elliptische kromme cryptografie werd in 1985 geïntroduceerd door twee wetenschappers, N. Koblitz en V. Miller. Zij stelden voor om punten te gebruiken die worden gedefinieerd door elliptische krommen in plaats van eindige priemvelden, zodat de aanname van het Discrete Logaritme probleem blijft gelden, zoals gebruikelijk is in het standaard Diffie-Hellman sleuteluitwisselingsprotocol. De details van hoe dit werkt vallen buiten de scope van deze sectie, maar op hoofdlijnen is een elliptische kromme de verzameling punten die voldoen aan een specifieke wiskundige vergelijking.

De vergelijking voor een elliptische kromme ziet er ongeveer zo uit:

Elliptic curve

Dit heeft enkele nuttige eigenschappen:

  • Horizontale symmetrie. Elk punt op de kromme kan worden gespiegeld over de x-as en blijft op dezelfde kromme.
  • elke niet-verticale lijn zal de kromme op maximaal drie plaatsen snijden.
  • Compacte sleutellengtes zijn essentieel voor efficiënte opslag en overdracht van publieke sleutels in de blockchain.

Deze eigenschappen kunnen worden gebruikt om sleutelpaaren te maken op een vergelijkbare manier als bij het Diffie-Hellman-algoritme. Bitcoin gebruikt ECDSA, wat staat voor Elliptic Curve Digital Signature Algorithm. Dit is een proces dat een elliptische kromme en een eindig veld gebruikt om data te 'ondertekenen' op een manier waarop derden de authenticiteit van de handtekening kunnen verifiëren, terwijl de ondertekenaar het exclusieve vermogen behoudt om de handtekening te maken. Bij bitcoin is de data die wordt ondertekend de transactie die het eigendom overdraagt.

Het ‘eindige’ deel is vergelijkbaar met de ‘mod’-benadering bij Diffie-Hellman, waarbij de uitkomst van de vergelijking wordt gedeeld en de rest wordt gebruikt om ervoor te zorgen dat deze binnen een bepaald bereik van getallen past.

3.3 DigiCash

Een van de vroege deelnemers aan de ‘nieuwe golf van interesse’ in cryptografie was David Chaum. Hij bracht zijn vroege jaren door met het leren kraken van computersystemen en zijn succes leidde tot een wantrouwen tegenover zogenaamd ‘veilige’ systemen. Ook herkende hij een probleem dat tot dan toe niet was overwogen: "hoe houd je geheim wie met wie en wanneer communiceert".

Hij ontwierp een anoniem e-mailprotocol met behulp van publieke sleutelcryptografie dat berichten ‘mixte’ om de bron en bestemming anoniem te houden. Dit zou de basis worden voor het TOR-netwerk.

Chaum zag digitale betalingen op dezelfde manier – hij realiseerde zich dat ‘traceerbare financiële transacties van een individu veel kunnen onthullen over de verblijfplaats, contacten en levensstijl van die persoon’. In 1980 patenteerde hij een digitaal geldsysteem beveiligd door cryptografie, dat de basis zou vormen voor cryptocurrency. Ook begon hij het idee te verkennen om cryptografie te gebruiken om een volledig gedecentraliseerde economie te creëren, gebaseerd op de decentralisatie van berichtenverkeer en betalingen.

Overheden zijn goed in het onthoofden van centraal gecontroleerde netwerken zoals Napster, maar pure P2P-netwerken zoals Gnutella en TOR lijken zich staande te houden.
Satoshi Nakamoto

Gedecentraliseerde systemen zonder centrale autoriteit – peer-to-peer – bieden verschillende voordelen:

  • Ze kunnen snel groeien omdat iedereen het systeem kan uitbreiden door simpelweg een nieuwe node te draaien, zonder registratie of goedkeuring.
  • Alle nodes zijn gelijk, dus bij uitval kan het verkeer worden omgeleid.
  • Er is geen centrale autoriteit die het systeem kan overnemen of compromitteren.
  • Ze zijn moeilijker te overnemen, reguleren, belasten of surveilleren zonder gecentraliseerde controlepunten.

Tien jaar later richtte hij zijn bedrijf Digicash op om ‘ecash’ te creëren, het eerste digitale geldsysteem ter wereld. Veel bekende namen sloten zich een tijdlang aan bij Digicash, dat enig succes kende maar uiteindelijk faalde en failliet werd verklaard.

Verdere ontwikkelingen in digitaal geld

In een forumbericht van juli 2010 zei Satoshi Nakamoto: “Bitcoin is een implementatie van Wei Dai’s b-money voorstel op Cypherpunks in 1998 en Nick Szabo’s Bit Gold voorstel.”

Hoewel geen van deze twee ideeën verder kwam dan het voorstelstadium, zijn sommige van de daarin gevonden ideeën duidelijk van invloed geweest op de ontwikkeling van Bitcoin:

  • Het gebruik van ‘Proof of work’ om monetaire waarde toe te kennen aan computationeel werk
  • Het concept dat de kosten van computationele arbeid in de loop van de tijd veranderen en moeten worden meegerekend

Maar eerst kijken we naar Hashcash.

3.4 Hashcash

Hashcash werd gecreëerd door Adam Back, een andere van de vroege vernieuwers in dit domein. Adam had een sterke interesse in vrije markten en privacy op het internet, en kwam terecht op de Cypherpunks-mailinglijst, waar hij zich bij aansloot en een actief deelnemer werd.

Hij was erg geïnteresseerd in digitaal geld en deed enkele suggesties over hoe de groep mogelijk nauwer zou kunnen samenwerken aan DigiCash met Chaum, maar daar kwam niets van terecht. Vervolgens richtte hij zijn aandacht op een ander opkomend probleem – e-mailspam. Hij en de rest van de Cypherpunks wilden een oplossing vinden voor het probleem van spam, waarbij het voor spammers triviaal was om duizenden e-mails te maken en te versturen die netwerken verstoppen. Zijn innovatieve oplossing was gebaseerd op hashing – de mogelijkheid binnen cryptografie om elk gegeven om te zetten in een unieke en willekeurige tekenreeks van een specifieke lengte, om zo het equivalent van een digitale ‘postzegel’ te creëren die aan de e-mail moest worden toegevoegd om deze als geldig te beschouwen en over het netwerk te verzenden. Een triviale kost voor een echte e-mail, maar onbetaalbaar voor een spammer.

De belangrijkste innovatie die Hashcash bracht, was het koppelen van echte middelen – rekenkracht – aan een digitaal netwerk. Terwijl digitale middelen tot dan toe onbeperkt konden worden gerepliceerd, werd het aantal gecreëerde ‘hashcash’ beperkt door hoeveel energie mensen bereid waren erin te steken.

Hoewel de oplossing aan enkele van de criteria voldeed waarvan Adam dacht dat ze nodig waren in een digitaal geldsysteem; het was anoniem, veerkrachtig en trustless, was elke hashcash niet herbruikbaar en niet echt schaars. Hij stelde andere manieren voor waarop deze problemen konden worden aangepakt met behulp van externe derde partijen.

BitGold

Nick Szabo bouwde voort op het concept van Hashcash en proof of work om een alternatieve oplossing voor te stellen, die hij beschreef op een mailinglijst een jaar nadat Hashcash werd gepubliceerd, in 1998.

Hoewel dit voorstel dichter bij een oplossing kwam, waren er nog steeds verschillende uitdagingen.

  • Wie zou het register van hash-eigendom beheren en hoe kan men hen vertrouwen?
  • Hashing zou over het algemeen goedkoper worden na verloop van tijd, wat ook een uitdaging was voor HashCash.

Omdat de gekoppelde hashes van een tijdstempel zouden worden voorzien, stelde hij een vorm van historische tracking voor van de moeilijkheidsgraad van hashing op dat moment; een eerdere hash zou meer verwerkingskosten vereisen dan een latere, omdat de kosten zijn gedaald. Helaas betekende dit dat hashes niet ‘fungibel’ zouden zijn, d.w.z. van gelijke waarde, wat als een belangrijk kenmerk van digitaal geld wordt beschouwd. Om dit op te lossen stelde Nick een vorm van ‘vrij bankieren’ voor bovenop BitGold, waarmee verschillende groepen hashes konden worden samengevoegd die dan als gelijkwaardig zouden worden gewaardeerd.

B-Money

Kort na het Bit Gold-voorstel kwam Wei Dai met een vergelijkbare oplossing. Hij had al verschillende andere tools voor de Cypherpunks ontwikkeld en had zijn eigen ideeën over digitaal geld.

Zijn voorstel leek op Bit Gold doordat het digitale handtekeningen gebruikte om geld over te dragen, en de transactieregisters zouden worden opgeslagen op een grootboek, met daarin openbare sleutels en het aantal valuta-eenheden dat aan elk werd toegeschreven. Net als bij Bit-Gold werden vertrouwde derde partijen als beveiligingslekken beschouwd, en men geloofde dat een elektronisch geldsysteem niet afhankelijk mocht zijn van één enkele entiteit om saldi, transacties of het voorkomen van dubbele uitgaven bij te houden.

Wei Dai stelde verschillende oplossingen voor deze problemen voor, waarvan één was dat in plaats van een centrale entiteit(en) die het grootboek bijhoudt, ALLE nodes een kopie zouden bijhouden. Als alle gebruikers hun eigen grootboek en de geldigheid van elke transactie controleerden, zouden de grootboeken gesynchroniseerd moeten blijven over het netwerk zolang alle nodes up-to-date blijven. Dit sterk gedistribueerde systeem zou moeilijk te corrumperen zijn.

Wei Dai erkende dat dit het Byzantijnse generaalsprobleem (1) niet oploste, omdat nodes gemakkelijk synchronisatie konden verliezen of simpelweg konden liegen. Hij stelde alternatieve methoden voor, zoals het hebben van een subset van ‘vertrouwde’ servers die het grootboek bijhouden, en het creëren van financiële prikkels om deze servers eerlijk te houden.

Voor het monetair beleid stelde hij voor de koopkracht van B-Money te koppelen aan een externe consumentenprijsindex. Hij wilde dat dezelfde hoeveelheid B-Money een gelijk aandeel in de index zou kunnen kopen in de loop van de tijd, om zo enige prijsstabiliteit te bieden. Iedereen zou nieuwe valuta-eenheden kunnen genereren door een geldige hash te leveren, maar de moeilijkheidsgraad van het genereren van een hash zou in de loop van de tijd kunnen veranderen op basis van CPU-kosten en de prijsindex, zodat elke eenheid ‘onveranderlijk’ zou zijn.

3.5 BitTorrent

Een ander project dat een belangrijke rol speelde in de ontwikkeling van cryptovaluta voorafgaand aan bitcoin is BitTorrent.

In 2001 bracht Bram Cohen een ontwerp uit voor een protocol genaamd BitTorrent, dat bedoeld was om een peer-to-peer bestandsdelingssysteem aan te drijven. Hij begon te werken bij een bedrijf genaamd MojoNation, dat was opgezet om mensen in staat te stellen vertrouwelijke bestanden op te splitsen in versleutelde stukjes die verspreid werden over computers met de software. Een kopie van het bestand zou gelijktijdig van meerdere computers worden gedownload. Hoewel het uiteindelijk mislukte, maakte het Cohen bekend met de wereld van bestandsdeling, waar hij besloot dat hij een beter protocol kon maken, dat bestond uit:

  • Swarm: een gemeenschap van machines die content downloaden of uploaden
  • Tracker: een speciaal hulpmiddel dat vergelijkbaar werkt als een zoekmachine, maar bijhoudt welke bestanden zich binnen de swarm bevinden. Hierdoor kunnen gebruikers eenvoudig zien en toegang krijgen tot elk bestand dat ze nodig hebben
  • BitTorrent-client: geïnstalleerd op een computer om toegang te krijgen tot de tracker. Let op: de swarm is de enige plek waar de bestanden daadwerkelijk worden bewaard
  • Een beloningssysteem waarbij gebruikers die deelnemen aan het netwerk als bestandsdelers snellere downloads krijgen

Overeenkomsten met Bitcoin:

  • Beide protocollen werken op peer-to-peer basis
  • Gedecentraliseerd ontwerp
  • BitTorrent-bestanden en het Bitcoin-grootboek zijn verspreid over het netwerk
  • Open-source oorsprong (BitTorrent werd uiteindelijk gesloten bron software)

3.6 Hergebruikbaar bewijs van werk

Hal Finney is een ander beroemd lid van de Cypherpunk-beweging, die zeer geïnteresseerd was in de ontwikkeling van elektronisch geld en actief was op de mailinglijst.

Hij besloot een nieuwe poging te wagen om een elektronisch geldsysteem op basis van proof-of-work te ontwikkelen. Tot op dat moment was de hash-uitvoer uniek voor elke transactie, maar zijn idee was om ‘herbruikbare bewijzen van werk’ te creëren.

Het nadeel van deze aanpak is de gecentraliseerde server, die vertrouwd moet worden om niet dubbel te besteden of offline gehaald te worden. Om dit te omzeilen stelde Hal voor om vrije en open source software te gebruiken die op een beveiligde hardwarecomponent gehost kon worden en onafhankelijk gevalideerd kon worden.

De oplossing had nog steeds te maken met enkele van dezelfde problemen als de andere voorstellen:

  • Het ‘kip-en-ei’-probleem van adoptie, waarbij een prikkel ontbreekt voor gebruikers om tokens te willen aanvragen, en verkopers niet willen aansluiten op het systeem tenzij gebruikers met deze tokens willen betalen.
  • Proof-of-work zal waarschijnlijk ook goedkoper worden naarmate de computerprestaties verbeteren, wat suggereert dat de markt uiteindelijk overspoeld zou worden met RPOW-valuta-eenheden.
Als de wet van Moore blijft gelden, zullen de kosten voor het creëren van een (POW)-token gestaag en exponentieel dalen. Houd er rekening mee dat dit geen geld is en niet bedoeld is als waardeopslag, maar eerder een gemakkelijk uitwisselbare representatie van computerinspanning.
Hal Finney

Deze eigenschappen beperkten de aantrekkingskracht en daarmee de adoptie van het project, en ondanks zijn beste inspanningen eindigde het project als weer een mislukte poging om elektronisch geld te creëren.

3.7 Bitcoin

Na vele jaren en mislukte pogingen waren de Cypherpunks grotendeels hun interesse in het idee van een digitale, permissieloze munt verloren, toen Adam Back een e-mail ontving met een link naar een concept-whitepaper getiteld ‘elektronisch geld zonder derde partij’ van een anoniem persoon die zichzelf Satoshi Nakamoto noemde.

Om tot nu toe samen te vatten, hebben we in ieder geval de volgende ideeën:

  • Cryptografische handtekeningen die een bepaald niveau van privacy en anonimiteit konden bieden
  • Het concept van een niet-gedekte valuta (B-Money)
  • Voorstellen (maar geen middelen) om de uitgifte van nieuwe valuta te beperken
  • Digitale munten waarvan het eigendom werd toegekend via publieke sleutels (B-Money) en die konden worden verplaatst door te ondertekenen en opnieuw toe te wijzen op basis van het adres van de ontvanger (RPOW en Hashcash)
  • Alle nodes onderhouden een kopie van een volledig gedistribueerd grootboek (B-Money) (destijds als onpraktisch afgedaan)
  • Tijdstempelprotocol – met behulp van Merkle-boom hashing om een wiskundig bewijsbare chronologie van gebeurtenissen te bieden die moeilijk te vervalsen is als alle gebruikers dezelfde gegevens bijhouden
  • Proof of work om echte wereldinspanning aan het systeem te koppelen (maar waarbij de hash zelf als valuta werd gebruikt)
  • Volledig gedecentraliseerde netwerken waarin alle peers gelijk zijn en vrij kunnen komen en gaan uit het netwerk (BitTorrent)
  • Het concept om nieuwe hashes aan eerdere hashes te koppelen (Bit Gold en tijdstempeling)

Wat op dat moment nog ontbrak, was onder andere:

  • Een werkbare oplossing voor het ‘Byzantijnse generaalsprobleem’
  • Een methode om de hoeveelheid geld in omloop te beperken ondanks voortdurende hardwareverbeteringen
  • Een incentiveschema voor mensen om deel te nemen (kip-en-ei-probleem)

Het andere grote verschil tussen recente pogingen en Bitcoin was dat Satoshi al enige tijd aan de code werkte in de ware ‘Cypherpunks schrijven code’-geest voordat hij het aankondigde op de mailinglijsten, in tegenstelling tot Bit Gold en B-Money die meer conceptueel waren.

Wat was de innovatie die Bitcoin onderscheidde van eerdere pogingen tot elektronisch geld?

Proof of work zou worden gebruikt als consensusmechanisme en als manier om veiligheid en onveranderlijkheid te bieden: In plaats van de hash als vorm van geld te gebruiken, zou deze worden gebruikt door een nieuw conceptueel proces genaamd mining, waarbij een node een set transacties zou bundelen, een willekeurig getal zou toevoegen en vervolgens hashing zou toepassen op het ‘blok’ met data. Een geldig blok dat aan de hashvereiste voldeed, zou vervolgens aan het netwerk worden geadverteerd. Deze blokken zouden aan elkaar worden gekoppeld door de hash van het vorige blok in elk, en de langste blockchain zou worden gebruikt in het geval van een tiebreaker waarbij verschillende nodes verschillende blokken tegelijkertijd zouden valideren en adverteren, wat kettingsplitsingen veroorzaakt. Proof of work werd de gedistribueerde tiebreaker om het Byzantijnse generaalsprobleem op te lossen.

Deze miners kregen ook een stimulans om de benodigde CPU te leveren voor het uitvoeren van de proof-of-work door nieuwe bitcoin toegewezen te krijgen voor elk blok. Het aantal Bitcoin dat ze ontvangen is ook geprogrammeerd om ongeveer elke 4 jaar te dalen totdat alle Bitcoin is gecreëerd, waardoor er een harde limiet ontstaat op het totale aantal Bitcoin dat ooit in omloop zal zijn van 21 miljoen.

Het meest originele idee was de manier waarop hij het probleem oploste van hoeveel geld er wordt gecreëerd naarmate hardware verbetert en er meer rekenkracht op het netwerk kan worden toegepast. De tijdstempels van een vast aantal blokken (2016) zouden worden gemiddeld, en als ze te snel worden aangemaakt, zou de hash die nodig is om een nieuw blok te maken moeilijker worden, en als het te langzaam gaat, zou het makkelijker worden. Dit was ingebouwd in het gedecentraliseerde protocol dat alle nodes draaien, dus elke miner die dit negeert, zou energie verspillen aan het minen van een blok zonder voordeel, omdat het door de rest van het netwerk zou worden afgewezen. Deze aanpassing zorgt ervoor dat de creatie van nieuwe blokken op het geplande uitgifteschema blijft en biedt incentives voor miners om zich ‘aan de regels te houden’.


Samenvatting

Veel van de puzzelstukjes die nodig zijn om een gedecentraliseerd peer-to-peer elektronisch geldsysteem te bouwen op basis van solide geldprincipes, waren al aanwezig voordat Satoshi zijn whitepaper uitbracht en kort daarna de eerste versie van de code.

De aard van Bitcoin is zodanig dat zodra versie 0.1 werd uitgebracht, het kernontwerp voor de rest van zijn bestaan in steen gebeiteld was
Satoshi Nakamoto

Hoewel er veel ideeën voor verbeteringen (BIPs) zijn voorgesteld en aangenomen, werkt Bitcoin sinds 2009 op de achtergrond volgens het protocol dat in de eerste release is ontworpen en met nauwelijks enige verstoring. Alle verbeteringen zijn doorgevoerd met behoud van achterwaartse compatibiliteit met alle eerdere versies.

Notities
  1. Voor een uitleg van het Byzantijnse generaalsprobleem - zie https://nl.wikipedia.org/wiki/Byzantijnse_generaal

↑ Terug naar inhoudsopgave