Mikä on Bitcoinin käyttämätön transaktiotuloste (UTXO)?

Kirjoittanut Kraken Learn team
10 min
20. marraskuuta 2024

Aloittelijan opas Bitcoinin UTXO-malliin 📕

Käyttämätön transaktiolähtö (UTXO) on tekniikka, jota Bitcoin-protokolla käyttää saldojen seuraamiseen niiden siirtyessä kryptolompakoiden välillä.

Yksittäisten kryptosaldon seuraamiseen ja hallintaan lohkoketjupohjaiset protokollat käyttävät tyypillisesti yhtä kahdesta eri kirjanpitomallista.

Yksi niistä on nimeltään tili-/saldomalli. Projektit kuten Ethereum, Tezos ja EOS käyttävät tätä mallia saldojen seuraamiseen lohkoketjun käyttäjien suorittaessa transaktioita. Toinen on nimeltään käyttämätön transaktiolähtö (UTXO) -malli. 

Bitcoin ja monet muut kryptovaluutat, kuten Litecoin, Cardano ja Dogecoin, käyttävät UTXO-mallia. 

Mutta mitä se tarkalleen ottaen on, miten se toimii ja mitä etuja UTXO:lla on tili-/saldomalliin verrattuna?

BTC icon
68 117.00
−1,71 %
24 h
btc

UTXO-mallin ymmärtäminen 💻

Historia

Adam Back ja edesmennyt Hal Finney olivat kaksi Cypherpunk kryptografia-ryhmän jäsentä, jossa Bitcoinin white paperin kirjoittaja Satoshi Nakamoto vieraili usein. Heidän molempien ansioksi luetaan UTXO-mallin kehittäminen itsenäisesti vuosina 1997 ja 2004. 

Kun Bitcoinin luoja Satoshi Nakamoto julkaisi protokollan vuonna 2009, siitä tuli ensimmäinen toimiva digitaalinen valuuttajärjestelmä, joka toteutti UTXO-mallin.

Sekä Hal Finneyä että Adam Backia on pitkään epäilty Satoshi Nakamotoksi, vaikka sitä ei ole koskaan varmuudella todistettu.

UTXO yhdellä silmäyksellä

Kun lähetät Bitcoinia jollekin, useita vaiheita tapahtuu ohjelmallisesti. Yksi varhaisimmista vaiheista transaktioprosessissa on, että kryptovaluutta-lompakkosi skannaa lohkoketjun löytääkseen hallussasi olevien varojen määrän. Nämä varat tunnetaan nimellä käyttämättömät transaktiolähdöt (UTXO:t).

Voit ajatella UTXO:ita edellisistä Bitcoin-transaktioista ylijääneenä vaihtorahana.

Varat katsotaan ”käyttämättömiksi”, koska ne ovat vapaasti käytettävissäsi lähetettäväksi jollekin tai siirrettäväksi toiseen lompakkoon. Niitä kutsutaan ”transaktiolähdöiksi”, koska ne luotiin edellisistä transaktioista.

Jos käytät 12 dollaria lounaaseen 20 dollarin setelillä, sinulle jäisi 8 dollarin seteli. Tässä esimerkissä ylijäänyt 8 dollaria olisi käyttämätön transaktiolähtö. Se palaisi lompakkoosi valmiina käytettäväksi johonkin muuhun.

Juuri näin Bitcoinin UTXO:t toimivat. Kun teet transaktion, edellisten Bitcoin-transaktioiden lähdöt, eli löysä Bitcoin-vaihtorahasi, käytetään uusien transaktioiden syötteinä.

Toinen keskeinen vertailu fyysisten käteistransaktioiden ja UTXO:iden välillä on, että molemmat on käytettävä kokonaan eikä niitä voi jakaa osiin. Jos sinulla on 5 Bitcoinin UTXO ja haluat lähettää jollekin 1 BTC:n, sinun olisi lähetettävä koko 5 Bitcoinin arvoinen UTXO ja saatava takaisin uusi UTXO, jonka arvo on 4 BTC miinus mahdolliset maksut. 

Aivan kuten yllä olevassa esimerkissä, jossa luovutat kokonaisen 20 dollarin setelin maksaaksesi 10 dollarin lounaan.

Kun UTXO käytetään, sitä pidetään ”kulutettuna” ja se poistetaan teknisesti kierrosta. 

Kaikki ylijäänyt vaihtoraha luodaan kokonaan uutena UTXO:na. Tämä osa UTXO-järjestelmästä on tapa, jolla Bitcoin ratkaisee kaksoiskulutusongelman

Aivan kuten et voi fyysisesti antaa kauppiaalle 5 dollarin seteliä ja sitten antaa samaa 5 dollarin seteliä jollekin toiselle, Bitcoinin käyttäjä ei voi onnistuneesti käyttää samaa käyttämätöntä transaktiolähtöä kahdessa erillisessä digitaalisessa transaktiossa.

Kun henkilö yrittää käyttää samaa UTXO:ta kahdesti, molemmat transaktiot päätyvät mempooliin — eräänlaiseen odotushuoneeseen odottaville transaktioille. Ne pysyvät siellä, kunnes onnistuneet louhijat, jotka voittavat proof-of-work-kilpailun, niputtavat ne uusiin lohkoihin.

Voit oppia lisää tästä prosessista Kraken Learn Center -artikkelistamme Mitä on Bitcoinin louhinta?

Vaikka molemmat transaktiot niputettaisiin kahteen erilliseen lohkoon ja käsiteltäisiin samanaikaisesti, aikaleimauksen vuoksi toinen transaktioista vahvistettaisiin ennen toista. Kun useita vahvistuksia olisi kulunut (uusia lohkoja lisätty lohkoketjuun), muut solmut merkitsisivät toisen virheellisen transaktion ja hylkäisivät sen.

Coinbase-transaktiot

Ainoa kerta, kun Bitcoin-transaktiolla ei ole syötteitä, on silloin, kun uutta BTC:tä luodaan louhinnasta.

Tämä tunnetaan coinbase-transaktiona, ja se edustaa ensimmäistä transaktiota jokaisessa uudessa lohkossa.

Jokainen liikkeessä oleva satoshi (Bitcoinin alayksiköt) voidaan jäljittää läpinäkyvän lohkoketjun avulla vastaavaan coinbase-transaktioonsa.

Miksi Bitcoin käyttää UTXO-mallia?

Tilin saldo

Käyttäjän saldon, joka tunnetaan myös UTXO-joukkona, tunnistamiseksi kryptolompakko-ohjelmisto skannaa lohkoketjun löytääkseen kaikki vastaavaan julkiseen lompakko-osoitteeseen liittyvät UTXO:t.

Kaikkien UTXO:iden kokonaissumma antaa tarkan kuvan siitä, kuinka paljon kryptoa lompakon omistaja hallitsee.

Kun UTXO käytetään, vastaanottajan julkinen lompakko-osoite liitetään summaan ja uusi UTXO tallennetaan lohkoketjuun suorituksen jälkeen.

Tallennus

Bitcoinin UTXO:t tallennetaan erilaisiin transaktioihin, jotka puolestaan tallennetaan lohkoihin Bitcoinin lohkoketjussa. Nämä tiedot eivät kuitenkaan ole selkeästi indeksoituja, joten metatietojen etsiminen ja kokoaminen nopeasti voi olla vaikeaa. 

Käytettäessä lompakko-ohjelmistoa, kuten Bitcoin Core -asiakasohjelmaa, UTXO-metatiedot tallennetaan ja indeksoidaan LevelDB-tietokannan avulla. LevelDB on Googlen vuonna 2011 luoma avoimen lähdekoodin tallennusjärjestelmä, joka nopeuttaa UTXO:iden paikantamista huomattavasti.

Bitcoin Core -asiakasohjelma on suosittu ohjelmisto, jota käytetään yhteyden muodostamiseen Bitcoinin lohkoketjuverkkoon. Alun perin Satoshi Nakamoton luomaa Bitcoin Core -ohjelmistoa ylläpitää nykyään vapaaehtoisten kehittäjien yhteisö.

UTXO:t konepellin alla 🚗

Teknisemmällä tasolla transaktiossa on neljä pääosaa:

  • Versio: Tämä kertoo verkkosolmuille, mitä asiakasohjelmiston versiota käytetään. Eri versiot noudattavat erilaisia sääntöjä transaktiotietojen vahvistamisessa.
  • Lukitusaika (Locktime): Tämä on aika, joka määrittää, kuinka nopeasti transaktio lisätään lohkoketjuun. Tämä syöte määrää aikaisimman mahdollisen ajan, jolloin louhintasolmut voivat käsitellä transaktion.
  • Syöte (Input): Tiedot, jotka osoittavat varojen lähteen tai edellisen transaktion, jossa UTXO tuotettiin. Syöte sisältää myös niin kutsutun ”avausskriptin”.
  • Lähtö (Output): Tiedot siirrettävästä arvosta, lompakosta, johon varojen omistajuus siirretään, ja uusista muodostuneista UTXO:ista. Lähtö sisältää myös ”lukitusskriptin”.

Miten UTXO:t eroavat fyysisestä käteisestä

Tärkeimmät erot fyysisten setelien analogian ja UTXO-mallin välillä ovat, että Bitcoin ja muut UTXO-pohjaiset krypto-omaisuudet eivät ole sidottuja tiettyihin summiin, eli 5, 10, 15 dollaria jne. Mikä tahansa Bitcoin-määrä (jopa kahdeksan desimaalin tarkkuudella) voi olla käyttämätön transaktiolähtö. 

Esimerkiksi sinulla voi olla 0.0003847 BTC ylijäämänä transaktiosta.

Tästä määrästä tulisi uusi UTXO, joka on käytettävä kokonaan, jos sitä käytetään, eikä sitä voi jakaa pienempiin osiin.

Oletetaan, että Johnilla on kryptolompakossaan 1 Bitcoinin saldo. Hänen saldonsa ja sen koostumus ovat kaksi eri asiaa, aivan kuten sinulla voi olla 100 dollaria lompakossasi, mutta se voi koostua neljästä 20 dollarin setelistä, kahdesta 5 dollarin setelistä ja yhdestä 10 dollarin setelistä.

Oletetaan, että Johnin 1 BTC:n saldon koostumus muodostuu viidestä eri käyttämättömästä transaktiolähdöstä.

  • 0.138 BTC
  • 0.1 BTC
  • 0.004 BTC
  • 0.73 BTC
  • 0.028 BTC

John haluaa lähettää 0.6 BTC:tä Janelle. Tämän tekemiseksi Johnin lompakko-ohjelmisto ryhmittelee automaattisesti minkä tahansa määrän hänen hallitsemiaan UTXO:ita kattamaan tämän transaktion sekä kaikki siihen liittyvät louhintamaksut.

Tässä esimerkissä oletetaan, että hänen lompakko-ohjelmistonsa lähettää automaattisesti Johnin 0.73 BTC:n arvoisen Bitcoin UTXO:n Janelle ja palauttaa ylijääneen summan miinus transaktiomaksut Johnille uutena UTXO:na.

Tämä summa lähetetään automaattisesti vaihtorahiosoitteeseen; erilliseen osoitteeseen, joka on linkitetty kryptolompakkoosi.

Lukitus- ja avausskriptit 🔒

Kun UTXO:t luodaan, ne lukitaan vastaanottajan julkisella lompakko-osoitteella. Jotta kyseistä UTXO:ta voitaisiin käyttää syötteenä uudessa transaktiossa, se on ensin avattava lähettäjän digitaalisella allekirjoituksella.

Tämä on toinen tärkeä asia ymmärtää Bitcoin-transaktioista. Kun transaktio tehdään, Bitcoinia ei siirretä digitaalisesti tililtä toiselle. Sen sijaan ne avataan, siirretään uudelle omistajalle ja lukitaan sitten uudelleen.

Tämä tarkoittaa, että vain uusi omistaja voi avata varat digitaalisella allekirjoituksellaan ja siirtää ne muualle; toiselle henkilölle tai toiseen lompakkoon, joka on hänen hallinnassaan.

Script on ohjelmointikieli, jota Bitcoin käyttää transaktioiden käsittelyyn, mukaan lukien UTXO:iden lukitseminen ja avaaminen. 

  • Lukitusskripti (ScriptPubKey): Kun UTXO lukitaan, lukitusskripti (tunnetaan nimellä ScriptPubKey) asettaa ehdot, jotka on täytettävä, ennen kuin UTXO:ta voidaan käyttää syötteenä. Tämä edellyttää yleensä todistamista, että omistat yksityisen avaimen, joka vastaa UTXO:n lukitsemiseen käytettyä julkista lompakko-osoitetta, antamalla digitaalisen allekirjoituksen.
  • Avausskripti (ScriptSig): UTXO:n avaamiseksi sinun on täytettävä lukitusskriptin asettamat ehdot, eli annettava digitaalinen allekirjoitus, joka todistaa, että hallitset yksityisiä avaimia, jotka vastaavat UTXO:n lukitsemiseen käytettyä julkista avainta.

Tämä estää ketään muuta pääsemästä käsiksi ja käyttämästä näitä varoja.

 

Mitä on Bitcoin-pöly?

Bitcoin-pölyllä tarkoitetaan UTXO:ja, jotka sisältävät pieniä jälkimääriä satosheja edellisistä transaktioista.

Yksinään näiden pienten BTC-määrien käsittely maksaisi enemmän transaktiomaksuissa kuin niiden arvo olisi, ja siksi ne usein odottavat vaihtosoitteissa, että ne niputetaan yhteen muiden UTXO:jen kanssa ja käytetään.

Mitä on pölytyshyökkäys?

Pölytyshyökkäyksillä tarkoitetaan huijareita, jotka lähettävät pölyä satoihin tuhansiin eri lompakko-osoitteisiin. Tämän tarkoituksena on selvittää potentiaalisia kohteita sosiaalisen manipuloinnin hyökkäyksille.

Huijari tarkkailee osoitteita, jotka sisältävät heidän lähettämäänsä pölyä, odottaen, että omistaja tekee transaktion, joka niputtaa yhteen UTXO:ja eri osoitteista, jotka on linkitetty heidän lompakkoonsa. Koska pöly-UTXO:t ovat niin pieniä, on suuri todennäköisyys, että ne ryhmitellään yhteen muiden kanssa ja käytetään syötteinä.

Kun tämä tapahtuu, huijari voi saada käsityksen siitä, mitä varoja henkilöllä on. He voivat sitten upottaa tietojenkalasteluviestejä transaktioihin, jotka kutsuvat omistajaa napsauttamaan linkkiä, joka lataa haittaohjelmia, tai vierailemaan väärennetyillä verkkosivustoilla, jotka jäljittelevät laillisia aloitussivuja ja pyytävät henkilökohtaisia tietoja.

Kuinka vaarallisia Bitcoinin pölytyshyökkäykset ovat?

Pölytyshyökkäykset eivät anna huijareille pääsyä varoihisi.

Ne ainoastaan auttavat rajaamaan, mitkä osoitteet ovat tietyn kryptolompakon hallinnassa.

Pölytyshyökkäysten riskin minimoimiseksi on parasta olla koskaan napsauttamatta linkkejä tai vierailematta verkkosivustoilla, jotka on liitetty pölytransaktioihin.

Aloita Bitcoinin ostaminen

Nyt kun olet oppinut kaiken käyttämättömien transaktiotulosteiden (UTXO) mallista, oletko valmis jatkamaan kryptomatkaasi ja ostamaan Bitcoinia?

Katso Krakenin oppimiskeskuksen oppaamme saadaksesi lisätietoja aiheesta Kuinka ostaa Bitcoinia (BTC) ja rekisteröidy Kraken-tilille tänään.

Some content on this page may have been translated using AI