Hva er en Bitcoin unspent transaction output (UTXO)?

Nybegynnerguiden til Bitcoins UTXO-modell 📕
Unspent transaction output (UTXO) er teknikken Bitcoin-protokollen bruker for å spore balanser når de flyttes mellom kryptolommebøker.
Når det gjelder sporing og administrasjon av individuelle kryptobalanser, bruker blokkjede-baserte protokoller vanligvis en av to forskjellige regnskapsmodeller.
Den ene kalles Account/Balance-modellen. Prosjekter som Ethereum, Tezos og EOS bruker denne modellen for å spore balanser når blokkjede-brukere utfører transaksjoner. Den andre kalles Unspent Transaction Output (UTXO)-modellen.
Bitcoin og mange andre kryptovalutaer som Litecoin, Cardano og Dogecoin bruker UTXO-modellen.
Men hva er det egentlig, hvordan fungerer det, og hva er fordelene med UTXO sammenlignet med Account/Balance-modellen?
Forstå UTXO-modellen 💻
Historie
Adam Back og avdøde Hal Finney var to medlemmer av Cypherpunk kryptografi-gruppen som bitcoin white paper-forfatter Satoshi Nakamoto frekventerte. De to er kreditert for å ha utviklet UTXO-modellen uavhengig mellom henholdsvis 1997 og 2004.
Da Bitcoins skaper Satoshi Nakamoto lanserte protokollen i 2009, ble det det første operative digitale valutasystemet som implementerte UTXO-modellen.
Både Hal Finney og Adam Back har lenge vært mistenkt for å være Satoshi Nakamoto, selv om det aldri er bevist med sikkerhet.
UTXO i et nøtteskall
Når du sender bitcoin til noen, skjer det flere trinn programmatisk. Et av de tidligste trinnene i transaksjonsprosessen er at din kryptovaluta-lommebok skanner blokkjeden for mengden midler du har. Disse midlene er kjent som unspent transaction outputs (UTXOer).
Du kan tenke på UTXOer som vekslepenger til overs fra tidligere bitcoin-transaksjoner.
Midlene anses som «ubrukte» fordi de er fritt tilgjengelige for deg å sende til noen eller flytte til en annen lommebok. De kalles «transaksjonsutganger» fordi de ble opprettet fra tidligere transaksjoner.
Hvis du bruker 12 $ på lunsj med en 20 $-seddel, ville du ha en 8 $-seddel til overs. I dette eksemplet ville den resterende 8 $-seddelen være en ubrukt transaksjonsutgang. Den ville gå tilbake i lommeboken din, klar til å brukes til å kjøpe noe annet.
Dette er nøyaktig hvordan bitcoin UTXOer fungerer. Når du foretar en transaksjon, brukes utganger fra tidligere bitcoin-transaksjoner, dvs. dine løse bitcoin-vekslepenger, som innganger for nye transaksjoner.
En annen viktig sammenligning mellom fysiske kontanttransaksjoner og UTXOer er at begge må brukes i sin helhet og kan ikke deles opp. Hvis du har en UTXO på 5 bitcoin og ønsker å sende noen 1 BTC, må du sende hele UTXOen verdt 5 bitcoin og motta en ny UTXO i retur verdt 4 BTC minus eventuelle gebyrer.
Akkurat som i eksemplet ovenfor hvor du leverer en hel 20 $-seddel for å betale for en lunsj til 10 $.
Når en UTXO brukes, anses den som «forbrukt» og fjernes teknisk sett fra sirkulasjon.
Eventuelle vekslepenger som er til overs, genereres som en helt ny UTXO. Denne delen av UTXO-systemet er hvordan Bitcoin løser dobbeltforbruksproblemet.
Akkurat som du ikke fysisk kan gi en butikkeier en 5 $-seddel og deretter gi den samme 5 $-seddelen til noen andre, kan en bitcoin-bruker ikke lykkes med å bruke den samme ubrukte transaksjonsutgangen i to separate digitale transaksjoner.
Når en person forsøker å bruke den samme UTXOen to ganger, havner de to transaksjonene i en mempool – et slags venterom for ventende transaksjoner. De forblir her til vellykkede minere som vinner proof-of-work-konkurransen, samler dem i nye blokker.
Du kan lære mer om denne prosessen i vår Kraken Learn Center-artikkel Hva er bitcoin-mining?
Selv om begge transaksjonene er samlet i to separate blokker og behandles samtidig, vil en av transaksjonene bli verifisert før den andre på grunn av tidsstempling. Etter at et antall bekreftelser har passert (nye blokker lagt til blokkjeden), vil andre noder flagge den andre ugyldige transaksjonen og avvise den.
Coinbase-transaksjoner
Den eneste gangen en bitcoin-transaksjon ikke har innganger, er når nylig preget BTC opprettes fra mining.
Dette er kjent som en coinbase-transaksjon, og representerer den første transaksjonen i hver nye blokk.
Hver satoshi (underenhetene av bitcoin) i sirkulasjon kan spores tilbake ved hjelp av den transparente blokkjede-hovedboken til deres respektive coinbase-transaksjon.
Hvorfor bruker Bitcoin UTXO-modellen?
Saldo på konto
For å identifisere en brukers balanse, også kjent som et UTXO-sett, skanner kryptolommebokprogramvare blokkjeden for å finne alle UTXOer knyttet til den tilsvarende offentlige lommebokadressen.
Den totale summen av alle UTXOer gir en nøyaktig oversikt over hvor mye krypto en lommebokseier kontrollerer.
Når en UTXO brukes, tildeles mottakerens offentlige lommebokadresse beløpet, og en ny UTXO registreres på blokkjeden når den er utført.
Lagring
Bitcoin UTXOer registreres i ulike transaksjoner som lagres i blokker på Bitcoin-blokkjeden. Denne informasjonen er imidlertid ikke tydelig indeksert, så det kan være vanskelig å søke etter og samle metadata raskt.
Når du bruker lommebokprogramvare som Bitcoin Core-klienten, lagres og indekseres UTXO-metadata ved hjelp av en LevelDB-database. LevelDB er et åpen kildekode-lagringssystem opprettet av Google i 2011 og gjør det mye raskere å finne UTXOer.
Bitcoin Core-klienten er en populær programvare som brukes til å koble til Bitcoin-blokkjedenettverket. Opprinnelig opprettet av Satoshi Nakamoto, vedlikeholdes Bitcoin Core nå av et fellesskap av frivillige utviklere.
UTXOer under panseret 🚗
På et mer teknisk nivå er det fire hoveddeler i en transaksjon:
- Versjon: Dette informerer nettverksnoder om hvilken versjon av klientprogramvare som brukes. Ulike versjoner følger forskjellige regler for verifisering av transaksjonsdata.
- Låsetid: Dette er tidsperioden som bestemmer hvor raskt en transaksjon legges til blokkjeden. Denne inngangen dikterer hva som er den tidligste mulige tiden for at transaksjonen skal behandles av mining-noder.
- Inngang: Informasjon som peker til kilden til midler eller tidligere transaksjon der UTXOen ble produsert. Inngangen inneholder også noe som kalles «opplåsingsskriptet».
- Utgang: Informasjon om verdien som overføres, lommeboken der eierskapet til midlene tildeles på nytt, og nye UTXOer som dannes. Utgangen inneholder også et «låseskript».
Hvordan UTXOer skiller seg fra fysiske kontanter
Hovedforskjellene mellom analogien med fysiske sedler og UTXO-modellen er at bitcoin og andre UTXO-baserte kryptoaktiva ikke er bundet av faste beløp, dvs. 5 $, 10 $, 15 $, osv. Ethvert beløp av bitcoin (opptil åtte desimaler) kan være en ubrukt transaksjonsutgang.
For eksempel kan du ha 0.0003847 BTC til overs fra en transaksjon.
Dette beløpet vil bli en ny UTXO som må brukes i sin helhet hvis den brukes, og kan ikke deles inn i mindre beløp.
La oss si at John har en kryptolommebokbalanse på 1 bitcoin. Balansen hans og sammensetningen av den balansen er to forskjellige ting, på samme måte som du kan ha 100 $ i lommeboken, men det kan bestå av fire 20 $-sedler, to 5 $-sedler og en 10 $-seddel.
La oss si at sammensetningen av Johns 1 BTC-balanse består av 5 forskjellige ubrukte transaksjonsutganger.
- 0.138 BTC
- 0.1 BTC
- 0.004 BTC
- 0.73 BTC
- 0.028 BTC
John ønsker å sende 0.6 BTC til Jane. For å gjøre dette vil Johns lommebokprogramvare automatisk gruppere et hvilket som helst antall UTXOer han kontrollerer for å dekke denne transaksjonen pluss eventuelle mineravgifter som er involvert for å behandle den.
I dette eksemplet, la oss si at lommebokprogramvaren hans automatisk sender Johns bitcoin UTXO verdt 0.73 BTC til Jane og returnerer det resterende beløpet minus transaksjonsgebyrer til John som en ny UTXO.
Dette beløpet sendes automatisk til en veksleadresse; en separat adresse knyttet til din kryptolommebok.
Låse- og opplåsingsskript 🔒
Når UTXOer opprettes, låses de ved hjelp av mottakerens offentlige lommebokadresse. For å bruke den UTXOen som en inngang i en ny transaksjon, må den først låses opp ved hjelp av avsenderens digitale signatur.
Dette er en annen viktig ting å forstå om bitcoin-transaksjoner. Når en transaksjon utføres, flyttes ikke bitcoin digitalt fra én konto til en annen. I stedet låses de opp, tildeles en ny eier og låses deretter igjen.
Dette betyr at bare den nye eieren kan låse opp midlene ved hjelp av sin digitale signatur og overføre dem andre steder; til en annen person eller til en annen lommebok under deres kontroll.
Script er et programmeringsspråk som brukes av Bitcoin for å behandle transaksjoner, inkludert låsing og opplåsing av UTXOer.
- Låseskript (ScriptPubKey): Når en UTXO er låst, angir låseskriptet (kjent som ScriptPubKey) betingelser som må oppfylles før UTXOen kan brukes som en inngang. Dette innebærer vanligvis å bevise at du eier den private nøkkelen som tilsvarer den offentlige lommebokadressen som ble brukt til å låse UTXOen, ved å oppgi en digital signatur.
- Opplåsingsskript (ScriptSig): For å låse opp en UTXO må du oppfylle betingelsene satt av låseskriptet, dvs. oppgi en digital signatur som beviser at du kontrollerer de private nøklene som tilsvarer den offentlige nøkkelen som ble brukt til å låse UTXOen.
Dette forhindrer alle andre fra å få tilgang til og bruke disse midlene.
Hva er Bitcoin dust?
Bitcoin dust refererer til UTXOer som inneholder ørsmå spor av satoshis til overs fra tidligere transaksjoner.
Alene ville disse minimale mengdene BTC koste mer i transaksjonsgebyrer å behandle enn de var verdt, og derfor blir de ofte liggende i veksleadresser og venter på å bli samlet med andre UTXOer og brukt.
Hva er et dusting-angrep?
Dusting-angrep refererer til svindlere som sender ut dust til hundretusenvis av forskjellige lommebokadresser. Ideen bak det er å finne potensielle mål for sosial manipulering-angrep.
En svindler vil overvåke adresser som inneholder dust de har sendt, og vente på at eieren skal foreta en transaksjon som samler UTXOer fra forskjellige adresser knyttet til lommeboken deres. Fordi dust-UTXOer er så små, er det en god sjanse for at de blir gruppert sammen med andre og brukt som innganger.
Når dette skjer, kan svindleren få en idé om hvilke midler en person har. De kan deretter velge å legge inn phishing-meldinger i transaksjoner som inviterer eieren til å klikke på en lenke som laster ned skadelig programvare, eller besøke falske nettsteder som etterligner legitime landingssider og ber om personlig informasjon.
Hvor farlige er bitcoin dusting-angrep?
Dusting-angrep gir ikke svindlere tilgang til midlene dine.
De tjener kun til å snevre inn hvilke adresser som kontrolleres av en bestemt kryptolommebok.
For å minimere risikoen for dusting-angrep er det best å aldri klikke på lenker eller besøke nettsteder knyttet til dust-transaksjoner.
Begynn å kjøpe Bitcoin
Nå som du har lært alt om modellen for ubrukte transaksjonsutganger, er du klar til å fortsette din kryptoreise og kjøpe bitcoin?
Sjekk ut vår Kraken Learn Center-guide for mer informasjon om Hvordan kjøpe Bitcoin (BTC) og registrer deg for en konto hos Kraken i dag.