Mi az az UTXO?

Az el nem költött tranzakciós kimenetek diszkrét bitcoin darabkák.

Az UTXO az Unspent Transaction Output (el nem költött tranzakciós kimenetek) rövidítése, és ez a bitcoin egy diszkrét darabkáját illető szakkifejezés. Leegyszerűsítve, az UTXO-k azok a bitcoinjaid, amelyeket már megkaptál, de még nem költöttél el.

A bitcoin összegek a Bitcoin blokklánc tranzakciós feljegyzéseiként léteznek. A bitcoin birtoklás azt jelenti, hogy létezik egy tranzakció a blokkláncon egy olyan címre, amelynek a privát kulcsaival te rendelkezel. Ezt a bitcoin összegre vonatkozó bejegyzést UTXO-nak nevezzük.

A Bitcoin működésének alapja, hogy a tranzakcióknak vannak bemenetei és kimenetei. Egy tranzakció során a küldő egy vagy több bemenetet és egy vagy több kimenetet ad meg, amelyek a bitcoin tört részétől kezdve a több egész bitcoinig bármilyen összegűek lehetnek:

  • Bemenet(ek): Egy bitcoin tranzakció bemenete egy korábbi, el nem költött tranzakciós kimenetre (UTXO) hivatkozik, és az új tranzakció finanszírozására szolgál. Tartalmazza az előző tranzakció azonosítóját, az adott elköltött kimenetet és a tulajdonjogot igazoló aláírást.
  • Kimenet(ek): A bitcoin tranzakcióban a kimenet meghatározza a bitcoin fogadóját és a fizetendő összeget, amely lehet egy, a küldő fél által felügyelt cím is.

Amikor egy UTXO-t bemenetként elköltünk, az megsemmisül, és kimenetként egy vagy több UTXO jön létre. Az egyetlen kivételt ez alól a bemeneti-kimeneti rendszer alól az egyes blokkok első tranzakciója, az úgynevezett „coinbase” tranzakció képezi. A coinbase tranzakciónak nincs bemenete, mivel ez újonnan kibocsátott bitcoin, amely a bányász jutalmaként kerül forgalomba, a szigorú kínálati ütemtervnek megfelelően.

Megnézheted magadnak a blokklánc bármelyik blokkját, és láthatod a különféle tranzakciókat, melyek mindegyike egy vagy több bemenettel és kimenettel rendelkezik, valamint a bemenet nélküli coinbase-t. A Bitcoin szoftverét futtató csomópontok hálózata az összes UTXO-ról nyilvántartást vezet, melyet „UTXO-készletnek” neveznek, és amely a rendszer összes érvényes érméjét tartalmazza.

A számlamodellel való összehasonlítás

Ez az UTXO-modell eltér a bankok által használt „számlamodelltől”. A számlamodellben az egyenlegeket egyetlen számként tartják nyilván, amelyeket minden egyes tranzakció esetén módosítanak, míg az UTXO-modell minden egyes tranzakciós kimenetet diszkrét, elkölthető egységként kezel.

  • Számlamodell: Az egyenlegek frissítése számlák terhelésével és jóváírásával történik, hasonló módon, mint ahogyan a bankok kezelik a készpénzegyenlegeket. Bármilyen összeg befizetésekor vagy kivételekor az egyenleg ennek megfelelően módosul.
  • UTXO-modell: Minden egyes tranzakció kimenete olyan, mint egy külön darab fizikai készpénz (papír bankjegyek és fémérmék). Amikor fizetsz, ki kell választanod az adott bankjegyeket vagy érméket, amelyeket használni szeretnél. A tranzakció részeként visszajárót kaphatsz, melyek új bankjegyek vagy érmék a pénztárcádban.

A legfontosabb különbség ehhez a fizikai készpénz analógiához képest az, hogy a bitcoin fizetés fogadója egységes UTXO-ként kapja meg azt, nem pedig a bemeneteknek megfelelő összeállításként. Összességében ez azt jelenti, hogy a bitcoinállományod egyszerűen a korábbi tranzakciókból származó, még el nem költött kimenetek – vagyis UTXO-k (Unspent Transaction Output) – gyűjteménye.

Az UTXO-k és a díjak megértése

Amikor egy tranzakciót végzel a Bitcoin blokkláncon, tranzakciós díjat (más néven on-chain díjat) kell fizetned, hogy a tranzakciót hozzáadják egy blokkhoz és jóváhagyják. A tranzakciós díjakat annak a bányásznak fizetik, aki a blokkot hozzáadja, így ösztönözve a tranzakciók mielőbbi jóváhagyását.

Egy adott tranzakcióban a díj összege egyszerűen a bemeneti és kimeneti összegek közötti különbség. Ha a bemenetek teljes összege 1 bitcoin, a kimenetek teljes összege pedig 0,99 bitcoin, akkor a bányásznak fizetendő díj 0,01 bitcoin.

A Bitcoin blokkok mérete korlátozott, és csak átlagosan 10 percenként kerülnek hozzáadásra. Ez biztosítja, hogy a teljes blokklánc elég kicsi marad ahhoz, hogy egy átlagos laptop segítségével letölthető és ellenőrizhető legyen, ami segít megőrizni a Bitcoin decentralizáltságát azáltal, hogy a részvétel mindenki számára nyitott marad. Így a díjak a tranzakcióhoz szükséges adatmennyiségen alapulnak, nem pedig annak pénzügyi értékén. Az olyan tranzakciók, amelyek több bájtnyi adatot foglalnak el, például a sok bemenettel és kimenettel rendelkező tranzakciók, több díjat fizetnek, mivel többet használnak a szűkösen rendelkezésre álló blokk tárhelyből.

Díjak és UTXO méretek

A díjakat virtuális bájtonkénti satoshiban („sats/vbyte”) mérik. Mivel a díjak piaca szabad és nyílt, bárki bármilyen összegű díjat megjelölhet a tranzakciójához, a bányászok pedig kiválaszthatják, hogy egy blokkba mely tranzakciókat foglalják bele. A díjak licitálhatók felfelé, különösen nagy hálózati forgalom idején. A magasabb díjak azt jelentik, hogy a tranzakciónk drágábban kerülhet bele a blokkláncba, még az egyetlen bemenettel és kimenettel rendelkező tranzakciók esetében is, mivel minden egyes bemenet és kimenet az általuk igényelt adatbájtokon alapuló költséget jelent.

Ez az alacsony értékű UTXO-k esetén jelent problémát.

Amikor a díjak magasak, egy alacsony értékű UTXO inputként való használata gazdaságtalanná válhat, mivel az UTXO bevonásának díjköltsége az UTXO értékének jelentős százalékát teheti ki – így előfordulhat, hogy az UTXO értékének felét felemésztik a díjak. Mi több, ha egy adott UTXO inputként való bevonásának költsége meghaladja az értékét, akkor az gyakorlatilag elkölthetetlenné válik. Az ilyen alacsony értékű UTXO-kra – amelyek elköltése több díjba kerül, mint az értékük – gyakran „por” (dust) néven hivatkoznak, ugyanis ezek az UTXO-k veszendőbe mennek.

Például egy egyszerű bemenet 57,5 vbájtot igényelhet egy Taproot-tranzakcióhoz, és akár 148 vbájtot egy szabványos P2PKH-tranzakcióhoz (vagy többet az olyan összetett tranzakciókhoz, mint a multi-sig), így ha a díjtételek elérnék a 200 sats/vbyte értéket, a tranzakció típusától függően a következő vagy annál kisebb UTXO-méretek elkölthetetlenné válnának:

  • 57.5 vbytes * 200 sats/vbyte = 11,500 sat UTXO
  • 148 vbytes * 200 sats/vbyte = 29,600 sat UTXO

Hosszú távon a díjak várhatóan emelkedni fognak a Bitcoin növekvő elfogadottságával, ahogy egyre több magánszemély, vállalkozás, alkalmazás, sőt kormányzat is elkezd on-chain tranzakciókat bonyolítani. Ha önmagad rendelkezel bitcoinod felett, akkor ennek megfelelően kell gondoskodnod az UTXO-k hatékony kezeléséről.

Hogyan kezeld az UTXO-idat?

Amikor egy olyan alkalmazást használsz bitcoinod letétkezeléséhez (custody), mint a Strike, akkor egyúttal az UTXO-kezelést is delegálod, beleértve a bemenetek kiválasztását és a díjszabások beállítását a tranzakciók gazdaságos lebonyolítása érdekében. Amikor készen állsz bitcoinod feletti önrendelkezésre, az UTXO-k kezelése kulcsfontosságúvá válik, és a Te részedről tervezést igényel.

UTXO-id kezelése során fontos figyelembe venned néhány tényezőt, többek között a díjtételeket, az adatvédelmet és jövőbeni tranzakcióid gazdaságos fenntarthatóságát. Az alábbiakban néhány bevált UTXO-kezelési gyakorlatot mutatunk be, amelyeket érdemes követni:

  • Nem túl kicsi: Tartsd UTXO-idat legalább 1 millió satoshi (0,01 bitcoin) körül, hogy a díjak emelkedése esetén is gazdaságosan fenntarthatóak maradjanak. A 10 000 vagy akár 100 000 satoshi nagyságrendű UTXO-k magas díjak esetén gazdaságtalanná vagy elkölthetetlenekké válhatnak.
  • Nem túl nagy: Ne tartsd az összes bitcoinodat egyetlen nagy UTXO-ban! Ha egy jövőbeni tranzakcióban egy nagy UTXO-t használsz bemenetként, azzal felfedheted a fogadó fél előtt a birtokolt állományodat, mivel láthatja, hogy mely UTXO-t használtad bemenetként, és hová került elküldésre a visszajáró, ami sértheti a privát szférádat.
  • Diverzifikáld UTXO-id méretét: Lehetőség szerint tarts különböző méretű UTXO-kat, hogy ezáltal választási lehetőséget biztosíts magadnak a jövőbeni tranzakciókhoz való megfelelő méretű bemenetek kiválasztásához!
  • UTXO-id elkülönítése: A magánszférád megőrzése és a tranzakció címzettjei általi nyomon követhetőség megakadályozása érdekében tartsd elkülönítve a különböző forrásokból származó UTXO-kat, beleértve az ügyfélazonosítás nélküli (non-KYC) forrásokat is!
  • Küldéseid időzítése: Kövesd figyelemmel a díjtételeket, és törekedj arra, hogy olyankor küldj tranzakciókat, amikor a díjak viszonylag alacsonyak, ugyanakkor ne várj túl sokáig, mert előfordulhat, hogy a kívánt díjjal való küldés nem valósul meg!
  • Alacsony díjak esetén egyesíts: Használd ki az alacsony díjszabású időszakokat a kisebb UTXO-k nagyobb kimenetekbe történő összevonására, hogy biztosítsd a jövőbeni gazdaságos fenntarthatóságot!
  • Óvakodj a díjtüskéktől: A hirtelen díjemelkedések lehetnek átmenetiek, és órákon vagy napokon belül lecsenghetnek. Nem sürgős tranzakciók esetén bölcs döntés lehet kivárni, bár hosszú távon a Bitcoin elfogadottságának növekedésével a díjak várhatóan emelkedni fognak.
  • Használd a Lightning-ot: Kisebb tranzakciókhoz használd a Lightning Network-öt! A Lightning valódi bitcoin tranzakciókat tesz lehetővé, anélkül, hogy minden egyes tranzakciót rögzítene a blokkláncon, elkerülve ezzel az on-chain díjakat és a várakozási időt. A Lightning tranzakciók azonnaliak és alacsony ill. zéró költségűek, így akár egyetlen satoshit is küldhetsz barátaidnak vagy saját Lightning tárcádra.

UTXO-id gondos kezelése által optimalizálhatod tranzakciós költségeidet, megőrizheted magánszférádat, valamint biztosíthatod, hogy a jövőben úgy tudd bitcoinjaidat költeni, ahogyan szeretnéd, függetlenül a jövőbeni díjpiaci körülményektől.