Hvad er et Bitcoin ubrugte transaktionsoutput (UTXO)?

Begynderguide til Bitcoins UTXO-model 📕
Ubrugte transaktion output (UTXO) er den teknik, som Bitcoin-protokollen bruger til at spore saldi, mens de bevæger sig mellem kryptovaluta-tegnebøger.
Når det kommer til at spore og administrere individuelle kryptovaluta-saldi, bruger blockchain-baserede protokoller typisk en af to forskellige regnskabsmodeller.
Den ene kaldes Account/Balance model. Projekter som Ethereum, Tezos og EOS bruger denne model til at spore saldi, mens blockchain-brugere udfører transaktioner. Den anden kaldes Unspent Transaction Output (UTXO) modellen.
Bitcoin og mange andre kryptovalutaer som Litecoin, Cardano og Dogecoin bruger UTXO-modellen.
Men hvad er det præcist, hvordan fungerer det, og hvad er fordelene ved UTXO sammenlignet med Account/Balance-modellen?
Forståelse af UTXO-modellen 💻
Historik
Adam Back og den afdøde Hal Finney var to medlemmer af Cypherpunk cryptography gruppen, som bitcoin white paper forfatter Satoshi Nakamoto ofte besøgte. De to krediteres for at have udviklet UTXO-modellen uafhængigt mellem 1997 og 2004 henholdsvis.
Da Bitcoins skaber Satoshi Nakamoto lancerede protokollen i 2009, blev det det første operationelle digitale valutasystem, der implementerede UTXO-modellen.
Både Hal Finney og Adam Back har længe været mistænkt for at være Satoshi Nakamoto, selvom det aldrig er blevet bevist med sikkerhed.
UTXO ved første øjekast
Når du sender bitcoin til nogen, finder der flere trin sted programmatisk. Et af de tidligste trin i transaktionsprocessen er, at din cryptocurrency tegnebog scanner blockchain for det beløb, du har. Disse midler er kendt som unspent transaction outputs (UTXOs).
Du kan tænke på UTXOs som småpenge, der er tilbage fra tidligere bitcoin-transaktioner.
Midlerne betragtes som "ubrugte", fordi de er frit tilgængelige for dig at sende til nogen eller flytte til en anden tegnebog. De kaldes "transaktionsoutput", fordi de blev oprettet fra tidligere transaktioner.
Hvis du bruger $12 på frokost med en $20-seddel, ville du have en $8-seddel tilbage. I dette eksempel ville den resterende $8 være en ubrugte transaktionsoutput. Det ville gå tilbage i din tegnebog klar til at blive brugt til at købe noget andet.
Dette er præcis, hvordan bitcoin UTXO'er fungerer. Når du laver en transaktion, bruges output fra tidligere bitcoin-transaktioner, dvs. din løse bitcoin-veksel, som input til nye transaktioner.
En anden vigtig sammenligning mellem fysiske kontanttransaktioner og UTXO'er er, at begge skal bruges fuldt ud og kan ikke opdeles. Hvis du har en 5 bitcoin UTXO og ønsker at sende nogen 1 BTC, skal du sende hele UTXO'en værd 5 bitcoin og modtage en ny UTXO til gengæld værd 4 BTC minus eventuelle gebyrer.
Ligesom i eksemplet ovenfor, hvor du giver en hel $20-seddel for at betale for en $10-frokost.
Når en UTXO bruges, betragtes den som "forbrugt" og fjernes teknisk set fra cirkulation.
Enhver resterende veksel genereres som en helt ny UTXO. Denne del af UTXO-systemet er, hvordan Bitcoin løser problemet med dobbeltforbrug.
Ligesom du ikke kan give en butiksejer en $5-seddel og derefter give den samme $5-seddel til en anden, kan en bitcoin-bruger ikke succesfuldt bruge den samme ubrugte transaktionsoutput i to separate digitale transaktioner.
Når en person forsøger at bruge den samme UTXO to gange, ender de to transaktioner i en mempool - en slags venteværelse for ventende transaktioner. De forbliver her, indtil succesfulde minearbejdere, der vinder proof-of-work-konkurrencen, samler dem i nye blokke.
Du kan lære mere om denne proces i vores Kraken Learn Center-artikel Hvad er bitcoin mining?
Selv hvis begge transaktioner samles i to separate blokke og behandles samtidigt, ville en af transaktionerne blive verificeret før den anden på grund af tidsstempling. Efter at et antal bekræftelser er passeret (nye blokke tilføjet til blockchain) ville andre noder markere den anden ugyldige transaktion og afvise den.
Coinbase-transaktioner
Den eneste gang en bitcoin-transaktion ikke har input er, når nyudvundne BTC skabes fra mining.
Kendt som en coinbase-transaktion, repræsenterer dette den første transaktion i hver ny blok.
Hver satoshi (de underenheder af bitcoin), der er i cirkulation, kan spores tilbage ved hjælp af den transparente blockchain-lærebog til deres respektive coinbase-transaktion.
Hvorfor bruger Bitcoin UTXO-modellen?
Kontosaldo
For at identificere en brugers saldo, også kendt som et UTXO-sæt, scanner kryptovaluta-wallet-software blockchainen for at finde alle UTXO'er, der er knyttet til den tilsvarende offentlige wallet-adresse.
Den samlede sum af alle UTXO'er giver en præcis opgørelse over, hvor meget kryptovaluta en wallet-ejer kontrollerer.
Når en UTXO bruges, tildeles modtagerens offentlige wallet-adresse beløbet, og en ny UTXO registreres på blockchainen, når den er udført.
Lagring
Bitcoin UTXO'er registreres i forskellige transaktioner, som er gemt i blokke på Bitcoin blockchainen. Dog er disse oplysninger ikke klart indekseret, så det kan være svært at søge efter og samle metadata hurtigt.
Når man bruger wallet-software som Bitcoin Core-klienten, gemmes og indekseres UTXO-metadata ved hjælp af en LevelDB-database. LevelDB er et open-source lagringssystem oprettet af Google i 2011 og gør det meget hurtigere at finde UTXO'er.
Bitcoin Core-klienten er en populær software, der bruges til at oprette forbindelse til Bitcoin blockchain-netværket. Oprindeligt oprettet af Satoshi Nakamoto, vedligeholdes Bitcoin Core nu af et fællesskab af frivillige udviklere.
UTXOs under motorhjelmen 🚗
På et mere teknisk niveau er der fire hoveddele af en transaktion:
- Version: Dette informerer netværksnoder om, hvilken version af klientsoftware der anvendes. Forskellige versioner følger forskellige regler for verifikation af transaktionsdata.
- Låsetid: Dette er den mængde tid, der bestemmer, hvor hurtigt en transaktion tilføjes til blockchainen. Denne input dikterer, hvad det tidligste mulige tidspunkt er for, at transaktionen kan behandles af mine-noder.
- Input: Oplysninger, der peger på kilden til midlerne eller den tidligere transaktion, hvor UTXO'en blev produceret. Inputtet indeholder også noget kaldet "unlocking script".
- Output: Information vedrørende værdien, der overføres, den wallet, hvor ejerskabet af midlerne overdrages til, og nye UTXOs, der dannes. Outputtet indeholder også et "locking script".
Hvordan UTXOs adskiller sig fra fysisk kontanter
De vigtigste forskelle mellem analogien med fysiske sedler og UTXO-modellen er, at bitcoin og andre UTXO-baserede kryptovalutaer ikke er bundet af faste beløb, dvs. $5, $10, $15 osv. Ethvert beløb af bitcoin (op til otte decimaler) kan være en ubrugte transaktionsoutput.
For eksempel kan du have 0,0003847 BTC tilbage fra en transaktion.
Dette beløb ville blive til en ny UTXO, som skal bruges i sin helhed, hvis den anvendes, og kan ikke opdeles i mindre beløb.
Lad os sige, at John har en kryptovaluta-wallet med en saldo på 1 bitcoin. Hans saldo og sammensætningen af den saldo er to forskellige ting, ligesom du måske har $100 i din wallet, men det kunne bestå af fire $20-sedler, to $5-sedler og en $10-seddel.
Lad os sige, at sammensætningen af Johns 1 BTC-saldo består af 5 forskellige ubrugte transaktionsoutput.
- 0.138 BTC
- 0,1 BTC
- 0.004 BTC
- 0,73 BTC
- 0,028 BTC
John ønsker at sende 0,6 BTC til Jane. For at gøre dette vil Johns wallet-software automatisk gruppere et vilkårligt antal UTXOs, han kontrollerer, for at dække denne transaktion plus eventuelle miner-gebyrer, der er involveret i at behandle den.
I dette eksempel, lad os sige, at hans wallet-software automatisk sender Johns bitcoin UTXO værd 0,73 BTC til Jane og returnerer det resterende beløb minus transaktionsgebyrer til John som en ny UTXO.
Dette beløb sendes automatisk til en ændringsadresse; en separat adresse knyttet til din krypto wallet.
Låse- og oplåsningsscripts 🔒
Når UTXO'er oprettes, låses de ved hjælp af modtagerens offentlige tegnebogsadresse. For at bruge den UTXO som en input i en ny transaktion, skal den først låses op ved hjælp af afsenderens digitale signatur.
Dette er en anden vigtig ting at forstå om bitcoin-transaktioner. Når en transaktion foretages, flyttes bitcoin ikke digitalt fra én konto til en anden. I stedet låses de op, tildeles en ny ejer og låses derefter tilbage igen.
Dette betyder, at kun den nye ejer kan låse midlerne op ved hjælp af deres digitale signatur og overføre dem et andet sted; til en anden person eller til en anden tegnebog under deres kontrol.
Script er et programmeringssprog, der bruges af Bitcoin til at behandle transaktioner, herunder låsning og oplåsning af UTXO'er.
- Låsescript (ScriptPubKey): Når en UTXO er låst, angiver låsescriptet (kendt som ScriptPubKey) betingelser, der skal opfyldes, før UTXO'en kan bruges som input. Dette involverer normalt at bevise, at du ejer den private nøgle, der svarer til den offentlige tegnebogsadresse, der blev brugt til at låse UTXO'en, ved at give en digital signatur.
- Oplåsningsscript (ScriptSig): For at låse en UTXO op skal du opfylde betingelserne fastsat af låsescriptet, dvs. give en digital signatur, der beviser, at du kontrollerer de private nøgler, der svarer til den offentlige nøgle, der blev brugt til at låse UTXO'en.
Dette forhindrer andre i at få adgang til og bruge disse midler.
Hvad er Bitcoin-støv?
Bitcoin-støv refererer til UTXO'er, der indeholder små spor af satoshis, der er tilbage fra tidligere transaktioner.
På egen hånd ville disse mikroskopiske mængder BTC koste mere i transaktionsgebyrer at behandle, end de var værd, og derfor sidder de ofte i ændringstejnebogsadresser og venter på at blive samlet sammen med andre UTXO'er og brugt.
Hvad er et dusting-angreb?
Dusting-angreb refererer til svindlere, der sender støv til hundrede tusinder af forskellige tegnebogsadresser. Ideen bag det er at fastslå potentielle mål for social engineering-angreb.
En svindler vil overvåge adresser, der indeholder det støv, de har sendt, og vente på, at ejeren foretager en transaktion, der samler UTXO'er fra forskellige adresser, der er knyttet til deres tegnebog. Fordi støv UTXO'er er så små, er der en god chance for, at de bliver grupperet sammen med andre og brugt som input.
Når dette sker, kan svindleren få en idé om, hvilke midler en person har. De kan derefter vælge at indlejre phishing-beskeder i transaktioner, der inviterer ejeren til at klikke på et link, der downloader malware, eller besøge falske websteder, der imiterer legitime landingssider og beder om personlige oplysninger.
Hvor farlige er bitcoin dusting-angreb?
Dusting-angreb giver ikke svindlere adgang til dine midler.
De tjener blot til at indsnævre, hvilke adresser der kontrolleres af en bestemt kryptovaluta-tegnebog.
For at minimere din risiko for dusting-angreb er det bedst aldrig at klikke på links eller besøge websteder, der er knyttet til dust-transaktioner.
Begynd at købe Bitcoin
Nu hvor du har lært alt om modellen for ubrugte transaktionsoutput, er du klar til at fortsætte din kryptorejse og købe bitcoin?
Tjek vores Kraken Learn Center-guide for mere information om Hvordan man køber Bitcoin (BTC) og tilmelde dig en konto hos Kraken i dag.