Lommeboken din viser en saldo, men Bitcoin selv har ingen kontoer. Den har mynter, kalt UTXO-er, og transaksjoner som ødelegger noen mynter og skaper nye.
Strukturen
- Version (4 byte).
- Inndata: hver navngir en mynt som skal brukes med et outpoint (txid + utdataindeks), en scriptSig og et 4-byte nSequence-felt.
- Utdata: hver har et beløp i satoshi (8 byte) og et låsescript, scriptPubKey, som sier hva som trengs for å bruke den.
- nLockTime (4 byte): tidligste blokk eller tid transaksjonen kan mines.
- Witness (SegWit bare): signaturer og scripter, holdt utenfor txid.
Mynter brukes hele
En UTXO kan ikke deles mens den sitter der. Hvis du holder en 0,5 BTC-mynt og vil betale 0,2 BTC, bruker du hele mynten og skaper to utdata: 0,2 BTC til mottakeren og omkring 0,3 BTC tilbake til deg selv som «vekslepenger», vanligvis til en fersk adresse i din egen lommebok.
Gebyret er usynlig
Ingen felt sier «gebyr». Gebyret er rett og slett inndata minus utdata. I eksempelet over, hvis utdataene summerer til 0,4999 BTC, kan utvinneren kreve de gjenværende 0,0001 BTC. Glem vekslepenger-utdataen, og hele forskjellen går til utvinneren.
Hva en node sjekker
- Hver inndata bruker en mynt som finnes og fortsatt er ubrukt.
- Hver indatas script, sammen med myntens låsescript (og witness), kjører vellykket.
- Utdata summerer ikke til mer enn inndata.
- Tidslåser er oppfylt.
Å mynte nye mynter
Unntaket fra «inndata betaler for utdata» er coinbase-transaksjonen, den første i hver blokk, som skaper blokkbelønningen fra ingenting. Dens utdata kan bare brukes etter 100 videre blokker.
Policygrenser
Bitcoin Core bruker også relay-regler oppå konsensus. En standardtransaksjon kan være høyst 400 000 vektenheter. Utdata som koster mer å bruke enn de er verdt kalles dust og videresendes ikke. Ved standard dust-gebyrsats er det under 546 satoshi for en legacy P2PKH-utdata og under 294 satoshi for en native SegWit P2WPKH-utdata.
Takeaway
Hver bitcoin du eier er en spesifikk utdata fra en tidligere transaksjon, låst av et script bare nøkkelen din kan oppfylle.