Wat Byzantijnse generalen, blockchain en vertrouwen met elkaar te maken hebben

Blockchain het ‘buzzwoord’ van de afgelopen tijd. De meeste van ons zullen weleens van bitcoin gehoord hebben en een enkeling wellicht van ethereum. Buiten, speculatie op de waarde van de bijbehorende tokens, zijn de cryptocurrencies ook nog goed voor andere dingen en hebben te maken met een systeemverschuiving naar een decentrale manier van organizeren. Een decentrale aanpak was voorheen niet mogelijk, maar daar brengt de blockchain technologie verandering in. Het dwingt ons fundamenteel anders naar bepaalde zaken te kijken. Een overzicht vanaf het begin van het internet.

Het begin van het Internet: Het Web 1.0

Het Web 1.0 was een internet statische pagina’s zonder interactie. De gebruiker was gelimiteerd tot het lezen van informatie die slecht gepresenteerd werd aan de gebruiker. Er was geen communciatie tussen gebruiker en maker van de informatie. Ook was het Web 1.0 traag en niet echt gebruiksvriendelijk. Dit wordt het read-only web genoemd.

De eerste revolutie: Het Web 2.0

Het Web 2.0 revolutioneerde de bijdrage van de gebruiker en het web stond nu centraal om de gebruikerte  dienen door het de mogelijkheid te geven om er interactief mee om te gaan. Het is nu mogelijk om voor niet-technici blogs bij te houden (Twitter), video’s te uploaden en te delen (YouTube) of een vriendennetwerk bij te houden (Facebook), en zonder deze gebruikers zou er zelf helemaal geen platform zijn. Het web wat nu onstaat wordt nu een read-write-publish web genoemd.

De komende verandering: Het Web 3.0

Het Web 3.0 is de volgende stap. Met het maken van Web 2.0 hebben we grote gecentraliseerde bedrijven gecreerd die veel zeggenschap hebben over de data die we achter laten op die websites. Ook is de data die opgehaald wordt niet transparant en kun je geen inzage of zeggenschap krijgen over de data die verzameld wordt over jou. Hierdoor ben je kwetsbaar voor slechtwillende die de databases hacken of simpelweg jouw data kopen en jou beter leren kennen dan jezelf!

Hier brengt het Web 3.0 verandering in:

  • Geen centraal punt van controle meer; tussenpersonen worden verwijderd uit het Web en het platform bestaat uit algoritmes die direct van persoon tot persoon worden uitgevoerd. Hier kan geen buitenstaander mee knoeien.
  • Haal de tussenpersoon weg. De tussenpersoon eist een deel van de financiele waarde op, vaak zonder iets toe te voegen. Denk bijvoorbeeld aan internationale transacties. Het Web 3.0 leidt tot een netwerk dat peer-to-peer zonder tussenpersoon werkt.
  • Eigendom van je eigen data; Doordat het gedecentraliseerde en van persoon tot persoon direct gaat is er geen centrale database of bedrijf dat jouw data verzameld. Als je je eigen data wil verwijderen, kan dat!
  • Veiligheid van je data. Doordat je zelf je eigen data beheert ben je veel minder kwetsbaar voor hacks en datalekken.
  • Altijd service. Omdat het Web 3.0 gedecentraliseerd is, is er geen enkel punt waar het faalt. Een DDoS aanval zal geen impact hebben omdat er geen centrale server is waarop deze aanval kan aangrijpen.
  • Geen randvoorwaarden. Omdat er geen centrale beheerder is, zal niemand toegang ontzegd kunnen worden van het Web 3.0. Elke node kan deel uitmaken van het Web en uitsluiting is onmogelijk.

Voorbeelden

Hieronder staan al enkele voorbeelden van belangrijke centrale diensten die anders aangepakt worden in een Web 3.0 aanpak. De naam veranders van apps (applicaties) naar DApps (decentrale applicaties). Zo heb je bijvoorbeeld Dropbox, dat een centrale opslaglocatie in de cloud voor gegevens biedt naar Storj of IPFS. Zij leveren dezelfde service alleen decentraal. Zij gebruiken opslagplaats die ongebruikt is bij gebruikers, die vervolgens tokens krijg voor de geleverde dienst. Zo onstond er een peer-to-peer netwerk van datacenters. Dat betekent dat voor de gebruiker bijna alles hetzelde blijft alleen achter de schermen verandert het radicaal. De gebruiker is de baas!

Hoe decentraliseer je veilig?

Deze decentrale utopie heeft al vaker de mensen doen bekoren, alleen het heeft nooit tot werkelijkheid mogen komen omdat niet wist hoe je een robuust decentrale database kon bouwen. Dit veranderde in 2009 met de komst van bitcoin en de blockchain, wat ook wel decentrale logboek technologie (DLT) wordt genoemd. Laten we beginnen met een probleem, waarop DLT antwoord kan geven; het veilig decentraliseren van conensus tussen verschillende en soms corrupte actoren.

Het probleem met decentralisatie: De Byzantijnse Generalen

Image result for byzantine general problem

Verschillende generalen in het Byzantijnse legers behorende tot verschillende stadsstaten willen plannen maken om de rijke hoofdstad Byzantium aan te vallen met als doel deze stad te plunderen. De stad is omsingeld en de enige manier waarop gecommuniceerd kan worden is via briefwisseling die doorgegeven wordt via bode’s. De aanval zal pas slagen als minstens 51% van de legers tegelijk de aanval uitvoert. Sommige van de Generalen zijn echter verraders en kunnen niet vertrouwd worden dat ze de juiste boodschap doorgeven en niet stiekem veranderen en voor het feit dat ze zelf verkeerde informatie kunnen vespreiden. Er moet dus een consensus gevonden worden in een netwerk waar geen vertrouwen is tussen de generaals onderling.

Het eerste probleem (van het veranderen van de informatie) wordt opgelost door prive/publieke encryptie en het gebruiken van unieke sleutels. Dit kan je je voorstellen als een wassen zegel, die authenticiteit garandeert. Hierover zo meer. Het tweede probleem (van zelf verkeerde informatie verspreiden in het netwerk) wordt opgelost door de blockchain technologie. Dit kan je je voorstellen door het toevoegen van een rekensom aan het einde van het bericht wat een generaal rondstuurt.

Stel een generaal begint het logboek waarin staat: Morgen vallen we aan. Hij verzegeld het, zodat iedereen weet dat het van hem komt en voegt er een rekensom aan toe die uniek is voor het feit dat er staat dat hij morgen aan wil vallen. Dit stuurt hij naar alle generaals. Doordat de som uniek is voor de booschap, kan de booschap niet veranderd worden. Alle andere generaals proberen de som op te lossen, en dat duurt een tijdje, zeg 10 minuten. Zodra een generaal het probleem heeft opgelost, kan hij zijn eigen boodschap toevoegen, bijvoorbeeld: Ik ben het eens met de aanvalstijd. Nu komt er een nieuwe som, en die wordt weer naar iedereen verstuurt en begint het proces van voor af aan. Als corrupte generaals dit proces willen dwarsbomen zullen ze dus sneller de som moeten oplossen dan de eerlijke generaals. Om dit te kunnen doen moeten er meer dan 50% corrupte generaals in het netwerk zitten.

De Oplossing: Publieke/Prive Sleutels

Stel je voor dat elke generaal, twee sleutel heeft die zij kunnen gebruiken om de boodschap te kunnen versleutelen. De eerste sleutel is prive, en die vertelt hij aan niemand. De twee is publiek, en die weet iedereen.Neem een kijkje op het plaatje, hieronder.

Herkomstzekerheid

Als in dit geval Alice een booschap wil versturen aan Bob, versleutelt Alice met haar prive sleutel de booschap. Als Bob de boodschap wil lezen, gebruikt hij Alice’s haar publieke sleutel en leest de boodschap. Aangezien de publieke sleutel van Alice alleen werkt als Alice haar prive sleutel oorspronkelijk gebruikte, weet Bob zeker dat het bericht van Alice afkomstig is.

Geheimhouding

Als Alice echter een bericht naar Bob wil versturen zonder dat iemand anders het kan lezen, gebruikt Alice Bobs publieke sleutel om het te versleutelen. Nu kan alleen diegene met de prive sleutel van Bob het bericht lezen. Aangezien dat Bob is, is  Bob dus de enige die het bericht kan lezen.

Image result for public private key

Bitcoin gebruikt voor het genereren van deze sleutels, de gestandaardiseerde Secp256k1 parameters van de ESDSA-curve. Met deze techniek worden publieke sleutels gegenereerd uit de prive sleutel. Deze berekening is uniek omdat het heel gemakkelijk is om vanuit een prive sleutel een publieke sleutel te genereren, maar het heel moeilijk is om vanuit een publieke sleutel een prive sleutel te kunnen genereren. Hierdoor blijt de publieke sleutel prive. In het bitcoin protocol fungeert de publieke sleutel als adres waarna je bitcoins kan overmaken, maar alleen de prive sleutel heeft toegang tot die rekening. Doordat de publieke sleutel, publiek is, kan iedereen zien hoeveel bitcoin er waar naar toe is gestuurd.

De Oplossing: Blockchain

In essentie is de blockchain een decentraal logboek zonder beheerder. In plaats van een centrale beheerder wordt het logboek collectief bijgehouden. De revolutie van de blockchain zit hem in het feit dat normaalgesproken de centrale autoriteit vertrouwen geeft en jou het gevoel geeft dat alles veilig is, nu gebeurt dat via de blockchain en een cryptografische rekenpuzzel.

De ‘echtheid’ van dit decentrale logboek wordt geverifieerd door gebruikers die pagina’s bevestigen. De pagina’s in zo’n logboek worden blokken genoemd en het verifieren ‘minen’. Het ‘minen’ is een proces waarbij er een cryptografische rekenpuzzel moet worden opgelost en die ervoor zorgt dat iedereen het eens is over de echtheid van de pagina in het logboek. De rekensom is heel moeilijk op te lossen en dat kost veel rekenkracht en dus energie. Telkens wanneer er een som is opgelost, komt er een pagina bij in het logboek. Dit gaat zo door en er onstaat een dik loboek met veel pagina’s. Elke pagina heeft een unieke rekesom die gebaseerd is op de vorige pagina’s. Hierdoor is het heel moeilijk om met oude pagina’s in het logboek te knoeien. Je moet dan immers alle sommen die daarna komen ook oplossen, terwijl de rest doorgaat met het toevoegen van pagina’s. Dit vertrouwen in de de rekensom en het daarbij gepaard gaande vertrouwen is de doorbraak van DLT!

De rekensom

Iets technischer uitgelegd, is het vertrouwensmechanisme van de blockchain het zogenaamde Proof of Work (PoW), al zijn er ook andere varianten zoals Proof of Stake etc. De bitcoin-blockchain gebruikt het PoW-principe.

In het PoW algoritme wordt een hash functie gebruikt, dat is een functie die gebruikt kan worden om een willekeurig grote of kleine hoeveelheid data om te zetten naar een dataset van een bepaalde grootte. De hash functie is onderdeeld van de rekensom die opgelost moet worden. Het gaat erover dat de informatie die op de pagina staat in de hash wordt ingevoerd, en samen met een ander willekeurig te kiezen getal aan een bepaalde voorwaarde voldoet. Zie de afbeelding hieronder.

Image result for hash function bitcoin

Een hash functie is succesvol als het heel moeilijk is om een mathematisch probleem op te lossen en het dus veel moeite kost om een getal te vinden dat samen met de informatie uit het logboek voldoet aan de gestelde voorwaarde. Maar tegelijkertijd moet het heel makkelijk zijn om als je het getal eenmaal hebt, te verifieren dat het klopt.

Bitcoin gebruikte het zogenaamde SHA-256 Hash functie, ontwikkeld door de NSA, wat altijd een resultaat heeft dat 256 bits lang is, ongeacht dat gene wat er in gaat. Ook zal het nooit hetzelfde resultaat leveren, met andere beginwaarden.

Het oplossen van de rekensom kost dus veel rekenkracht. Hier tegenover staat een beloning ter waardering van het geleverde werk. Verderop hierover meer. Zodra de rekensom is opgelost, controleren de anderen of het klopt en zoja wordt de geverifieerde pagina toegevoegd aan het logboek. Het kan natuurlijk zo zijn dat er 2 partijen tegelijkertijd de som oplossen. Het gaat er dan over wie de volgende rekensom het snelst oplost. Uiteindelijk ‘wint’ het logboek met de meeste pagina’s en dat zal het dominante logboek zijn waarop verder wordt gewerkt. Als je een transactie pleegt is het dus altijd noodzakelijk om een aantal pagina’s te wachten zodat je zeker weet dat jouw transactie in het juiste logboek onder een aantal nieuwe pagina’s zit. Als je een transactie zou willen wissen die op een oude pagina ligt, verander je de rekensom van alle daar opvolgende pagina’s en moet je dus al die rekensommen opnieuw oplossen. Aangezien dat zoveel rekenkracht kost is het virtueel onmogelijk, tenzij je meer dan 50% van de rekenkracht in handen hebt. In dat geval kan je sneller pagina’s maken dan de rest en zul je uiteindelijk een dikker logboek kunnen bouwen en heb je feitelijk de macht in handen. Dit noemen ze een 51%-aanval. Meer dan 50% bezitten van het netwerk is echter heel moeilijk. De aanval kan ook slagen met minder dan 50% van de rekenkracht, alleen neemt de kans op succes dan steeds verder af. Het is echter daarom wel slim om na het doen van een transactie op de blockchain, te wachten op 6 of meer bevestigen voordat je het vertrouwt.

Publieke blockchains

Alles wat in het logboek staat is openbaar en onvervanderbaar. Iedereen kan meedoen door het logboek te downloaden van het internet. Alle transacties die gedaan zijn, staan in het logboek. Het simpelste voorbeeld wat hierbij te bedenken is, is dat van de data over een valuta. Bijvoorbeeld de bitcoin. Dit noemen we blockchain 1.0.

Blockchain 1.0

Bitcoin is uitgevonden door Satoshi Nakamoto, niemand weet wie hij is, en de eerste Bitcoin zag het leven op 3 januari 2009. Nakamoto maakte toen de eerste bladzijde in het bitcoin logboek openbaar, waarvoor hij zelf 50 bitcoins kreeg. Elke keer als iemand daarna een bladzijde toevoegt aan het logboek krijgt diegene 50 bitcoins (Nakamoto deed dat eerst lange tijd zelf). Dit toevoegen doet iemand dus door een cryptografische rekensom op te lossen (‘minen’) en gebeurt gemiddeld elke 10 minuten, hierboven staat uitgelegd hoe dat werkt. Ze noemen dit het ‘minen’ van een ‘block’ aan de blockchain. Dit kost veel energie en rekenkracht van de computer en bij een lage waarde van de bitcoin kan het zo zijn dat het meer energie kost dan dat je terugkrijgt in bitcoin.

Bitcoin is ontworpen om een totaal van 21 miljoen bitcoins in omloop te brengen en daardoor neemt de beloning die je krijgt af naarmate er meer bitcoins in omloop komen. Als 50% in omloop is, halveert de beloning naar 25 bitcoins. Als 75% in omloop is, halveert de beloning naar 12.5 bitcoins. Enzovoort. Momenteel zijn ongeveer 17 miljoen bitcoins (~82%) in omloop en is de beloning 12.5 bitcoins per block. Per dag worden er dus ongeveer 1800 bitcoins gemined. De volgende keer dat de beloning halveert is rond 25 mei 2020. Aan de beloningen komt in 2140 een einde, de hoop is dat dan transactiekosten de beloning dekken.

Image result for bitcoin infographic

Buiten bitcoin zijn er nog veel andere cryptovalutas, die andere karakter eigenschappen hebben. Zo hebben sommige meer tokens in omloop, hebben een andere mine-proces etc. Bitcoin is echter de grootste en heeft een totale marktwaarde van 113 miljard USD. Dit lijkt misschien veel maar in vergelijking met het geld wat er in omloop is valt het reuze mee. Het plaatje hieronder is iets verouderd, maar geeft de verhoudingen goed weer.

Image result for bitcoin infographic m1 m2 m3

Bitcoin is fundamenteel anders dan andere valuta’s omdat er maar 21 miljoen van zijn, en niet zomaar gekopieerd kan worden. Het wordt immers allemaal bijgehouden in het decentrale logboek. Een bitcoin kan niet twee keer uitgegeven worden. Het aspect van een gegeven aanbod van bitcoins is ook revolutionair over hoe er met geld wordt omgegaan. Banken doen nu aan fractioneel bankieren, waarbij geld als het ware uit de lucht komt vallen en er krediet met een muisklik kan worden gegeneerd. Dat dit negatieve aspecten heeft hebben we allemaal gemerkt in 2008 tijdens de crisis. Bitcoin is een fundamenteel andere aanpak van geldcreatie. Geld moet aan een aantal eisen voldoen wil het geschikt zijn. Zie een overzicht hieronder.

vergelijking bitcoin fiat goud

Bitcoins hebben net zoals fiat geld geen gebruikswaarde behalve dan het gebruik als geld zelf. Geld is niets anders dan een consensus over wie wat bezit. Voor edelmetalen zoals goud is dat iets andes, dat wordt onder andere gebruikt in de elektronica industrie.

Blockchain 2.0

Een ander voorbeeld van de potentie van blockchain zijn slimme contracten die opgeslagen zijn op de blockchain. Dit zijn autonome computer programma’s die automatisch uitgevoerd worden als aan de voorwaarden voldaan zijn die van te voren vast gelegd worden in het programma. Met de blockchain is zo’n programma, eenmaal live op de blockchain, niet meer te veranderen en kan er niet meer mee geknoeid worden. Het is een direct contract dat afgesloten kan worden tussen twee personen zonder dat ze elkaar hoeven te vertrouwen of een derde partij hoeven toe te laten. Allerlei contracten kunnen zo op de blockchain kunnen worden gezet. Stel je bijvoorbeeld voor dat je een stuk kunst koop van een schilder. Jij koopt de rechten  van dat schilderij voor een bepaald bedrag en dat komt op  de blockchain te staan. Wanneer jij dat schilderij wil verkopen aan een ander, biedt de blockchain hem de garantie dat je een echt schilderij krijgt en jou de garantie dat je je geld krijgt. win-win!

Image result for smart contract example

Blockchain 3.0

De volgende toepassing van DLT zijn de decentrale apps die opereren zonder centrale infrastructuur. Het is de integratie van slimme contracten, decentrale communicaitie en opslag om decentrale alternatieven te maken voor onze Web 2.0 gedomineerde diensten. Het gaat hier dus om het decentraliseren van centraal geleide platforms. Hierdoor heeft geen enkele partij  de macht om een ander te censureren of uit te sluiten en blijft de inhoud die jij publiceert op deze podia eigendom van jezelf.

Voorbeelden

Er zijn talloze voorbeelden van industrien die compleet omver geblazen gaan worden door deze gang naar decentralisatie. Cloud-opslag (Dropbox), sociale netwerken (Facebook, twitter), communicatie (Whatsapp), verzekeringen, bankieren, video-diensten (YouTube, Netflix), muziek-diensten (spotify).

Alles wat de bovengenoemde voordelen van de blockchain kan gebruiken zal de komst van blockchain voelen. De tijd van decentralisatie is hier en peer-to-peer wordt de norm waar vertrouwen geregeld wordt op de blockchain.. Data wordt weer van jezelf en blijft van jezelf!

Overtuigd en je wil zelf bitcoin bezitten?

Dat kan! Allereerst zul je wallet aan moeten maken, dit is een digitale sleutelhanger waaraan een private sleutel hangt die alleen van jou is en bijbehorende publieke sleutels waar mensen bitcoins naar toe kunnen versturen. Dit kan via verschillende aanbieders. Je kan ervoor kiezen deze prive sleutel op je computer op te slaan (meest voorkomend) of op papier te zetten en uit te printen (de zogenaamde paper wallet), of simpelweg te onthouden (de zogenaamde brain wallet). Een brain wallet kan ook gemakkelijker worden door je prive sleutel te genereren uit een hash die jezelf hebt gekozen. Je prive sleutel is dan eigenlijk een wachtwoord (vaak een lijst van 12 woorden), die je door een hash haalt en daarbij weer je prive sleutel oplevert. Dit is echter riskant. Een oplossing hiervoor is bijvoorbeeld om de hash een aantal keer te gebruiken. De lijst van 12 woorden kan vaak ook weer versleuteld worden met een wachtwoord. Zo heb je een dubbele veiligheid dat bestaat uit iets wat gegeven is (de 12 woorden) plus iets wat alleen jij weet (het wachtwoord).

Als je nu dus over je prive sleutels bezit en je alles veilig hebt opgeslagen, kan je bitcoin aanschaffen. Dit kan op een exchange (kraken, coinbase, binance etc.), deze diensten werken het zelfde als een normaal wisselkantoor. Je geeft hen fiat geld zoals dollars of euro en kan vervolgens daarmee bitcoin kopen. Deze bitcoins kan je vervolgens naar je eigen adres sturen. Je kan ook bitcoin direct kopen met ideal en het direct naar je adres laten sturen (bitonic, btcdirect). Dit is iets duurder.

Is bitcoin wel echt zo decentraal?

Er is ook kritiek. Neem bijvoorbeeld de verdeling van de rekenkracht op het bitcoin netwerk. Meer dan 60% is in de handen 4 groepen miners. Als je kijkt naar de landen van herkomst, zit het merendeel in China. Als China besluit om haar 5 grootste groepen miners over te nemen heeft het 64.2% van het netwerk in handen. Genoeg dus om te doen en te laten wat het wil. Weg decentralisatie.hashrate

Ook is er veel centralisatie in de verdeling van de bitcoin. Meer dan 95% van de bitcoins in circulatie zijn eigendom  van maar 4% van de markt. Als je verder kijkt, zie je daat 1% de helft van de bitcoin in handen heeft. Dit kunnen ook exchanges zijn, maar zelf dan is de centralisatie zichtbaar.

Image result for who owns bitcoin inequality

Veel meer informatie, veel beter opgeschreven 😉

https://hackernoon.com/paradigm-shift-from-web1-0-to-web3-0-6b7bfae72a69

https://medium.com/@matteozago/why-the-web-3-0-matters-and-you-should-know-about-it-a5851d63c949

https://medium.com/loom-network/understanding-blockchain-fundamentals-part-2-proof-of-work-proof-of-stake-b6ae907c7edb

https://medium.com/loom-network/understanding-blockchain-fundamentals-part-1-byzantine-fault-tolerance-245f46fe8419

https://medium.com/@UnibrightIO/blockchain-evolution-from-1-0-to-4-0-3fbdbccfc666

https://lib.ugent.be/fulltxt/RUG01/002/164/807/RUG01-002164807_2014_0001_AC.pdf

https://chrispacia.wordpress.com/2013/09/02/bitcoin-mining-explained-like-youre-five-part-1-incentives/

https://chrispacia.wordpress.com/2013/09/02/bitcoin-mining-explained-like-youre-five-part-2-mechanics/

https://chrispacia.wordpress.com/2013/09/07/bitcoin-cryptography-digital-signatures-explained/

https://chrispacia.wordpress.com/2013/09/29/bitcoin-explained-like-youre-five-part-4-securing-your-wallet/

https://howmuch.net/articles/bitcoin-wealth-distribution

https://hackernoon.com/why-everyone-missed-the-most-important-invention-in-the-last-500-years-c90b0151c169