begin
begin

Bitcoin is een peer-to-peer monetair systeem waar gebruikers waarde kunnen uitwisselen zonder tussenkomst van een betrouwbare tussenpersoon. Om transacties uit te voeren, wordt een ontvangstadres gebruikt om bitcoins te ontvangen en vervolgens wordt de bijbehorende privésleutel gebruikt om dit geld uit te geven. Maar hoe werken al deze elementen concreet op elkaar in een transactie?
In dit artikel gaan we dieper in op de fundamentele mechanismen van Bitcoin. U leert hoe BTC op het systeem wordt weergegeven, hoe ze worden vergrendeld en ontgrendeld en hoe transacties in detail werken.
Bij Bitcoin worden munteenheden niet beheerd volgens een rekeningmodel zoals in het banksysteem. In plaats daarvan worden bitcoins vertegenwoordigd door UTXos (Uitkomsten van niet-bestede transacties), die in wezen uitstromen zijn van transacties die nog niet zijn uitgegeven. Elke UTXO vertegenwoordigt een specifieke hoeveelheid bitcoin van een eerdere transactie die beschikbaar is voor uitgaven.
Een UTXO kan worden gezien als de monetaire ondersteuning van Bitcoin, net zoals fysieke bankbiljetten in het klassieke monetaire systeem. Een enkele UTXO kan dus elke waarde vertegenwoordigen, variërend van een satoshi (= 0,00000001 BTC) tot meerdere bitcoins.
Laten we het voor een beter begrip vergelijken met een bankrekening. Op uw account worden uw transacties rechtstreeks in uw saldo weergegeven. Elke aankoop of opname verlaagt je saldo, en elke storting verhoogt het. Bij Bitcoin is er geen rekeningsaldo, maar een reeks UTXO's die de verschillende beschikbare hoeveelheden bitcoin weergeven.
Wanneer u een Bitcoin-transactie wilt uitvoeren, gebruikt u UTXO's waarvan u de eigenaar bent als invoer (Ingangen) om nieuwe UTXO's te genereren in ruil voor outputs (Uitgangen). Een transactie verbruikt dus UTXO's als input en creëert nieuwe UTXO's als output.

Het is echter belangrijk op te merken dat een UTXO niet gedeeltelijk kan worden geconsumeerd: als deze in een transactie wordt gebruikt, moet deze volledig worden verbruikt. Het is vergelijkbaar met hoe bankbiljetten werken: als je €5 wilt uitgeven maar slechts een biljet van €10 hebt, kun je de rekening niet zomaar halveren. Je bent verplicht om €10 te geven aan de ontvanger die je €5 wisselgeld geeft.
In het geval van een Bitcoin-transactie werkt dat op dezelfde manier. Als de waarde van de gebruikte UTXO hoger is dan het te betalen bedrag, ontvangt de betaler een nieuwe UTXO als output, die het verschil vertegenwoordigt tussen de UTXO die als input wordt gebruikt en het voor de begunstigde bestemde bedrag. Deze UTXO die aan de betaler toekomt, wordt de „exchange” genoemd.
Als Alice bijvoorbeeld een UTXO van 2 BTC heeft en een product wil kopen voor 0,5 BTC, zal ze deze UTXO gebruiken als input om 2 nieuwe UTXO's als output te creëren: een van 0,5 BTC voor betaling en een andere van 1,5 BTC voor de uitwisseling die haar verschuldigd is.

Om de veiligheid van UTXO's van elke gebruiker te garanderen, hebben we een mechanisme nodig om ze veilig te vergrendelen, terwijl de legitieme gebruiker ze kan ontgrendelen. Dit gebeurt door middel van scripts.
Met een script kunnen we voorwaarden stellen aan UTXO's die bij ons horen om hun uitgaven te beheersen. Doorgaans vereist de voorwaarde dat de gebruiker een digitale handtekening verstrekt die is gemaakt met een privésleutel die alleen de gebruiker kent. Dit is waar de Bitcoin-portemonnee van pas komt, die wordt gebruikt om al uw privésleutels te beveiligen. Tijdens een transactie presenteert de gebruiker de UTXO die hij wil gebruiken en de handtekening die nodig is om te voldoen aan de uitgavenvoorwaarde die in het script is vastgelegd. De knooppunten van het Bitcoin-netwerk zijn vervolgens verantwoordelijk voor het verifiëren van de geldigheid van deze handtekening, zodat de transactie aan de blockchain kan worden toegevoegd.

Bij elke Bitcoin-transactie zijn er twee soorten scripts: de” Script PubKey ”, waarmee de UTXO wordt vergrendeld, en de” ScriptSig ”, waardoor het kan worden ontgrendeld.
Wanneer u bitcoin ontvangt, houdt het proces in dat de afzender een transactie aanmaakt. In deze zal hij een UTXO invoeren die bij hem hoort en die zal worden geconsumeerd, terwijl een nieuwe UTXO voor jou wordt aangemaakt als output. Op dit moment wordt uw UTXO vergrendeld met uw ontvangstadres.
Deze bewerking wordt uitgevoerd met een Script PubKey. Dit script is geïntegreerd in de uitvoer van de transactie die de UTXO creëert. Het specificeert de regels die elke toekomstige gebruiker moet volgen om UTXO te ontgrendelen en uit te geven.

De Script PubKey maakt gebruik van een reeks instructies met de naam „” Opcodes ” om deze voorwaarden te definiëren. Bijvoorbeeld in een standaard P2PKH-transactie (Pay-to-Pubkey-hash), de Script PubKey kan een geldige handtekening vereisen die overeenkomt met een gehashte openbare sleutel, d.w.z. een ontvangstadres. Hier is een voorbeeld van Script PubKey Klassieke P2PKH:
OP_DUP OP_HASH160 OP_PUSHBYTES_20 <adresse de réception> OP_EQUALVERIFY OP_CHECKSIG
In dit script:
In dit Script PubKey, de UTXO is vergrendeld zodat alleen de gebruiker met de privésleutel die overeenkomt met het opgegeven ontvangstadres deze UTXO kan ontgrendelen en uitgeven door de vereiste handtekening te verstrekken. Dit betekent dat wanneer u een ontvangstadres opgeeft aan een betaler om bitcoin te ontvangen, de portemonnee van de betaler een UTXO aanmaakt. Deze UTXO is beveiligd door een Script PubKey waaronder het adres dat je hebt opgegeven.
➤ Meer informatie over Bitcoin-ontvangstadressen.
Op uw beurt kunt u uw bitcoins in een toekomstige transactie uitgeven door een (of meer) van uw UTXO's als invoer te gebruiken. Maar daarvoor moet je eerst de betreffende UTXO ontgrendelen.
Bij het ontgrendelen van een UTXO moet worden voldaan aan de voorwaarden die zijn gedefinieerd door de Script PubKey ermee verbonden. Deze bewerking wordt uitgevoerd met behulp van het ontgrendelingsscript, dat ook wel „” wordt genoemd ScriptSig ”. De ScriptSig is daarom inbegrepen bij de invoer van een Bitcoin-transactie. Het bevat alle noodzakelijke elementen zodat wanneer het wordt uitgevoerd met de Script PubKey Dienovereenkomstig is het resultaat” waar ”, wat betekent dat aan de uitgavenvoorwaarden is voldaan.

Laten we teruggaan naar ons voorbeeld van een standaard P2PKH-transactie: om de UTXO te ontgrendelen, de ScriptSig zou bestaan uit de handtekening en de openbare sleutel die overeenkomt met het ontvangende adres:
<signature><clé publique>
Wanneer een transactie is gemaakt, wordt de ScriptSig gekoppeld aan elke transactieboeking wordt eerst uitgevoerd, gevolgd door de uitvoering van de Script PubKey gekoppeld aan de UTXO die als invoer wordt gebruikt. Als de ScriptSig biedt een geldige handtekening die overeenkomt met de openbare sleutel die wordt verwacht door de Script PubKey, dan is aan de uitgavenvoorwaarde voldaan. Dit maakt het mogelijk om de betreffende UTXO te consumeren en de bitcoins die het vertegenwoordigt uit te geven.
➤ Ontdek hoe u UTXO's die in DCA zijn gekocht, op de juiste manier beheert.
Bitcoin werkt volgens een UTxOS-model, de dragers die de munteenheden binnen het systeem vertegenwoordigen. Elke transactie gebruikt bestaande UTXO's als invoer en creëert nieuwe UTXO's als uitvoer. Zo circuleert geld.
De scripts in Bitcoin bepalen de voorwaarden waaronder deze UTXO's kunnen worden besteed. De Script PubKey wordt gebruikt om fondsen te vergrendelen, terwijl de ScriptSig wordt gebruikt om te voldoen aan de Script PubKey en zo de BTC ontgrendelen. Dit mechanisme zorgt ervoor dat alleen personen die in het bezit zijn van de informatie die nodig is voor de ontgrendeling (meestal de privésleutel) de bitcoins kunnen uitgeven.

