
Šta je UTXO?
Šta je UTXO, zašto se pri svakom slanju vraća kusur, kako se računa naknada i zašto mnogo sitnih UTXO-a poskupljuje slanje i otkriva šta je čije.
Sadržaj
Najvažnije u nekoliko reči:
- UTXO je iznos bitcoina koji je neko primio i još ga nije poslao dalje.
- Bitcoin ne vodi račune ni stanja. Tvoje stanje je zbir svih UTXO-a na tvojim adresama.
- UTXO se uvek troši ceo, pa se ostatak vraća tebi kao kusur.
- Naknada je razlika između ulaza i izlaza, a plaća se po veličini transakcije, ne po iznosu.
- Mnogo sitnih UTXO-a poskupljuje slanje, a kad ih potrošiš zajedno, svako vidi da su bili tvoji.
UTXO (engl. unspent transaction output) je nepotrošen izlaz transakcije. To je iznos bitcoina koji je neko primio na svoju adresu i još ga nije poslao dalje.
Prethodni tekst, Bitcoin novčanici: šta rade, koje vrste postoje i koji da izabereš, kaže da novčanik ne vodi stanje kao banka, nego ga sabira iz lanca blokova. Ovde je reč o tome šta to novčanik sabira.
Bitcoin nema račune, nego novčanice bilo koje vrednosti
Zamisli da u novčaniku imaš 3.700 dinara, u novčanicama od 2.000, 1.000, 500 i 200 dinara. Nigde ne piše „3.700“. To je zbir koji dobiješ kad prebrojiš novčanice.
Bitcoin radi isto. Lanac blokova ne beleži stanje nijednog računa, nego samo transakcije. Svaka transakcija ima ulaze i izlaze:
- Izlaz (engl. output) kaže koliko bitcoina ide i ko sme sledeći da ih potroši.
- Ulaz (engl. input) pokazuje na neki raniji izlaz i troši ga. Uz njega ide potpis koji dokazuje da pošiljalac sme da ga potroši.
Izlaz koji još nijedan ulaz nije potrošio je UTXO (Bitcoin.org, „Transactions“). To su tvoje novčanice. Novčanik u lancu blokova traži UTXO-e na tvojim adresama i sabira ih.
Stanje u novčaniku je zbir UTXO-a
Tri nepotrošena izlaza na tvojim adresama. Novčanik ih sabere i pokaže jedan broj.
- Uplata od prijatelja0,0025 BTC · 250.000 sat
- Kupovina na menjačnici0,012 BTC · 1.200.000 sat
- Kusur od ranijeg slanja0,00037412 BTC · 37.412 sat
Novčanik pokazuje0,01487412 BTC · 1.487.412 sat
Primer, iznosi su izmišljeni. Jedan bitcoin ima 100.000.000 satošija.
Razlika od gotovine je u dve stvari. Novčanice dolaze samo u nekoliko vrednosti, a UTXO može da ima bilo koji iznos, sve do jednog satošija. I novčanice nosiš u džepu, a UTXO-i su u lancu blokova, kod svih čvorova mreže. Novčanik čuva samo ključeve kojima ih trošiš.
UTXO se troši ceo, a ostatak se vraća kao kusur
Kafa košta 250 dinara, a ti imaš samo novčanicu od 500. Ne možeš da je pocepaš na pola, pa daš celu i dobiješ 250 dinara kusura.
Ni UTXO ne može da se podeli. Ulaz ga uvek troši ceo. Deo koji ne ide primaocu vraća se pošiljaocu kao nov izlaz, a ono što se ne vrati dobija rudar kao naknadu (Bitcoin.org, „Transaction Fees And Change“). Izlaz koji se vraća pošiljaocu zove se kusur (engl. change).
Zato obična transakcija ima dva izlaza, jedan za plaćanje i jedan za kusur. Tako je opisano i u whitepaperu (odeljak 9). Novčanik kusur šalje na novu adresu iz posebne grane za kusur, kako piše u tekstu Privatni i javni ključevi. Sa strane izgleda kao da je novac otišao na dve adrese, a jedna od njih je tvoja.
Prva transakcija između dvoje ljudi vratila je 40 bitcoina kusura
Satoshi Nakamoto je 9. januara 2009. dobio 50 bitcoina kao nagradu za blok 9. Tri dana kasnije, 12. januara, poslao je 10 od njih Halu Finneyju, programeru koji je među prvima pokrenuo Bitcoin. Transakcija je upisana u blok 170 i može da se otvori u blok eksploreru (mempool.space). Hal je 2013. napisao (Bitcoin and me): „Bio sam primalac prve Bitcoin transakcije, kad mi je Satoshi poslao deset novčića kao probu.“
Prva transakcija između dvoje ljudi, blok 170
Satoshi Nakamoto šalje Halu Finneyju 10 bitcoina, 12.1.2009. u 3:30 po UTC. Ulaz se troši ceo.
Ulaz
- Nagrada za blok 950 BTCSatoshi je ovih 50 bitcoina dobio 9.1.2009. kao nagradu za blok 9.
Izlazi
- Halu Finneyju10 BTCPotrošeno u bloku 92.240, 16.11.2010.
- Nazad Satoshiju, kusur40 BTCVraćeno na isti ključ sa koga je poslato. Potrošeno u bloku 181, 12.1.2009.
Izvori: mempool.space, transakcija iz bloka 170 (otvara se u novom prozoru), otvoreno 21.10.2026, ulaz, izlazi, naknada i gde su izlazi kasnije potrošeni; Hal Finney, „Bitcoin and me“ (otvara se u novom prozoru), 19.3.2013, da je on primio prvu transakciju, deset bitcoina od Satoshija. Tada se plaćalo na javni ključ, ne na adresu. Naknada je bila nula.
Satoshi nije imao UTXO od 10 bitcoina, nego jedan od 50. Potrošio ga je celog. Hal je dobio 10, a 40 se vratilo Satoshiju kao kusur, na isti javni ključ sa koga je poslato. Zbir izlaza je 50 bitcoina, isto koliko i ulaz, pa naknade nije bilo.
Tih 40 bitcoina odmah je postalo nov UTXO, koji je potrošen istog dana, u bloku 181. Halovih 10 bitcoina potrošeno je tek u bloku 92.240, u novembru 2010. godine (mempool.space).
Naknada je ono što ostane između ulaza i izlaza
U transakciji ne postoji polje „naknada“. Whitepaper je određuje posredno. Ako je zbir izlaza manji od zbira ulaza, razlika je naknada i pripada rudaru koji transakciju upiše u blok (odeljak 6, original, str. 4). Rudar je učesnik mreže koji pravi nove blokove i za to dobija nagradu.
Kao u restoranu. Račun je 1.800 dinara, ti daš 2.000 i kažeš da je u redu. Niko nigde nije zapisao „bakšiš 200“, ali konobar je dobio 200 dinara.
Kusur je zato važan. Da je Satoshi u bloku 170 zaboravio izlaz od 40 bitcoina, tih 40 bitcoina bi dobio rudar. Novčanik kusur dodaje sam, pri svakom slanju.
Naknada se plaća po veličini, a ne po iznosu
U blok ne staje neograničeno mnogo transakcija. Granica je 4.000.000 jedinica težine po bloku (BIP 141). Dok čekaju na mesto u bloku, transakcije stoje u mempoolu, čekaonici nepotvrđenih transakcija, a rudari prvo uzimaju one koje plaćaju više po jedinici mesta (Bitcoin Core).
Zato se naknada meri u satošijima po virtuelnom bajtu (sat/vB). Virtuelni bajt je mera mesta koju je 2017. uvela izmena pravila SegWit. Blok ima mesta za 4.000.000 jedinica težine, odnosno 1.000.000 virtuelnih bajtova, a bajtovi potpisa u toj meri zauzimaju manje mesta od ostalih (BIP 141). Kako tačno, objašnjava tekst o SegWitu.
Transakcija od 10 bitcoina i transakcija od 0,0001 bitcoina (deset hiljada satošija) mogu da budu iste veličine, pa plaćaju istu naknadu. Cena mesta se menja sa gužvom. Za brzu potvrdu mempool.space je 21.10.2026. predlagao 3 sat/vB, a u bloku 840.000 od 20. aprila 2024. srednja naknada je bila 200 sat/vB (mempool.space).
Svaki UTXO je još jedan ulaz
Svaki ulaz nosi pokazivač na UTXO koji troši, potpis i javni ključ, pa zauzima više mesta od izlaza. Kod adrese koja počinje sa bc1q ulaz zauzima oko 68 virtuelnih bajtova, a izlaz ima 31. Ako plaćaš iz deset sitnih UTXO-a, transakcija ima deset ulaza i oko pet puta je veća nego kad plaćaš iz jednog većeg.
Isto plaćanje iz jednog ili iz deset UTXO-a
Plaćanje sa kusurom, adrese koje počinju sa bc1q. Naknada raste sa veličinom, ne sa iznosom.
- Jedan veći UTXO141 vB0,00000423 BTC · 423 sat pri 3 sat/vB; 0,000282 BTC · 28.200 sat pri 200 sat/vBPri 3 sat/vB (mirna mreža, 21.10.2026.) 0,00000423 BTC · 423 sat, oko 37 dinara. Pri 200 sat/vB (gužva, 20.4.2024.) 0,000282 BTC · 28.200 sat, oko 2.493 dinara.
- Deset sitnih UTXO-a750 vB0,0000225 BTC · 2.250 sat pri 3 sat/vB; 0,0015 BTC · 150.000 sat pri 200 sat/vBPri 3 sat/vB (mirna mreža, 21.10.2026.) 0,0000225 BTC · 2.250 sat, oko 199 dinara. Pri 200 sat/vB (gužva, 20.4.2024.) 0,0015 BTC · 150.000 sat, oko 13.261 dinara.
Izvori: BIP 141 (otvara se u novom prozoru), 2015, težina i virtuelna veličina; BIP 144 (otvara se u novom prozoru), 2016, bajtovi transakcije; mempool.space, preporučena naknada (otvara se u novom prozoru), 21.10.2026, 3 sat/vB za brzu potvrdu; mempool.space, blok 840.000 (otvara se u novom prozoru), 20.4.2024, srednja naknada 200 sat/vB; mempool.space i NBS (kurs.resenje.org) (otvara se u novom prozoru), 21.10.2026, 75.287 € za bitcoin, 117,4244 dinara za evro. Dinari po ceni i kursu od 21.10.2026.
Koliko košta tvoja transakcija
Iznos ne menja ništa. Menjaju broj ulaza, broj izlaza i vrsta adrese.
- Veličina
- 141 vB
- U dinarima
- 67 din
- Naknada
- 0,00000846 BTC · 846 satošija
Izvori: BIP 141 (otvara se u novom prozoru), 2015, težina i virtuelna veličina; BIP 144 (otvara se u novom prozoru), 2016, bajtovi transakcije; mempool.space, preporučene naknade i cena bitcoina (otvara se u novom prozoru), 5.11.2026, naknada po virtuelnom bajtu za sledeći blok i bez žurbe (19:04 po UTC) i cena jednog bitcoina u evrima (19:00 po UTC); NBS, srednji kurs evra (preko kurs.resenje.org) (otvara se u novom prozoru), 5.11.2026, dinara za jedan evro. Potpis od 71 bajta, kao u ostalim graficima; svi ulazi i izlazi su iste vrste adrese.
Na mirnoj mreži razlika je mala, oko 160 dinara. Na dan gužve isto plaćanje iz deset UTXO-a košta 0,0015 bitcoina (150.000 satošija), oko 13.261 dinar, a iz jednog 0,000282 bitcoina (28.200 satošija), oko 2.493 dinara. Deset sitnih UTXO-a je kao da kafu plaćaš kesom kovanica, a kasirka naplaćuje brojanje.
Spajanje sitnih UTXO-a i grupno slanje štede mesto
Spajanje (engl. consolidation) je transakcija koju šalješ sebi. Deset sitnih UTXO-a postaje jedan veći, i to kad je mreža mirna i mesto jeftino. Takva transakcija, sa deset ulaza i jednim izlazom, ima 719 virtuelnih bajtova i pri 3 sat/vB košta 0,00002157 bitcoina (2.157 satošija), oko 191 dinar. Ako kasnije, na dan gužve od 200 sat/vB, plaćaš iz tog jednog UTXO-a umesto iz deset, transakcija je manja za 609 virtuelnih bajtova i štedi 0,001218 bitcoina (121.800 satošija), oko 10.768 dinara.
Grupno slanje (engl. batching) ne spaja UTXO-e, nego plaćanja. Ko plaća više ljudi odjednom, na primer menjačnica koja isplaćuje korisnike, može sva plaćanja da stavi u jednu transakciju, sa jednim ulazom i jednim kusurom.
Tri plaćanja odjednom zauzimaju upola manje mesta
Svako plaćanje iz jednog UTXO-a, sa kusurom. Grupno: jedan ulaz, tri plaćanja i jedan kusur.
- Tri plaćanja, tri transakcije423 vB0,00001269 BTC · 1.269 sat pri 3 sat/vB; 0,000846 BTC · 84.600 sat pri 200 sat/vBPri 3 sat/vB (mirna mreža, 21.10.2026.) 0,00001269 BTC · 1.269 sat, oko 112 dinara. Pri 200 sat/vB (gužva, 20.4.2024.) 0,000846 BTC · 84.600 sat, oko 7.479 dinara.
- Tri plaćanja u jednoj transakciji203 vB0,00000609 BTC · 609 sat pri 3 sat/vB; 0,000406 BTC · 40.600 sat pri 200 sat/vBPri 3 sat/vB (mirna mreža, 21.10.2026.) 0,00000609 BTC · 609 sat, oko 54 dinara. Pri 200 sat/vB (gužva, 20.4.2024.) 0,000406 BTC · 40.600 sat, oko 3.589 dinara.
Izvori: BIP 141 (otvara se u novom prozoru), 2015, težina i virtuelna veličina; BIP 144 (otvara se u novom prozoru), 2016, bajtovi transakcije; mempool.space, preporučena naknada (otvara se u novom prozoru), 21.10.2026, 3 sat/vB za brzu potvrdu; mempool.space, blok 840.000 (otvara se u novom prozoru), 20.4.2024, srednja naknada 200 sat/vB; mempool.space i NBS (kurs.resenje.org) (otvara se u novom prozoru), 21.10.2026, 75.287 € za bitcoin, 117,4244 dinara za evro.
Spajanje ima i cenu koja se ne vidi u satošijima. Kad deset UTXO-a potrošiš zajedno, svako ko gleda lanac blokova zna da su svih deset bili tvoji.
UTXO otkriva više nego što misliš
Sve transakcije su javne. Na adresi ne piše čija je, ali transakcije otkrivaju koje adrese idu zajedno. Satoshi je to napisao još u whitepaperu (odeljak 10, original, str. 6): „Neko povezivanje je ipak neizbežno kod transakcija sa više ulaza, jer one nužno otkrivaju da su svi ulazi pripadali istom vlasniku.“ Analitičari lanca blokova od toga su napravili pravilo da dve adrese koje su ulazi iste transakcije pripadaju istoj osobi. Istraživači Univerziteta Kalifornije u San Dijegu su 2013. po tom pravilu podelili mrežu na oko 5,5 miliona grupa korisnika („A Fistful of Bitcoins“, odeljak 4.1).
Primer. Prijatelj ti pošalje 0,001 bitcoina (100.000 satošija) na novu adresu. Kasnije platiš nešto i novčanik uzme i taj UTXO i još tri tvoja. Prijatelj sada u lancu blokova vidi sva četiri ulaza, odakle su stigli i koliko ti je kusura ostalo.
Na privatnost najviše utiču tri stvari:
- Iznosi. Plaćanje je često okrugao iznos, a kusur nije, pa se kusur lako prepozna.
- Vreme. Slanje u istim razmacima, na primer svakog prvog u mesecu, pravi obrazac.
- Povezane adrese. Svaki ulaz u istoj transakciji vezuje još jednu adresu za tebe. Iz sličnog razloga se ni adresa ne koristi dvaput.
Jeftino slanje i privatnost ponekad vuku na suprotne strane. Spajanje štedi naknadu, a povezuje adrese. Po nama, UTXO-e iz različitih izvora (menjačnica, prijatelj, plata) ne treba spajati bez razloga, jer posle toga ne mogu da se razdvoje.
Uz coin control ti biraš koji UTXO plaća
Kad šalješ, novčanik sam bira koje UTXO-e da potroši. Taj posao se zove izbor UTXO-a (engl. coin selection), a kako ga ko radi, zavisi od programa.
Ako ti je važno koji UTXO plaća, postoji coin control. Tada ulaze biraš ti. Neke UTXO-e možeš i da zaključaš, da ih novčanik ne potroši sam (Bitcoin Core, „lockunspent“). Bitcoin Core ima coin control od verzije 0.9.0, izdate 19. marta 2014. (napomene uz izdanje). Ima ga i Sparrow Wallet, koji pri slanju crta šemu ulaza i izlaza koju možeš da menjaš (sparrowwallet.com).
Ne postoji jedan ispravan način. Koliko ti je važna niža naknada, a koliko privatnost, odlučuješ ti, za svaku transakciju posebno.
Bitcoin broji izlaze, a ne račune
Ključne lekcije:
- Stanje je zbir UTXO-a na tvojim adresama. Nigde nije zapisano kao jedan broj.
- UTXO se troši ceo. Ostatak se vraća kao kusur, a ono što se ne vrati dobija rudar.
- Naknada se plaća po virtuelnom bajtu. Svaki UTXO koji trošiš je još jedan ulaz i još malo mesta.
- UTXO-i potrošeni zajedno otkrivaju da su bili tvoji.
Šta dalje?
Ulaz troši ceo UTXO, i to samo jednom. Šta se desi kad neko pokuša da isti UTXO potroši dvaput i kako mreža odluči koja transakcija važi, čitaš u tekstu Šta je dvostruka potrošnja?
Bitcoin ne vodi račune, nego broji novčanice bilo koje vrednosti. Ko zna koje novčanice troši, plaća manje i otkriva manje.
- Šta je UTXO?
Tekst 6 od 14
