begin
begin

Heb je je ooit afgevraagd hoe bitcoins worden gemaakt? Natuurlijk worden ze gegenereerd door het mijnproces, maar hun uitgifte is meestal gebaseerd op de Coinbase-transactie. Deze specifieke transactie, die essentieel is voor het functioneren van Bitcoin, is complexer geworden naarmate het protocol evolueert. In dit artikel nodig ik je uit om in detail alles te ontdekken wat je moet weten over deze Coinbase-transactie.
De coinbase-transactie is altijd de eerste transactie in elk Bitcoin-blok. Het wordt gegenereerd door de miner die met succes een geldig werkbewijs voor dit blok heeft geproduceerd.

Deze transactie speelt een rol op twee niveaus. Enerzijds kan de winnende miner worden beloond door hem de bitcoins toe te kennen die hem verschuldigd zijn. Aan de andere kant wordt het gebruikt om nieuwe bitcoins in de geldhoeveelheid in omloop te brengen.
De ontvangen bitcoins vormen de zogenaamde blokbeloning. Het is een economische stimulans voor mijnwerkers om te investeren in het Bitcoin proof-of-work-proces. Deze beloning bestaat in de eerste plaats uit alle kosten die zijn berekend voor transacties die in het blok zijn geïntegreerd. Elke keer dat u een Bitcoin-transactie uitvoert en deze wordt bevestigd, worden de kosten die u hebt gekozen bij het aanmaken ervan teruggevorderd door de miner die het blok heeft geproduceerd.
De blokbeloning bestaat ook uit een aantal nieuw aangemaakte bitcoins. Dit wordt blokfinanciering genoemd. Op deze subsidie zijn de regels van het protocol van toepassing. Oorspronkelijk vastgesteld op 50 bitcoins per blok in 2009, wordt het elke 210.000 blokken gehalveerd, of ongeveer elke vier jaar, tijdens een gebeurtenis die bekend staat als een „halvering”. Sinds de laatste halvering in 2024 bedraagt de subsidie die voor elk blok wordt toegekend 3,125 BTC.

Alle BTC die op Bitcoin in omloop was, was dus oorspronkelijk afkomstig van een Coinbase-transactie.
Coinbase is een heel specifieke transactie. In tegenstelling tot andere Bitcoin-transacties moet deze aan bepaalde specifieke criteria voldoen om als geldig te worden beschouwd. Het eerste van deze criteria is dat het een enkele invoer moet bevatten, die, in tegenstelling tot de gebruikelijke ingangen, niet mag verwijzen naar een bestaande UTXO. Zoals eerder vermeld, wordt de Coinbase-transactie gebruikt om nieuwe bitcoins te genereren. Dit betekent dat voor nieuwe UTXO's die bij de uitvoer van deze transactie worden aangemaakt, geen invoer-UTXO's mogen worden gebruikt. Bitcoins worden ex nihilo gemaakt. Daarom wordt er soms gezegd, om het eenvoudig te maken, dat de coinbase geen input heeft. Bij een traditionele transactie zou dit onmogelijk zijn, omdat het nodig is om bitcoins als invoer te verstrekken om het bedrag te dekken dat u wilt overboeken.

In werkelijkheid is er inderdaad een input in de coinbase. Om ervoor te zorgen dat deze invoer geen bitcoin uitgeeft, is het verplicht dat de coinbase-transactie een niet-bestaande UTXO gebruikt, aangeduid met de volgende waarde:
9999-aanbodenkopen/-aanboden.0000fffffffffffffff
Gewoonlijk gaat elke invoer in een Bitcoin-transactie vergezeld van een ScriptSig met de digitale handtekening die nodig is om de gebruikte UTXO te ontgrendelen. In het geval van de coinbase-transactie is het echter niet nodig om een ScriptSig toe te voegen, aangezien er geen echte UTXO wordt verbruikt. In plaats daarvan wordt een leeg veld gebruikt dat willekeurige gegevens kan bevatten die door de minderjarige zijn gekozen. Dit veld wordt gewoonlijk het „Coinbase-veld” genoemd.
Juist in dit veld heeft Satoshi Nakamoto de beroemde zin „ingevoegd. The Times 03/jan/2009 Kanselier op de rand van een tweede reddingsoperatie voor banken ” in het allereerste blok van de Bitcoin-blockchain (het Genesis-blok).

Sinds de goedkeuring van BIP34 in 2012 is de enige beperking die aan miners wordt opgelegd voor het coinbase-veld, het opnemen van de hoogte van het blok dat in het begin wordt gedolven. Deze extra precisie helpt om duidelijk te maken hoe het netwerk wijzigingen in de blokstructuur en consensusregels accepteert, terwijl tegelijkertijd de uniciteit van elk blok en elke Coinbase-transactie wordt gegarandeerd.

De rest van dit veld is volledig gratis. Momenteel gebruiken minderjarigen het voor verschillende functies. Ten eerste is onder mijnpools een unieke identificatiecode voor elke individuele helikopter opgenomen om ervoor te zorgen dat de deelnemers aan de pool hun werk niet onnodig dupliceren. Door elk een iets ander coinbase-veld te hebben, zorgt dit ervoor dat geen twee hashers ooit exact dezelfde berekening zullen uitvoeren.

Dan is het gebruikelijk om in dit veld de naam te zien van de mijnbouwpool die het blok heeft geëxtraheerd. Hoewel deze praktijk niet verplicht is, wordt deze veel gebruikt bij pools die ervoor kiezen hun naam toe te voegen aan Coinbase-transacties. Deze identificatie is echter niet noodzakelijk nauwkeurig, aangezien er niets in de weg staat dat de naam van een specifieke pool wordt vermeld zonder er daadwerkelijk naar te minen.

Ten slotte wordt de rest van dit veld vaak gebruikt als een informele extra-nonce. Om een geldig blok te genereren, wijzigen miners de 32-bits nonce in de blokkop, waarbij ze meerdere hashes maken totdat ze er een vinden die kleiner is dan of gelijk is aan de moeilijkheidsgraad. Wanneer alle mogelijke waarden van de nonce in de header zijn uitgeput, gebruiken ze een deel van het vrije invoerveld in de coinbase-transactie als een extra nonce om door te gaan met het testen van nieuwe hashes.

➤ Meer informatie over de structuur van Bitcoin-blokken.
Wat de resultaten van de Coinbase-transactie betreft, is de structuur opnieuw anders dan die van een normale transactie.
Ten eerste zijn er meestal een of meer outputs die de mijnbeloning verdelen, waarbij de vergoedingen en de bloksubsidie worden gecombineerd. Deze uitgangen bestaan, net als bij een klassieke transactie, uit UTXO's die zijn vergrendeld met een ScriptPubKey. De enige beperking voor miners is dat het geclaimde bedrag niet hoger is dan de totale kosten van alle transacties die naast de groepssubsidie zijn inbegrepen.
In tegenstelling tot traditionele transacties hebben de bitcoins die worden gegenereerd in een Coinbase-transactie echter een looptijd van 100 blokken. Dit betekent dat na het minen van het blok de verdiende bitcoins pas aan het einde van deze periode van 100 blokken kunnen worden gebruikt. Deze regel is bedoeld om complicaties te voorkomen die kunnen optreden als de bitcoins afkomstig zijn van een blockchain die later verouderd zou raken, aangezien gevalideerde blokken soms uiteindelijk worden weggegooid ten gunste van andere blokken van dezelfde hoogte, maar geïntegreerd in een keten die meer werk heeft verzameld. Als de nieuw aangemaakte bitcoins onmiddellijk beschikbaar zouden zijn, zouden alle transacties die deze bevatten, later kunnen worden geannuleerd, met verliezen voor de houders tot gevolg.

Door een periode van 100 blokken op te leggen voordat nieuw gecreëerde bitcoins kunnen worden uitgegeven, voorkomen we verstoringen die worden veroorzaakt door munten uit blokken die later ongeldig worden gemaakt, door te voorkomen dat ze op het systeem circuleren en andere gebruikers beïnvloeden. De kans dat een ketenreorganisatie plaatsvindt na 101 blokken is zo laag dat deze als nul wordt beschouwd.
Naast de outputs die de beloning verdelen, zullen er ook andere technische outputs in de coinbase zijn. Sinds de SegWit soft fork in 2017 moeten Coinbase-transacties ook een output bevatten met een OP_RETURN die de Merkle-root van transactiegetuigen bevat.

Dit mechanisme, dat is ontworpen om het probleem van de maakbaarheid van transacties op te lossen, scheidt de handtekeninggegevens van de rest van de transactie. In een blok worden deze handtekeninggegevens gegroepeerd in een Merkle-structuur die gescheiden is van die van de belangrijkste transactiegegevens, en de wortel van deze boom wordt ingevoegd in een Coinbase-transactie-uitvoer om ervoor te zorgen dat deze in het blok wordt geïntegreerd.

De rest van de resultaten van de Coinbase-transactie blijft gratis. Het is niet ongebruikelijk om meerdere OP_RETURNS in een coinbase te zien. Naast de root van de transactiegetuigen, die verplicht is in de aanwezigheid van SegWit-transacties in het blok, kunnen de andere OP_RETURNS willekeurige gegevens bevatten die door miners worden gebruikt voor verschillende specifieke doeleinden, zoals merged mining, waardoor Bitcoin proof-of-work kan worden hergebruikt op andere blockchains, meestal sidechains.
➤ Ontdek hoe Bitcoin-zijketens werken.
Coinbase-transacties spelen daarom een essentiële rol op Bitcoin. Ze dienen niet alleen om mijnwerkers te belonen, om hen aan te moedigen bij te dragen aan het zoeken naar bewijs van werk, maar ook om op een eerlijke, meritocratische en geprogrammeerde manier geld uit te geven, in overeenstemming met de regels van het protocol.
Coinbase-transacties verschillen van andere Bitcoin-transacties omdat ze een unieke invoer hebben die geen bestaande UTXO verbruikt. Met andere woorden, de bitcoins die worden gegenereerd door een Coinbase-transactie zijn vrij van enige voorgeschiedenis.
In de loop van de tijd is het gebruik van de Coinbase-transactie geëvolueerd. Sinds de implementatie van SegWit bevat het nu de Merkle-root van transactiegetuigen. Voor de mijnbouw worden deze vrije velden door de pools geëxploiteerd voor verschillende interne behoeften.

