Wat is blockchain?

Blockchain is kort en eenvoudig gezegd een nieuw soort digitale database, waarin gegevens of transacties kunnen worden opgeslagen. Blockchain is als het ware een digitaal grootboek of logboek waarin allerlei soorten transacties tussen twee partijen worden verwerkt en worden opgeslagen, zonder tussenkomst van een derde partij. Transacties zoals betalingen met een digitale valuta of bijvoorbeeld het uitwisselen van belangrijke documenten of contracten.

Databases liggen ten grondslag aan veel van de infrastructuur waar we dagelijks op vertrouwen. Databases zijn vergelijkbaar met zogenaamde grootboeken en zijn niets meer dan lijsten, waarin allerlei transacties en gegevens onder elkaar worden bijgehouden. Vrijwel alle software en diensten die wij vandaag de dag gebruiken steunen op databases, die functioneren als grootboeken en die door bepaalde instanties worden verwerkt en worden opgeslagen.

Zo is de geldstroom tegenwoordig hoofdzakelijk terug te vinden in databases, oftewel grootboeken bij financiële instellingen, waarin alle balansen en transacties worden bijgehouden. Maar ook andere instanties werken op vergelijkbare wijze. Medische dossiers in ziekenhuizen of bedrijfsgegevens bij de Kamer van Koophandel worden zorgvuldig bijgehouden in databases. Elke transactie of elk gegeven is in feite een nieuwe regel in een database, die wordt bijgehouden door een aangewezen instantie.

Het unieke van deze digitale database, vergeleken met een normale database, is dat blockchain alle transacties decentraal opslaat. In een normale database wordt informatie opgeslagen op één centraal punt of op één centrale computer en alleen daar worden gegevens gewijzigd en gedeeld met gebruikers. Bij blockchain wordt deze informatie opgeslagen in een groot netwerk van computers, een decentraal netwerk. En al deze computers (knooppunten) bevatten een exacte kopie van de database. Deze knooppunten worden ook wel “nodes” genoemd.

Centrale databaseBlockchain-netwerk

Bovenstaande afbeeldingen geven het grote verschil aan tussen een centrale database en een blockchain-netwerk. Links een voorbeeld van een centrale database waar alleen het punt in het midden een kopie van de database bevat. Rechts een voorbeeld van een blockchain-netwerk waar alle knooppunten in het netwerk een kopie bevatten.

Bij blockchain is er dus niet één eigenaar of één toezichthouder. Het toezicht ligt bij de gebruikers van een blockchain-netwerk. Nieuwe transacties worden door de “nodes” in de database opgeslagen. Daarvoor moeten deze eerst een unieke code zien te vinden die aangeeft dat alle informatie klopt. Deze unieke code wordt ook wel de “hash code” genoemd. Zodra de hash code door de nodes is gecontroleerd en is goedgekeurd, wordt de informatie daadwerkelijk opgeslagen in de blockchain.

Geen enkele gebruiker kan dus op eigen initiatief informatie opslaan, wijzigen of verwijderen uit de database. Op deze manier is het blockchain-netwerk beveiligd tegen kwaadwillenden en zorgt het proces ervoor dat er geen sprake is van één centrale partij, dit in tegenstelling tot een standaard centrale database.

Blockchain is dus de achterliggende techniek die het mogelijk maakt dat twee verschillende partijen onderling kunnen handelen in een netwerk, waar geen sprake is van één centrale partij. Dit wordt een decentraal netwerk genoemd.

Hoe ziet blockchain eruit?

Zoals de naam al aangeeft bestaat blockchain uit een ketting van blokken. Alle transacties en gegevens worden opgeslagen in deze blokken. Met elke nieuwe transactie wordt er een nieuw blok toegevoegd aan het netwerk. Een nieuw blok bevat alle informatie van het vorige blok, welke weer alle informatie van het vorige bevat. Op deze manier vormt het digitale grootboek een lange ketting van blokken met informatie; de blockchain.

Alle informatie die wordt opgeslagen in blockchain, wordt onleesbaar gemaakt door middel van cryptografie. Daarom worden digitale munten zoals Bitcoin en Ethereum ook wel “cryptocurrency” of “crypto valuta” genoemd.

Ieder blok in de blockchain refereert dus terug naar de informatie van het vorige blok. Oftewel er wordt terug gerefereerd naar de “hash” van het vorige blok. Hash is de benaming voor een unieke code die refereert naar bepaalde informatie. Doordat het huidige blok terug refereert naar de hash van het vorige blok, kan eerdere data die is opgeschreven in de blockchain niet aangepast of verwijderd worden.

Onderstaande afbeelding geeft drie blokken weer met verschillende opgeslagen transacties. Ieder blok in de blockchain refereert terug naar de zogenaamde hash van het vorige blok. Blok #2 refereert terug naar de hash van blok #1 en blok #3 refereert weer terug naar de hash van blok #2.

Hash code

Zoals eerder genoemd wordt in een blockchain blok terug gerefereerd naar de hash code van het vorige blok. Het is dan belangrijk om te weten wat precies de input data is voor de hash van een blok. De hash van een blok wordt gecreëerd door de “nonce”, de transacties die zijn opgeslagen zijn in dat blok en de hash van het vorige blok als input te geven aan de hash functie. Door deze informatie samen te voegen als één input wordt de hash van een blok gecreëerd.

Als de input data van een hash functie ook maar een klein beetje verandert, dan verandert de hash van dit blok compleet. Dit betekent dat als iemand de informatie van een transactie, opgeslagen in een blok, ook maar een beetje verandert, dan zal de hash van dat blok compleet veranderen. Dit zal ervoor zorgen dat de gewijzigde transactie ongeldig wordt verklaard en dat deze verandering nooit zal worden opgenomen in de blockchain.

Een blockchain is dus transparant, onvervalsbaar en ook niet te hacken. Om een decentraal blockchain te kunnen hacken, zouden alle nodes tegelijkertijd moeten worden aangevallen, wat praktisch onmogelijk is.

Zoals eerder aangegeven is hash de benaming voor een unieke code die refereert naar bepaalde informatie. Hash kan het beste worden bekeken als een korte samenvatting van deze informatie. Het creëren van een hash code gebeurt door middel van een zogenaamde hash functie.

Hash functie

Bovenstaande afbeelding is een voorbeeld van hoe informatie of een bestand door middel van een hash functie in een unieke code veranderd, de hash code.

Als iemand informatie of een document met informatie in een hash functie stopt, dan zal de hash functie een unieke code voor deze informatie creëren. Deze code is uniek voor deze informatie. Als iemand opnieuw dezelfde informatie in deze hash functie stopt, dan zal de hash functie opnieuw dezelfde unieke code als output creëren.

Het is belangrijk om te weten dat de unieke code die refereert naar een bepaald document of bepaalde informatie compleet zal veranderen als er ook maar een kleine aanpassing in het bestand plaatsvindt.

Wat is blockchain mining?

Om de technologie achter blockchain echt te begrijpen, is het belangrijk om het zogenaamde “mining” proces van blockchain te begrijpen. Zoals eerder aangegeven is er bij een blockchain-netwerk geen sprake van een centrale partij, die transacties controleert of toevoegt. De gebruikers van het blockchain-netwerk zullen dus onderling moeten bepalen wie het nieuwe blok met transacties mag toevoegen aan de blockchain.

Het programma dat dit proces beschrijft heet het “consensus protocol”. Tegenwoordig bestaan er vele verschillende soorten consensus protocols. Het eerste consensus protocol is echter gecreëerd door Bitcoin, genaamd “proof-of-work”.

Een consensus protocol bepaalt welke gebruiker van het netwerk het nieuwe blok mag toevoegen aan de blockchain. Bij proof-of-work wordt dit bepaald door te kijken naar de rekenkracht van de computers van alle gebruikers. Dit wordt wederom gedaan met behulp van een hash functie. Zoals aangegeven is het onmogelijk te bepalen wat de input van een hash is door naar de output te kijken.

De gebruikers moeten een input geven aan een hashing functie, deze input wordt in dit geval ook wel de nonce genoemd. De gebruikers die als eerste een nonce als input aan de hashing functie geeft, wat resulteert in een hash die begint met een bepaald aantal nullen, is degene die het nieuwe blok mag toevoegen aan de blockchain.

Dit proces wordt ook wel “minen” genoemd. De enige manier om de correcte nonce te vinden is door heel vaak een random nonce als input te geven aan de hash functie en te hopen dat dit resulteert in een output die begint met een bepaald aantal nullen. Dit proces is dan ook op onderstaande afbeelding gevisualiseerd. De computer die het nieuwe blok toevoegt aan de blockchain zal tevens worden beloond met een bepaald aantal Bitcoins voor het opofferen van de rekenkracht van de computer.

Blockchain mining

Blockchain houdt dus heel globaal het volgende in; een techniek gecreëerd om transacties tussen verschillende partijen uit te voeren zonder dat gebruikers op een derde partij hoeven te vertrouwen. De transacties zijn opgeslagen in blokken data. De opgeslagen data kan niet worden aangepast of worden verwijderd.

De gebruikers in een blockchain-netwerk bepalen door middel van een consensus protocol of de transacties geldig zijn en wie het nieuwe blok met transacties mag toevoegen aan de blockchain. Door de blockchain technologie is een gedistribueerd netwerk gecreëerd waarbij er geen sprake is van een centrale partij, die het netwerk beheert of bepaald welke transacties moeten worden toegevoegd.

Deze laatste zin beschrijft ook meteen waarom de blockchain technologie zo innovatief en bijzonder is. Voorheen als mensen een transactie wilden uitvoeren moesten ze of elkaar vertrouwen of gebruik maken van een vertrouwde derde partij zoals een bank of PayPal. Door blockchain is het nu mogelijk transacties uit te voeren waarbij vertrouwen wordt vervangen door cryptografisch bewijs. Met blockchain technologie wordt voor beveiliging gezorgd met cryptografisch bewijs in plaats van menselijk vertrouwen.

Blockchain kan ook worden gebruikt om decentrale applicaties (DApps) te creëren. DApps zijn blockchain gedecentraliseerde applicaties, die variëren van cryptocurrency games en marktplaatsen tot aan speciale cryptocurrency verzamel DApps.