Deine Wallet zeigt einen Saldo, aber Bitcoin selbst hat keine Konten. Es hat Coins, genannt UTXOs, und Transaktionen, die manche Coins zerstören und neue erzeugen.
Die Struktur
- Version (4 Bytes).
- Inputs: jeder nennt einen auszugebenden Coin mit einem Outpoint (txid + Output-Index), einem scriptSig und einem 4-Byte-nSequence-Feld.
- Outputs: jeder hat einen Betrag in Satoshis (8 Bytes) und ein Locking-Script, das scriptPubKey, das sagt, was zum Ausgeben nötig ist.
- nLockTime (4 Bytes): der früheste Block oder Zeitpunkt, zu dem die Transaktion gemined werden darf.
- Witness (nur SegWit): Signaturen und Scripts, außerhalb der txid.
Coins werden ganz ausgegeben
Ein UTXO lässt sich nicht teilen, solange er daliegt. Hast du einen 0,5-BTC-Coin und willst 0,2 BTC zahlen, gibst du den ganzen Coin aus und erzeugst zwei Outputs: 0,2 BTC an den Empfänger und etwa 0,3 BTC zurück an dich als „Wechselgeld“, meist an eine frische Adresse in deiner eigenen Wallet.
Die Gebühr ist unsichtbar
Kein Feld sagt „Gebühr“. Die Gebühr ist einfach Inputs minus Outputs. Addieren sich im Beispiel die Outputs zu 0,4999 BTC, kann der Miner die restlichen 0,0001 BTC beanspruchen. Vergisst du den Wechselgeld-Output, geht die ganze Differenz an den Miner.
Was eine Node prüft
- Jeder Input gibt einen Coin aus, der existiert und noch unspent ist.
- Das Script jedes Inputs zusammen mit dem Locking-Script des Coins (und Witness) läuft erfolgreich.
- Outputs summieren sich nicht zu mehr als den Inputs.
- Timelocks sind erfüllt.
Neue Coins prägen
Die eine Ausnahme von „Inputs zahlen Outputs“ ist die Coinbase-Transaktion, die erste in jedem Block, die die Blockbelohnung aus dem Nichts erzeugt. Ihre Outputs dürfen erst nach weiteren 100 Blöcken ausgegeben werden.
Policy-Grenzen
Bitcoin Core wendet zusätzlich zu Konsens Relay-Regeln an. Eine Standard-Transaktion darf höchstens 400.000 Weight Units haben. Outputs, deren Ausgabe mehr kostet als sie wert sind, heißen Dust und werden nicht weitergeleitet. Bei der Standard-Dust-Feerate liegt das unter 546 Satoshis für einen Legacy-P2PKH-Output und unter 294 Satoshis für einen nativen SegWit-P2WPKH-Output.
Takeaway
Jeder Bitcoin, den du besitzt, ist ein bestimmter Output einer früheren Transaktion, gesperrt durch ein Script, das nur dein Schlüssel erfüllen kann.