Mi az a Bitcoin fel nem használt tranzakciós kimenet (UTXO)?

Kezdők útmutatója a Bitcoin UTXO modelljéhez 📕
A fel nem használt tranzakciós kimenet (UTXO) az a technika, amelyet a Bitcoin protokoll használ az egyenlegek nyomon követésére, ahogy azok a kriptotárcák között mozognak.
Az egyéni kriptoegyenlegek nyomon követése és kezelése terén a blokklánc-alapú protokollok jellemzően két különböző elszámolási modell egyikét használják.
Az egyiket Számla/Egyenleg modellnek nevezik. Az olyan projektek, mint az Ethereum, a Tezos és az EOS ezt a modellt használják az egyenlegek nyomon követésére, ahogy a blokklánc felhasználók tranzakciókat hajtanak végre. A másik a Fel nem használt tranzakciós kimenet (UTXO) modell.
A Bitcoin és sok más kriptovaluta, mint például a Litecoin, a Cardano és a Dogecoin az UTXO modellt használja.
De pontosan mi is ez, hogyan működik, és mik az UTXO előnyei a Számla/Egyenleg modellhez képest?
Az UTXO modell megértése 💻
Előzmények
Adam Back és a néhai Hal Finney a Cypherpunk kriptográfiai csoport két tagja volt, amelyet a bitcoin fehér könyv szerzője, Satoshi Nakamoto gyakran látogatott. Nekik tulajdonítják az UTXO modell független fejlesztését 1997 és 2004 között.
Amikor a Bitcoin alkotója, Satoshi Nakamoto 2009-ben elindította a protokollt, az lett az első működő digitális valuta rendszer, amely implementálta az UTXO modellt.
Hal Finney-t és Adam Back-et is régóta gyanúsították azzal, hogy ők Satoshi Nakamoto, bár ez soha nem bizonyosodott be teljes bizonyossággal.
Az UTXO dióhéjban
Amikor bitcoint küld valakinek, számos lépés programozottan zajlik. A tranzakciós folyamat egyik legkorábbi lépése, hogy a kriptovaluta tárcája átvizsgálja a blokkláncot az Ön rendelkezésére álló összegek után. Ezeket az összegeket fel nem használt tranzakciós kimeneteknek (UTXO-knak) nevezzük.
Az UTXO-kra úgy gondolhat, mint az előző bitcoin tranzakciókból megmaradt aprópénzre.
Az összegeket „fel nem használtnak” tekintik, mert szabadon felhasználhatók arra, hogy elküldje valakinek, vagy áthelyezze egy másik tárcába. „Tranzakciós kimeneteknek” nevezik őket, mert előző tranzakciókból jöttek létre.
Ha 12 dollárt költ ebédre egy 20 dolláros bankjeggyel, akkor 8 dolláros bankjegy marad. Ebben a példában a megmaradt 8 dollár egy fel nem használt tranzakciós kimenet lenne. Visszakerülne a tárcájába, készen arra, hogy valami mást vásároljon vele.
Pontosan így működnek a bitcoin UTXO-k. Amikor tranzakciót hajt végre, az előző bitcoin tranzakciókból származó kimenetek, azaz az Ön megmaradt bitcoinja, új tranzakciók bemeneteként szolgálnak.
Egy másik kulcsfontosságú összehasonlítás a fizikai készpénz tranzakciók és az UTXO-k között, hogy mindkettőt teljesen el kell költeni, és nem osztható fel. Ha van egy 5 bitcoin értékű UTXO-ja, és 1 BTC-t szeretne küldeni valakinek, akkor el kell küldenie a teljes 5 bitcoin értékű UTXO-t, és cserébe kap egy új UTXO-t, amely 4 BTC-t ér, mínusz a díjak.
Pontosan úgy, mint a fenti példában, ahol egy egész 20 dolláros bankjegyet ad át egy 10 dolláros ebéd kifizetésére.
Amikor egy UTXO elköltésre kerül, „felhasználtnak” minősül, és technikailag kikerül a forgalomból.
A megmaradt aprópénz teljesen új UTXO-ként generálódik. Az UTXO rendszernek ez a része az, ahogyan a Bitcoin megoldja a dupla költés problémáját.
Ahogy fizikailag sem adhat oda egy boltosnak egy 5 dolláros bankjegyet, majd ugyanazt az 5 dolláros bankjegyet valaki másnak, úgy egy bitcoin felhasználó sem tudja sikeresen felhasználni ugyanazt a fel nem használt tranzakciós kimenetet két külön digitális tranzakcióban.
Amikor egy személy megpróbálja kétszer elkölteni ugyanazt az UTXO-t, a két tranzakció egy mempoolba kerül – egyfajta váróterembe a függőben lévő tranzakciók számára. Itt maradnak, amíg a proof-of-work versenyt megnyerő sikeres bányászok új blokkokba nem kötik őket.
Erről a folyamatról többet megtudhat a Kraken Learn Center cikkünkben: Mi a bitcoin bányászat?
Még ha mindkét tranzakció két külön blokkba kerül is, és egyidejűleg feldolgozásra kerül, az időbélyegzés miatt az egyik tranzakciót a másik előtt ellenőriznék. Miután számos megerősítés megtörtént (új blokkok kerültek a blokklánchoz), más csomópontok megjelölnék a második érvénytelen tranzakciót, és elutasítanák azt.
Coinbase tranzakciók
Az egyetlen alkalom, amikor egy bitcoin tranzakciónak nincsenek bemenetei, az, amikor újonnan vert BTC jön létre bányászatból.
Ezt coinbase tranzakciónak nevezik, és ez jelenti az első tranzakciót minden új blokkban.
Minden forgalomban lévő satoshi (a bitcoin alapegységei) nyomon követhető az átlátható blokklánc főkönyv segítségével a megfelelő coinbase tranzakciójukhoz.
Miért használja a Bitcoin az UTXO modellt?
Számlaegyenleg
Egy felhasználó egyenlegének, más néven UTXO készletének azonosításához a kriptotárca szoftver átvizsgálja a blokkláncot, hogy megtalálja az összes UTXO-t, amely a megfelelő nyilvános tárcacímhez tartozik.
Az összes UTXO teljes összege pontos képet ad arról, hogy egy tárcatulajdonos mennyi kriptót irányít.
Amikor egy UTXO elköltésre kerül, a címzett nyilvános tárcacímét rendelik az összeghez, és egy új UTXO kerül rögzítésre a blokkláncon a végrehajtás után.
Tárolás
A Bitcoin UTXO-k különböző tranzakciókban kerülnek rögzítésre, amelyek blokkokban tárolódnak a Bitcoin blokkláncon. Ez az információ azonban nincs egyértelműen indexelve, így nehéz gyorsan keresni és összevetni a metaadatokat.
A tárca szoftverek, például a Bitcoin Core kliens használatakor az UTXO metaadatok egy LevelDB adatbázis segítségével tárolódnak és indexelődnek. A LevelDB egy nyílt forráskódú tárolórendszer, amelyet a Google hozott létre 2011-ben, és sokkal gyorsabbá teszi az UTXO-k megtalálását.
A Bitcoin Core kliens egy népszerű szoftver, amelyet a Bitcoin blokklánc hálózathoz való csatlakozásra használnak. Eredetileg Satoshi Nakamoto hozta létre, a Bitcoin Core-t ma önkéntes fejlesztők közössége tartja karban.
Az UTXO-k a motorháztető alatt 🚗
Technikaiabb szinten egy tranzakciónak négy fő része van:
- Verzió: Ez tájékoztatja a hálózati csomópontokat arról, hogy a kliens szoftver melyik verzióját használják. A különböző verziók eltérő szabályokat követnek a tranzakciós adatok ellenőrzésére.
- Zárolási idő (Locktime): Ez az az időtartam, amely meghatározza, hogy milyen gyorsan kerül egy tranzakció a blokkláncra. Ez a bemenet diktálja, hogy mi a legkorábbi lehetséges időpont a tranzakció bányászcsomópontok általi feldolgozására.
- Bemenet (Input): Információ, amely a források forrására vagy az előző tranzakcióra mutat, ahol az UTXO létrejött. A bemenet tartalmaz egy „feloldó szkriptet” is.
- Kimenet (Output): Információ az átutalásra kerülő értékről, arról a tárcáról, amelyre a pénzeszközök tulajdonjoga átruházásra kerül, és az újonnan létrejött UTXO-król. A kimenet tartalmaz egy „zároló szkriptet” is.
Miben különböznek az UTXO-k a fizikai készpénztől
A fizikai bankjegyek analógiája és az UTXO modell közötti fő különbség az, hogy a bitcoin és más UTXO-alapú kriptoeszközök nincsenek meghatározott összegekhez kötve, azaz 5, 10, 15 dollár stb. Bármilyen mennyiségű bitcoin (akár nyolc tizedesjegyig) lehet fel nem használt tranzakciós kimenet.
Például előfordulhat, hogy 0,0003847 BTC maradt egy tranzakcióból.
Ez az összeg új UTXO-vá válna, amelyet teljes egészében el kell költeni, ha felhasználják, és nem osztható fel kisebb összegekre.
Tegyük fel, hogy Johnnak 1 bitcoin kriptotárca egyenlege van. Az egyenlege és annak összetétele két különböző dolog, ugyanúgy, ahogy Önnek lehet 100 dollár a tárcájában, de az állhat négy 20 dolláros, két 5 dolláros és egy 10 dolláros bankjegyből.
Tegyük fel, hogy John 1 BTC egyenlegének összetétele 5 különböző fel nem használt tranzakciós kimenetből áll.
- 0,138 BTC
- 0,1 BTC
- 0,004 BTC
- 0,73 BTC
- 0,028 BTC
John 0,6 BTC-t szeretne küldeni Jane-nek. Ehhez John tárca szoftvere automatikusan csoportosítja az általa ellenőrzött UTXO-kat, hogy fedezze ezt a tranzakciót, plusz az annak feldolgozásához szükséges bányászdíjakat.
Ebben a példában tegyük fel, hogy a tárca szoftvere automatikusan elküldi John 0,73 BTC értékű bitcoin UTXO-ját Jane-nek, és a fennmaradó összeget, mínusz a tranzakciós díjakat, új UTXO-ként visszaküldi Johnnak.
Ez az összeg automatikusan egy visszajáró címre kerül; egy külön címre, amely az Ön kriptotárcájához kapcsolódik.
Zároló és feloldó szkriptek 🔒
Amikor UTXO-k jönnek létre, a címzett nyilvános tárcacímével zárolják őket. Ahhoz, hogy ezt az UTXO-t bemenetként használhassuk egy új tranzakcióban, először fel kell oldani a küldő digitális aláírásával.
Ez egy másik fontos dolog, amit meg kell érteni a bitcoin tranzakciókkal kapcsolatban. Amikor tranzakciót hajtanak végre, a bitcoin nem digitálisan mozog egyik számláról a másikra. Ehelyett feloldják, új tulajdonoshoz rendelik, majd újra zárolják.
Ez azt jelenti, hogy csak az új tulajdonos tudja feloldani az összegeket a digitális aláírásával, és máshová átutalni; egy másik személynek vagy egy másik, az ő ellenőrzése alatt álló tárcába.
A Script egy programozási nyelv, amelyet a Bitcoin használ a tranzakciók feldolgozására, beleértve az UTXO-k zárolását és feloldását.
- Zároló szkript (ScriptPubKey): Amikor egy UTXO zárolva van, a zároló szkript (más néven ScriptPubKey) olyan feltételeket határoz meg, amelyeket teljesíteni kell, mielőtt az UTXO bemenetként felhasználható lenne. Ez általában azt jelenti, hogy digitális aláírás megadásával bizonyítani kell, hogy Ön rendelkezik azzal a privát kulccsal, amely megfelel az UTXO zárolására használt nyilvános tárcacímnek.
- Feloldó szkript (ScriptSig): Egy UTXO feloldásához teljesítenie kell a zároló szkript által meghatározott feltételeket, azaz digitális aláírást kell adnia, amely bizonyítja, hogy Ön ellenőrzi azokat a privát kulcsokat, amelyek megfelelnek az UTXO zárolására használt nyilvános kulcsnak.
Ez megakadályozza, hogy bárki más hozzáférjen és elkölthesse ezeket az összegeket.
Mi az a Bitcoin dust?
A bitcoin por (Bitcoin dust) az előző tranzakciókból megmaradt, apró nyomnyi satoshi mennyiségeket tartalmazó UTXO-kra utal.
Önmagukban ezek az apró BTC mennyiségek többe kerülnének a tranzakciós díjakban, mint amennyit érnek, ezért gyakran visszajáró címeken ülnek, várva, hogy más UTXO-kkal együtt csoportosítsák és elköltsék őket.
Mi az a porlasztásos támadás (dusting attack)?
A porlasztásos támadások (dusting attacks) arra utalnak, hogy a csalók apró mennyiségű „port” küldenek több százezer különböző tárcacímre. Az ötlet mögött az áll, hogy azonosítsák a potenciális célpontokat a szociális mérnöki támadásokhoz.
A csaló figyeli az általa küldött port tartalmazó címeket, várva, hogy a tulajdonos olyan tranzakciót hajtson végre, amely a tárcájához kapcsolódó különböző címekről származó UTXO-kat csoportosít. Mivel a por UTXO-k olyan kicsik, nagy az esélye, hogy másokkal együtt csoportosítják és bemenetként használják őket.
Amint ez megtörténik, a csaló képet kaphat arról, hogy egy személy milyen pénzeszközökkel rendelkezik. Ezután dönthet úgy, hogy adathalász üzeneteket ágyaz be a tranzakciókba, amelyek arra invitálják a tulajdonost, hogy kattintson egy linkre, amely rosszindulatú szoftvert tölt le, vagy látogasson el hamis weboldalakra, amelyek legitim céloldalakat utánoznak, és személyes adatokat kérnek.
Mennyire veszélyesek a bitcoin porlasztásos támadások?
A porlasztásos támadások nem adnak hozzáférést a csalóknak az Ön pénzeszközeihez.
Csupán arra szolgálnak, hogy leszűkítsék, mely címeket ellenőriz egy adott kriptotárca.
A porlasztásos támadások kockázatának minimalizálása érdekében a legjobb, ha soha nem kattint linkekre, és nem látogat meg olyan weboldalakat, amelyek por tranzakciókhoz kapcsolódnak.
Kezdje el a Bitcoin vásárlását
Most, hogy mindent megtudott a fel nem használt tranzakciós kimenet modellről, készen áll arra, hogy folytassa kripto utazását és bitcoint vásároljon?
Tekintse meg a Kraken Learn Center útmutatóját a Bitcoin (BTC) vásárlásáról, és regisztráljon egy fiókot a Krakennél még ma.