Co je nevyčerpaný transakční výstup (UTXO) Bitcoinu?

Průvodce modelem UTXO Bitcoinu pro začátečníky 📕
Nevyčerpaný transakční výstup (UTXO) je technika, kterou protokol Bitcoin používá ke sledování zůstatků, jak se pohybují mezi krypto peněženkami.
Pokud jde o sledování a správu jednotlivých krypto zůstatků, protokoly založené na blockchainu obvykle používají jeden ze dvou různých účetních modelů.
Jeden se nazývá model účtu/zůstatku. Projekty jako Ethereum, Tezos a EOS používají tento model ke sledování zůstatků, když uživatelé blockchainu provádějí transakce. Druhý se nazývá model nevyčerpaného transakčního výstupu (UTXO).
Bitcoin a mnoho dalších kryptoměn, jako jsou Litecoin, Cardano a Dogecoin, používají model UTXO.
Co to ale přesně je, jak to funguje a jaké jsou výhody UTXO ve srovnání s modelem účtu/zůstatku?
Porozumění modelu UTXO 💻
Historie
Adam Back a zesnulý Hal Finney byli dva členové kryptografické skupiny Cypherpunk, kterou navštěvoval autor white paperu Bitcoinu Satoshi Nakamoto. Oběma je připisován nezávislý vývoj modelu UTXO v letech 1997, respektive 2004.
Když tvůrce Bitcoinu Satoshi Nakamoto spustil protokol v roce 2009, stal se prvním funkčním systémem digitální měny, který implementoval model UTXO.
Hal Finney i Adam Back jsou dlouho podezříváni, že jsou Satoshi Nakamoto, ačkoli to nikdy nebylo s jistotou prokázáno.
UTXO ve zkratce
Když někomu pošlete bitcoin, programově proběhne několik kroků. Jedním z prvních kroků v transakčním procesu je, aby vaše peněženka na kryptoměny prohledala blockchain a zjistila množství finančních prostředků, které máte. Tyto prostředky jsou známy jako nevyčerpané transakční výstupy (UTXO).
UTXO si můžete představit jako drobné, které zbyly z předchozích bitcoinových transakcí.
Prostředky jsou považovány za „nevyčerpané“, protože jsou volně k dispozici k odeslání někomu nebo k přesunu do jiné peněženky. Nazývají se „transakční výstupy“, protože byly vytvořeny z předchozích transakcí.
Pokud utratíte 12 $ za oběd pomocí 20 $ bankovky, zbylo by vám 8 $. V tomto příkladu by zbývajících 8 $ bylo nevyčerpaným transakčním výstupem. Vrátil by se do vaší peněženky připravený k použití na nákup něčeho jiného.
Přesně takto fungují bitcoinové UTXO. Když provedete transakci, výstupy z předchozích bitcoinových transakcí, tj. vaše drobné bitcoiny, se použijí jako vstupy pro nové transakce.
Další klíčové srovnání mezi transakcemi s fyzickou hotovostí a UTXO je, že obě musí být utraceny v plné výši a nelze je rozdělit. Pokud máte UTXO v hodnotě 5 bitcoinů a chcete někomu poslat 1 BTC, museli byste poslat celé UTXO v hodnotě 5 bitcoinů a na oplátku obdržet nové UTXO v hodnotě 4 BTC minus veškeré poplatky.
Stejně jako v příkladu výše, kdy předáte celou 20 $ bankovku k zaplacení 10 $ oběda.
Když je UTXO utraceno, je považováno za „spotřebované“ a je technicky odstraněno z oběhu.
Jakékoli zbývající drobné jsou generovány jako zcela nové UTXO. Tato část systému UTXO je způsob, jakým Bitcoin řeší problém dvojího utracení.
Stejně jako nemůžete fyzicky dát obchodníkovi 5 $ bankovku a poté dát stejnou 5 $ bankovku někomu jinému, uživatel bitcoinu nemůže úspěšně použít stejný nevyčerpaný transakční výstup ve dvou samostatných digitálních transakcích.
Když se osoba pokusí utratit stejné UTXO dvakrát, obě transakce skončí v mempoolu — jakési čekárně pro čekající transakce. Zůstanou zde, dokud je úspěšní těžaři, kteří vyhrají soutěž proof-of-work, nezabalí do nových bloků.
Více o tomto procesu se dozvíte v našem článku Kraken Learn Center Co je těžba bitcoinu?
I když jsou obě transakce zabaleny do dvou samostatných bloků a zpracovány současně, kvůli časovému razítku by jedna z transakcí byla ověřena dříve než druhá. Po uplynutí určitého počtu potvrzení (nové bloky přidané do blockchainu) by ostatní uzly označily druhou neplatnou transakci a odmítly ji.
Coinbase transakce
Jediný případ, kdy bitcoinová transakce nemá žádné vstupy, je, když je nově vytěžené BTC vytvořeno těžbou.
Známá jako coinbase transakce, představuje první transakci v každém novém bloku.
Každé satoshi (podjednotky bitcoinu) v oběhu lze vysledovat pomocí transparentní blockchainové účetní knihy k jejich příslušné coinbase transakci.
Proč Bitcoin používá model UTXO?
Zůstatek na účtu
K identifikaci zůstatku uživatele, známého také jako sada UTXO, software krypto peněženky prohledává blockchain, aby našel všechny UTXO spojené s odpovídající veřejnou adresou peněženky.
Celkový součet všech UTXO poskytuje přesný přehled o tom, kolik kryptoměn vlastník peněženky kontroluje.
Když je UTXO utraceno, veřejná adresa peněženky příjemce je přiřazena k částce a nové UTXO je zaznamenáno na blockchainu po provedení.
Úložiště
Bitcoinové UTXO jsou zaznamenány v různých transakcích, které jsou uloženy v blocích na blockchainu Bitcoinu. Tyto informace však nejsou jasně indexovány, takže může být obtížné rychle vyhledávat a shromažďovat metadata.
Při použití softwaru peněženky, jako je klient Bitcoin Core, jsou metadata UTXO ukládána a indexována pomocí databáze LevelDB. LevelDB je open-source úložný systém vytvořený společností Google v roce 2011 a výrazně urychluje lokalizaci UTXO.
Klient Bitcoin Core je populární software používaný k připojení k síti blockchainu Bitcoinu. Původně vytvořený Satoshi Nakamotem, Bitcoin Core je nyní udržován komunitou dobrovolných vývojářů.
UTXO pod kapotou 🚗
Na techničtější úrovni má transakce čtyři hlavní části:
- Verze: Informuje síťové uzly o tom, jaká verze klientského softwaru se používá. Různé verze se řídí různými pravidly pro ověřování transakčních dat.
- Locktime: Jedná se o dobu, která určuje, jak rychle je transakce přidána do blockchainu. Tento vstup určuje nejčasnější možný čas pro zpracování transakce těžebními uzly.
- Vstup: Informace ukazující na zdroj finančních prostředků nebo předchozí transakci, kde bylo UTXO vytvořeno. Vstup také obsahuje něco, co se nazývá „odemykací skript“.
- Výstup: Informace týkající se převáděné hodnoty, peněženky, kam je převáděno vlastnictví finančních prostředků, a nově vytvořených UTXO. Výstup také obsahuje „uzamykací skript“.
Jak se UTXO liší od fyzické hotovosti
Hlavní rozdíly mezi analogií fyzických bankovek a modelem UTXO spočívají v tom, že bitcoin a další kryptoaktiva založená na UTXO nejsou vázána pevnými částkami, tj. 5 $, 10 $, 15 $ atd. Jakákoli částka bitcoinu (až do osmi desetinných míst) může být nevyčerpaným transakčním výstupem.
Například vám může z transakce zbýt 0,0003847 BTC.
Tato částka by se stala novým UTXO, které musí být v případě použití utraceno v plné výši a nelze jej rozdělit na menší částky.
Řekněme, že John má zůstatek v krypto peněžence ve výši 1 bitcoinu. Jeho zůstatek a složení tohoto zůstatku jsou dvě různé věci, podobně jako můžete mít v peněžence 100 $, ale může se skládat ze čtyř 20 $ bankovek, dvou 5 $ bankovek a jedné 10 $ bankovky.
Řekněme, že složení Johnova zůstatku 1 BTC se skládá z 5 různých nevyčerpaných transakčních výstupů.
- 0,138 BTC
- 0,1 BTC
- 0,004 BTC
- 0,73 BTC
- 0,028 BTC
John chce poslat 0,6 BTC Jane. K tomu software Johnovy peněženky automaticky seskupí libovolný počet UTXO, které kontroluje, aby pokryl tuto transakci a veškeré poplatky těžařů spojené s jejím zpracováním.
V tomto příkladu řekněme, že software jeho peněženky automaticky pošle Johnovo bitcoinové UTXO v hodnotě 0,73 BTC Jane a vrátí zbývající částku minus transakční poplatky Johnovi jako nové UTXO.
Tato částka je automaticky odeslána na adresu pro drobné; samostatnou adresu propojenou s vaší krypto peněženkou.
Uzamykací a odemykací skripty 🔒
Když jsou UTXO vytvořeny, jsou uzamčeny pomocí veřejné adresy peněženky příjemce. Aby bylo možné toto UTXO použít jako vstup v nové transakci, musí být nejprve odemčeno pomocí digitálního podpisu odesílatele.
To je další důležitá věc, kterou je třeba pochopit o bitcoinových transakcích. Když je transakce provedena, bitcoin se digitálně nepřesouvá z jednoho účtu na druhý. Místo toho jsou odemčeny, znovu přiřazeny novému vlastníkovi a poté znovu uzamčeny.
To znamená, že pouze nový vlastník může odemknout finanční prostředky pomocí svého digitálního podpisu a převést je jinam; jiné osobě nebo do jiné peněženky pod jeho kontrolou.
Script je programovací jazyk používaný Bitcoinem ke zpracování transakcí, včetně zamykání a odemykání UTXO.
- Uzamykací skript (ScriptPubKey): Když je UTXO uzamčeno, uzamykací skript (známý jako ScriptPubKey) stanoví podmínky, které musí být splněny, než může být UTXO použito jako vstup. To obvykle zahrnuje prokázání vlastnictví soukromého klíče, který odpovídá veřejné adrese peněženky použité k uzamčení UTXO, poskytnutím digitálního podpisu.
- Odemykací skript (ScriptSig): K odemknutí UTXO musíte splnit podmínky stanovené uzamykacím skriptem, tj. poskytnout digitální podpis, který prokazuje, že kontrolujete soukromé klíče odpovídající veřejnému klíči použitému k uzamčení UTXO.
To zabraňuje komukoli jinému v přístupu a utrácení těchto finančních prostředků.
Co je bitcoinový prach?
Bitcoinový prach označuje UTXO obsahující nepatrné stopové množství satoshi, které zbyly z předchozích transakcí.
Samotné by tyto miniaturní částky BTC stály více na transakčních poplatcích, než byla jejich hodnota, a tak často leží v adresách pro drobné a čekají, až budou seskupeny s jinými UTXO a utraceny.
Co je dusting útok?
Útoky „dusting“ se týkají podvodníků, kteří rozesílají prach na stovky tisíc různých adres peněženek. Myšlenkou je zjistit potenciální cíle pro útoky sociálního inženýrství.
Podvodník bude sledovat adresy obsahující prach, který odeslal, a čekat, až vlastník provede transakci, která seskupí UTXO z různých adres propojených s jeho peněženkou. Protože jsou UTXO prachu tak malé, je velká šance, že budou seskupeny s ostatními a použity jako vstupy.
Jakmile se to stane, podvodník si může udělat představu o tom, jaké finanční prostředky osoba má. Poté se může rozhodnout vložit phishingové zprávy do transakcí, které zvou vlastníka k kliknutí na odkaz, který stáhne malware, nebo k návštěvě falešných webových stránek, které napodobují legitimní vstupní stránky a žádají o osobní údaje.
Jak nebezpečné jsou bitcoinové dusting útoky?
Útoky „dusting“ nedávají podvodníkům přístup k vašim finančním prostředkům.
Slouží pouze k zúžení toho, které adresy jsou kontrolovány konkrétní krypto peněženkou.
Abyste minimalizovali riziko dusting útoků, je nejlepší nikdy neklikat na odkazy ani nenavštěvovat webové stránky připojené k transakcím s prachem.
Začněte nakupovat Bitcoin
Nyní, když jste se dozvěděli vše o modelu nevyčerpaného transakčního výstupu, jste připraveni pokračovat ve své krypto cestě a koupit bitcoin?
Podívejte se na našeho průvodce Kraken Learn Center pro více informací o Jak koupit Bitcoin (BTC) a zaregistrujte se k účtu u Kraken ještě dnes.