De blockchain

Het systeem waar Bitcoin en andere cryptocoins gebruik van maken heet blockchain. Blockchain-technologie is ontstaan uit de ontwikkeling van Bitcoin.

Een blockchain is iets wat de meeste mensen die voor het eerst met cryptocoins in aanraking komen een lastig fenomeen vinden om te begrijpen. Vergelijk het met het internet van 20 jaar geleden. Ook dat was voor de meesten toen iets wat lastig te begrijpen was, maar voor het gros van de mensen is het nu duidelijk wat internet is en wat je er mee kan. Toentertijd waren er zelfs mensen die beweerden dat internet niet iets was dat door zou breken, nu weten we wel beter. De kans bestaat dat dit ook met blockchain gaat gebeuren.

Om uit te leggen wat een blockchain is en hoe het werkt, is het belangrijk om te weten dat een blockchain werkt op internet waardoor gegevens tussen gebruikers van de blockchain met elkaar uitgewisseld kunnen worden. Daarnaast bestaat een blockchain in de basis uit drie onderdelen, die met elkaar in verbinding staan door de blockchain, wallets, nodes en miners.

 

Wallets

Een wallet wordt gegenereerd door middel van een algoritme en bestaan uit:

  • Mnemonic Seed
  • Private key
  • Public key
  • Adressen

Een private key ontstaat uit de seed, de public key uit de private key en de adressen uit de public key. Deze zijn niet backwards compatible.

Transacties tussen gebruikers gebeuren direct tussen twee partijen zonder tussenkomst van een derde partij. De miners verwerken de transacties en de nodes houden de administratie van de wallets bij. Dit betekent dat de transacties trustless plaatsvinden. Degene die een transactie verstuurd signeert en versleutelt deze transactie met de private key. De transactie-hash wordt door de ontvanger ontsleuteld en ontvangt de coins in zijn wallet.

 

Miners

Zodra gebruikers met hun wallets transacties maken moet er een partij zijn die de transacties verwerkt in een block en deze uitzendt naar de nodes om de transactie op te slaan in de blockchain. Transacties van walletgebruikers van de Bitcoin-blockchain worden gemiddeld elke 10 minuten in een ‘block’ verzameld. Een gemiddelde transactie is 400 Byte groot, terwijl een block een capiciteit van 1 MegaByte heeft. Er passen ongeveer 2.500 transacties in één block. Zijn er meer transacties in de mempool? Dan krijgen transacties met de hoogst betaalde fee voorrang. Het block moet vervolgens gemined worden, wat de taak is van miners.

Dit minen is het oplossen van een ingewikkelde wiskundige som. Een block bestaat uit:

  • Het blocknummer
  • Nonce (dit is het nummer dat miners uitrekenen)
  • Data: dit zijn de transactie-hashes van de transacties die opgenomen zijn in het desbetreffende block
  • Previous hash: De hash van het block voor het te minen block
  • Hash: Het resultaat van het versleutelen van bovenstaande gegevens: blocknummer, nonce, data en de hash van voorgaande block

De miner die het snelst de nonce berekent, krijgt het recht het block te minen. De miners ontvangen de transactiefees van de transacties en een ‘blockreward‘ van 12,5 Bitcoin. Op deze manier wordt Bitcoin gedistribueerd totdat het maximum van 21 miljoen Bitcoin in omloop is.

Mining is decentraal op gezet. Dat wil zeggen dat er niet maar één miner is om alle transacties te verwerken maar meerdere onafhankelijke miners. Inmiddels is dit een professionele tak van sport die wordt beoefend door miningfarms met hoge hashpower.

 

Nodes

Dit zijn computers op de blockchain die elk een kopie van de gehele administratie bijhouden van de blockchain. Blocks worden gemiddeld elke 10 minuten gemined door miners en worden uitgezonden naar nodes. Elke node houdt alle blocks bij. Doordat er vele kopieën zijn van dezelfde administratie is het onmogelijk voor hackers de administratie te wijzigen. De blockchain van Bitcoin heeft ongeveer 10.000 nodes en dus ook 10.000 administraties van diezelfde blockchain. Voor een hacker is het praktisch onmogelijk tegelijkertijd alle computers te hacken en de administratie aan te passen. Nodes dragen dus bij aan de veiligheid van een blockchain. Iedereen staat vrij om een node te draaien.

Alle gegevens en transacties, vanaf het eerste moment, worden voor altijd opgeslagen in de blockchain. Alle data in de blockchain is onomkeerbaar en juist daarom is een blockchain zeer betrouwbaar. De volgorde van de geminede blocks staat vast en die volgorde wordt in stand gehouden door ze aan elkaar te koppelen. Zo eindigt block 101 bijvoorbeeld met de code 00000000b69bd8e…..1f9d9984 en begint block 102 vanzelfspreken met die code.

 

Wat is het verschil tussen het bitcoinnetwerk en het banksysteem?

Wat hebben we tot zover geleerd? Ten eerste dat het Bitcoinnetwerk in twee opzichten aanzienlijk verschilt vergeleken met het banksysteem zoals we die nu kennen:

  • Jouw geld wordt niet opgeslagen bij een vertrouwde derde partij maar op de blockchain van Bitcoin, je bent je eigen bank
  • Transacties tussen jou en iemand anders gaan niet via één vertrouwde derde partij, maar vindt direct plaats tussen jou en een ander (dit heet ‘trustless’) via een decentraal netwerk van miners en nodes
  • Transacties zijn te allen tijden mogelijk

 

Hoe ziet een blockchain eruit?

Om duidelijk te maken hoe het hele proces van transacties maken tot en met het opnemen er van in een blockchain staat hieronder een afbeelding. Hierin staat een block, de wallets, nodes en miners uitgebeeld.

De afbeelding is in drie onderdelen te splitsen:

  1. In het oranje vak staan de wallets. Er staan wallets die in gebruik genomen zijn (deze hebben een saldo) en wallets die nog niet in gebruik genomen zijn (wallets zonder saldo). Tussen de wallets met rode lijn hebben transacties plaatsgevonden. Deze transacties worden opgenomen in een block (dit is het oranje kader). Gemiddeld elke 10 minuten komt er een nieuw block waarin transacties worden opgenomen van de afgelopen 10 minuten.
  2. Ook elke 10 minuten lossen de miners (in dit geval 6 miners, A t/m F) een wiskundige puzzel op. Degene die als eerste de puzzel oplost heeft het recht het block op te nemen, wat minen heet. Deze miner stuurt het block door naar de nodes, die de boekhouding van de blockchain bijhouden.
  3. De nodes ontvangen het geminede block van de miner die het blok heeft gemined. In de praktijk heeft elke node een connectie met 8 andere nodes. Deze nodes wisselen onderling met elkaar de geminede blocks uit zodat elke node over dezelfde gegevens en dus dezelfde administratie beschikt.

 

Iedere coin heeft zijn eigen blockchain

Dit is in een notendop en vereenvoudigd uitgelegd hoe de Bitcoinblockchain werkt. Overigens bestaan er naast de blockchain van Bitcoin nog andere blockchains van andere coins. Ethereum is na Bitcoin de grootste coin en heeft een eigen Blockchain die geheel losstaat van Bitcoin. En zo zijn er nog een aantal andere coins met een eigen blockchain.

Onder de motorkap is de werking van blockchains zeer complex die onderling van elkaar ook nog kunnen verschillen. Uitleggen hoe de techniek exact werkt valt buiten het kader van Coindance. Is dat erg? Nee. Je gebruikt bijna elke dag je pinpas om mee te betalen en rijdt elke dag met je auto naar het werk, maar hoe het betalingssystemen van banken werken en hoe een auto precies in elkaar zit en werkt weet je waarschijnlijk ook niet.

Behalve geldtransacties zijn er ook hele andere mogelijkheden dankzij de blockchaintechnologie. Enkele voorbeelden:

  • Er kunnen slimme contracten (smart contracts) op de blockchain geprogrammeerd worden
  • Opgewekte zonne-energie kan gedeeld worden met andere zonder  tussenkomst van een tussenpersoon

 

Naar de praktijk

Je weet nu wat een blockchain is en hoe deze werkt. Op naar het echte werk. Dit begint bij het bezitten van een wallet.

Vanaf deze pagina lees je hoe je een paper of software wallet aanmaakt en welke hardware wallets er op de markt zijn.