Wat is proof of work?
Proof of work (PoW) is een stukje data dat erg moeilijk te produceren is, omdat het duur en tijdrovend is. Deze vorm van data is eenvoudig te controleren door anderen en moet aan bepaalde eisen voldoen. Het produceren van proof of work kan een willekeurig proces zijn met een lage waarschijnlijkheid. Er zal dus over het algemeen veel ‘trial and error’ moeten worden toegepast, voordat er een geldige proof of work is gegenereerd. Het voornaamste doel van Proof-of-Work-algoritmen is dan ook het bewijs leveren dat er ‘werk’ is uitgevoerd binnen de blockchain of dat er een wiskundige puzzel is opgelost, maar PoW is bedoeld om manipulatie van gegevens tegen te gaan. Het rekenproces gaat gepaard met zeer hoge energiekosten en er is dure hardware voor nodig, waardoor manipulatie niet loont.
Hashcash
Bitcoin gebruikt het ‘hashcash proof of work’ mechanisme om blokken te genereren. Als een blok geaccepteerd moet worden door deelnemers in het blockchainnetwerk, de zogenaamde miners, dan zal er een proof of work moeten worden volbracht, die alle data in een blokje beschrijft. De moeilijkheidsgraad hiervan is aangepast om de snelheid waarmee blokken in het netwerk worden gegenereerd, iets te matigen, zodat er om de 10 minuten een nieuw blokje wordt voortgebracht. Omdat de mate van waarschijnlijkheid van een succesvolle blokgeneratie nagenoeg nihil is, is het erg onvoorspelbaar om in te schatten welke miner in het netwerk in staat zal zijn, om het volgende blokje te genereren.
Target
De meest toegepaste proof of work methode is gebaseerd op SHA-256 en werd ooit geïntroduceerd als onderdeel van bitcoin. Voor de geldigheid van een blokje moet het ‘hashen’ naar een waarde, die lager is dan de huidige target. Een target is een 256-bit nummer dat gedeeld wordt door alle bitcoin clients. De SHA-256 hash van een ‘block-header’ moet lager zijn of gelijk aan het huidige target van het blok, om geaccepteerd te worden door het blockchainnetwerk. Hoe lager de target hoe moeilijker het is om een blokje te genereren.
256-bit
Het is belangrijk om je goed te realiseren dat blokgeneratie geen lang en vastgesteld probleem is. Het heeft meer weg van een loterij. In principe geeft iedere hash je een willekeurig nummer tussen de 0 en de maximumwaarde van 256-bit (en dat is een groot getal). Als je hash nu onder de target zit, dan heb je gewonnen. Dat betekent dus dat ieder blokje aangeeft dat het ‘werk’ gedaan is, om het blokje te genereren.
Fraude
Ieder blok bevat de hash van het voorafgaande blok. Elk blok heeft dus een ketting van blokjes, die samen een heleboel uitgevoerd ‘werk’ bevatten. Dat is de zogenaamde proof of work. Het veranderen van een blokje kan alleen door middel van het genereren van een nieuw blokje, met dezelfde voorganger. Je zult dan dus alle opvolgers moeten regenereren en al het ‘werk’ dat zich in de blokjes bevindt weer moeten overdoen. Dit principe beschermt de blockchain tegen fraude. Door Proof of Work wordt er binnen de blockchain zogenaamde ‘consensus’ bereikt over de ‘staat van het netwerk’. Dat wil zeggen dat er binnen de blockchain overeenstemming is tussen de nodes, over alle gebeurtenissen die binnen het netwerk hebben plaatsgevonden. Naast Bitcoin maken ook vele andere cryptocurrency’s gebruik van het Proof of Work-protocol, waaronder Litecoin, Dash, Zcash, Namecoin, Siacoin, Monero, Syscoin, Ubiq en Verge.
Van Proof of Work naar Proof of Stake
Door het hoge energieverbruik van Proof of Work kiezen sommige blockchain-systemen voor andere consensus-mechanismen, zoals bijvoorbeeld Proof of Stake (PoS). Het PoS-consensusmodel vereist niet dat miners energie verbruiken om te concurreren met andere miners, om dezelfde wiskundige puzzel op te lossen. PoS vermindert de hoeveelheid rekenwerk die nodig is om blokken en transacties te verifiëren, die het blockchainnetwerk – en dus de cryptocurrency’s – veilig houden. Proof of Stake verandert de manier waarop blokken worden geverifieerd met behulp van de computers van coin-bezitters. De eigenaren van de crypto-coins bieden hun digitale munten aan als ‘onderpand’, voor de kans om blokken binnen het netwerk te valideren. Coin-eigenaren die hun cryptocryptocurrency’s hebben ‘ingezet’ worden ‘validators’ genoemd. Deze validators worden vervolgens willekeurig geselecteerd, om het blok te mogen ‘minen’ of te valideren. Het PoS-consensusmechanisme maakt dus willekeurig wie er mag ‘minen’, in plaats van dat er een op concurrentie gebaseerd consensusmodel gehanteerd wordt, zoals bij Proof of Work het geval is.
Milieuvriendelijker en verhoogde schaalbaarheid
Om een validator te worden moeten cryptocurrency-bezitters een bepaald aantal coins inzetten. Blokken moeten bij Proof of Stake worden gevalideerd door meer dan één validator. Wanneer een specifiek aantal validators verifiëren dat een blok juist is, dan wordt het proces gefinaliseerd en gesloten. Blockchains die gebruikmaken van Proof of Stake zijn onder meer EOS, Cardano, NEO, Tezos, Tron, Polkadot, Alogrand, NXT en Solana. Ook Ethereum is van plan om volledig over te gaan van Proof of Work naar Proof of Stake. De overstap van PoW naar PoS is niet alleen milieuvriendelijker, maar vergroot ook de schaalbaarheid van blockchains.
Op de hoogte blijven van de ontwikkelingen op het gebied van blockchaintechnologie? Meld je dan nu aan voor de blogpost!