Wat is cryptomining?

06.12.2018

Cryptomining of het minen van cryptovaluta is een van de belangrijkste redenen waarom cryptovaluta kunnen werken als gedecentraliseerd peer-to-peer netwerken zonder de tussenkomst van een derde, centrale partij. Het is een proces waarin transacties tussen gebruikers worden geverifieerd en aan de blockchain worden toegevoegd, evenals een manier om nieuwe coins aan de bestaande voorraad toe te voegen.

 

Hoe werkt het?

Een miner is een node in het network die transacties verzamelt en deze clustert in blocks. Wanneer transacties worden verstuurd, worden deze ontvangen en geverifieerd door de miner nodes, toegevoegd aan de ‘memory pool’ en vervolgens samen met andere transacties geassembleerd in een block.

De eerste stap bij het minen van een nieuw block is het hashen van iedere transactie in de memory pool.

Voordat de miners hiermee beginnen, wordt er door de miner nodes een transactie toegevoegd waarin de beloning voor het minen aan henzelf wordt verstuurd. Deze transactie wordt ook wel de ‘coinbase’ transactie genoemd. In feite wordt er nu uit het niets een nieuwe coin gecreëerd die geldt als de eerste transactie in een nieuw block.

Na het hashen van alle transacties worden deze georganiseerd in een hash-boom of een zogenaamde Merkle tree. Dit houdt in dat de hashes worden georganiseerd in paren tot de bovenkant van de ‘boom’ is bereikt. Dit punt wordt ook wel de root hash of de Merkle root genoemd.

De root hash, samen met de hash van het vorige block en een willekeurig nummer genaamd de nonce, wordt vervolgens in de header van het block gezet. De block header wordt vervolgens ook gehashed. Dit produceert uiteindelijk een nummer wat de block identifier wordt genoemd. 

De block identifier moet een bepaalde waarde hebben die lager is dan een bepaalde waarde die door het protocol wordt bepaald; met andere woorden, de hash van de block header moet met een bepaald aantal nullen beginnen. Deze waarde, ook wel bekend als de ‘hashing difficulty’ of de moeilijkheidsgraag van de hash, schaalt mee met de beschikbare rekenkracht op het network waardoor de snelheid waarmee nieuwe blocks worden gecreëerd beperkt blijft.

De miners blijven de header hashen door de nonce te veranderen, tot een miner uiteindelijk een geldige hash heeft geproduceerd. Wanneer er een geldige hash is gevonden, stuurt de miner die de hash heeft gevonden het block naar het netwerk. De andere nodes controleren vervolgens of de hash inderdaad geldig is en voegen het block toe aan hun kopie van de blockchain. Vervolgens begint het hele proces weer opnieuw.

Soms kan het echter voorkomen dat twee miners tegelijkertijd een geldig block vinden, waardoor er twee concurrerende blocks in het netwerk belanden. De miners gaan dan verder met het minen van blocks op basis van het block dat zij als eerst hebben ontvangen. Deze situatie blijft bestaan tot het volgende block is gemined op basis van een van de twee bestaande blocks. Het verliezende block wordt vanaf dat moment door de miners genegeerd en wordt ook wel een ‘orphan block’ of ‘stale block’ genoemd.

 

Mining pools

Hoewel de block reward wordt toegekend aan de miner die als eerst een geldige hash vindt, is de kans dat deze hash inderdaad wordt gevonden proportioneel aan de totale rekenkracht van het network. Miners met slechts een klein beetje rekenkracht hebben dan ook erg weinig kans om zelf het volgende block te ontdekken. Om dit op te lossen zijn zogenaamde ‘mining pools’ bedacht, waarin miners hun rekenkracht met elkaar delen en de block reward proportioneel met ieder lid van de mining pool delen op basis van hoeveel rekenkracht zij aan de pool toevoegen.

Houd onze website in de gaten voor meer interessante artikelen en vergeet ook niet de andere video’s van de Binance Academy te bekijken!

Loading