Proof-of-work is een manier hoe het blockchain systeem te werk gaat. Maar gaat dit eigenlijk? Hoe werkt het en waar gebruik je het voor? Lees het op deze pagina!

De innovatie van Bitcoin was om de transactiegeschiedenis in blokken op te delen. Één van de regels voor een blok is dat in een blok geen fouten mogen staan. Iemand die een blok genereert wordt een miner genoemd.

Eigenschappen van Proof of work

Een blok heeft een aantal eigenschappen:

  • Er zit een verwijzing naar het vorige blok in de ketting
  • Er zit een aantal transacties in
  • Een blok heeft een uniek nummer
  • Voor alle transacties in het blok geldt dat geen transacties conflicteren met oudere transacties, of met transacties in het blok zelf
  • Het blok heeft een Proof-of-Work, ook wel nonce (number-used-once) genoemd.
  • Het laatste puntje uit bovenstaande lijst is een wiskundig bewijs. Zie het als een aantal bytes aan informatie die gekoppeld zijn aan dat specifieke blok.

De inhoud van proof-of-work

Je zou nu het blok voor kunnen stellen als een set data van ongeveer 1-4MB. Ik zal niet dieper ingaan op hoe die data tussen bruikbare data en enen en nullen omgezet wordt, maar je kunt het voorstellen als een website. In de kabel zijn het ook enen en nullen, maar je computer weet hoe hij er een website met afbeeldingen en tekst van kan maken. Bij een blockchain wordt door je wallet die enen en nullen omgezet naar de informatie zoals boven beschreven.

Van dit blok kan nu een hash berekend worden. Een hashfunctie is een complexe functie die de enen en nullen van het blok om kan zetten in een soort unieke fingerprint van dat blok. De wiskundige eigenschappen van een hashfunctie zijn:

Een hash heeft altijd een bepaalde lengte. Bij bitcoin is dit 512 bits. Een vier megabyte blok heeft dus een veel kleinere hash.
Hieruit volgt dat het moeilijk is om van een hash terug te rekenen naar het originele blok, omdat je niet 4 megabyte aan data uit de veel kleinere hash kunt afleiden.

Cryptocurrency Traden icon cryptobieb.nl

Een hash is onvoorspelbaar

Er zijn 512 bits (1 of 0) in een hash, dus er zijn 2^512 verschillende hashes. Dit is meer dan atomen in het zichtbare universum. Gevolg is dat de kans astronomisch klein is dat er twee inputs met dezelfde hash gevonden worden.
Het bitcoin netwerk stelt eisen aan de hash van het blok. Zo moeten tijdens het schrijven van dit artikel de eerste 144 bits van de 512 bits hash een nul zijn. Omdat je geen blokken kunt verzinnen op basis van hashes, heb je als miner maar 1 mogelijkheid om valide blokken te maken: door de data van het blok elke keer net een beetje aan te passen om een unieke input voor de hashfunctie te krijgen. Dit wordt gedaan door de nonce van het blok aan te passen.

De moeilijkheidsgraad van proof-of-work

Het is voorspelbaar hoeveel verschillende nonces je moet proberen voordat je een hash hebt die aan de eisen voldoet. Als je alleen de eerste bit op nul wilt hebben staan, is dat gemiddeld twee keer proberen, als je de eerste twee op nul wilt hebben moet je gemiddeld 4 keer proberen, enzovoort. Dit is het werk uit Proof-Of-Work. De hoeveelheid nullen die verwacht wordt is afhankelijk van de gemiddelde tijd tussen blokken. Als dit minder dan 12 minuten is, wordt meer werk verwacht, als dit meer dan 12 minuten is, wordt deze “difficulty” omlaag bijgesteld. Bij bitcoin wordt elke twee weken deze moeilijkheid aangepast. Op het moment van schrijven worden door het hele netwerk gecombineerd meer dan 40,000,000,000,000,000,000, of 40 Exahashes per seconde geprobeerd.

De coinbase transactie

De eerste transactie in een blok heet de coinbase transactie. Dit is waar de miner zichzelf mag belonen door nieuwe bitcoins te drukken (een vaststaand bedrag), en transactiekosten mag rekenen. Deze beloning staat pas vast als het blok opgenomen wordt door andere miners, dus het blok zal aan alle regels moeten voldoen. Miners zullen blokken maken aan de langste ketting (meeste difficulty, niet meeste blokken), omdat deze ketting het veiligst is. Omdat je weinig kans hebt om per keer de eerste te zijn die een blok vindt, is het slim om hier volgens de regels te spelen. Je stopt misschien wel jaren werk in het minen, en als je blok dan niet door andere miners geaccepteerd wordt, is al je werk voor niks geweest.

Om met zekerheid een goede aanval op dit netwerk te doen moet je meer blokken kunnen minen dan de rest van het netwerk gecombineerd, om zo eerlijke miners te kunnen misleiden. Dit staat bekend als een 51% aanval. Dankzij deze eigenschap is het netwerk veilig, mits minstens 50% van de hashpower van eerlijke spelers komt.

Voordelen

  • Werkt al een aantal jaar zeer goed;
  • Betrouwbaar systeem.

Nadelen

  • Duurt vrij lang voor transacties goedgekeurd worden;
  • Minen kost zeer veel elektriciteit;
  • Milieuonvriendelijk.
Voorbeelden van cryptovaluta die hier gebruik van maken zijn:
  • Monero (XMR)
  • Bitcoin (BTC)
  • Litecoin (LTC)
  • Vertcoin (VTC)
Meer lezen over andere blockchain systemen en welke er zijn of weet je nog niet wat blockchain betekent? Lees het hier.