S rastúcou cenovkou bitcoinu sa vám môže stať, že niektoré zostatky v bitcoinovej peňaženke nebude možné utratiť. Dôvodom je veľkosť transakčného poplatku, ktorý môže dosiahnuť desiatok percent utratenej čiastky, či ju dokonca presiahnuť. Ako je to možné? Je načase sa zoznámiť s problematikou UTXO, a čo pre vás znamená v bitcoinovej praxi.
Na úvod je dôležité si pripomenúť, ako vlastne fungujú transakčné poplatky v bitcoinovej sieti. Transakčný poplatok platíme preto, že veľkosť bitcoinového bloku je obmedzená. Obmedzenie veľkosti bloku nie je chyba, naopak je to veľmi dôležitá vlastnosť Bitcoinu, ktorá zaisťuje decentralizáciu. Pokiaľ by boli bloky výrazne väčšie, zmenšovalo by to množinu potenciálnych prevádzkovateľov nodov, keďže nároky na prevádzku node by boli vysoké – ako z hľadiska trafficu, tak z hľadiska miesta na disku.
i
Co to je Bitcoin full node?
Bitcoin full node, čiže plný uzol, je základná stavebná jednotka decentralizovanej siete Bitcoin. Prevádzkovatelia full nodov zabezpečia dodržiavanie pravidiel protokolu. Viac o tom, prečo a ako prevádzkovať vlastný full node, sa dočítate v našom článku Čo to je Bitcoin full node? (ZÁKLADY BITCOINU).
Veľkosť transakčných poplatkov závisí od aktuálnej prevádzky v sieti a ochote používateľov zaplatiť dostatočný transakčný poplatok, aby sa ich transakcie dostali do bloku skôr, než transakcie iných používateľov. Pokiaľ čaká v mempoole (databáze nepotvrdených transakcií) 10 000 transakcií a do bloku sa ich zmestí iba 2 500, budú medzi sebou používatelia súperiť o to, čie transakcie sa do bloku dostanú – a to s pomocou vyššieho transakčného poplatku.
Kriticky dôležité je uvedomiť si, že transakčné poplatky nie sú stanovené vo fiate (dolároch, korunách atď.), ale v satoshi na byte. Povedzme, že bitcoinová transakcia má veľkosť 200 virtuálnych bytov (vB – s touto jednotkou sa v rámci Bitcoinu pracuje). Ak je aktuálne prevládajúci poplatok 50 satoshi na virtuálnom byte, potom bude celkový poplatok za vyťaženie transakcie činiť 200 x 50 = 10 000 satoshi. A tak to bude, či už je cena bitcoinu 5 000 dolárov či 100 000 dolárov – bitcoinový protokol fiatová cenovka nezaujíma; ale vás ako používateľa asi áno. V prvom prípade bude transakčný poplatok vo fiate činiť 0,5 dolára, v druhom prípade však 10 dolárov. Tento poznatok má zásadný vplyv na praktické nakladanie s bitcoinom, najmä čo sa týka minimálnej výšky nevyčerpaných transakčných výstupov.
i
Bitcoin a satoshi
Najnižšia jednotka bitcoinu je nazvaná podľa tvorcu Bitcoinu, Satoshiho Nakamoto. Jeden Bitcoin je deliteľný na 100 miliónov satoshi. Satoshi sa tiež často skracuje ako „sat“. Vzhľadom na rapídne rastúcu fiatovú cenovku bitcoinu je vhodné používať a uvažovať v satoshi, než v celých bitcoinoch.
1 BTC = 100 000 000 sat<>
1 sat = 0,00000001 BTC<>
Neutratený výstup transakcie je technicky vzaté jediná forma, v ktorej bitcoin existuje. Poďme si vysvetliť, ako vlastne bitcoiny vznikajú a v akej forme ich držíme v našich peňaženkách:
Keď sčítame všetky existujúce UTXO, dostaneme aktuálne množstvo bitcoinov. Všetkých 18 651 812 bitcoinov v obehu (v čase písania článku) existuje vo forme nevyčerpaných výstupov transakcií. Súčet všetkých UTXO sa nazýva UTXO set, a drží si ho každý bitcoinový full node. Akonáhle full node zaznamená novú transakciu v sieti (ktorú nody ďalej preposielajú ďalším nodom), preveria validitu transakcie oproti UTXO setu, t. j. či daná transakcia utráca vstupy, ktoré sú súčasťou platného UTXO setu (a neboli minuté už skôr).
UTXO set je vo svojej podstate najdôležitejším výstupom blockchainu. Blockchain eviduje všetky doterajšie transakcie, a UTXO set je aktuálnym výstupom. Bez blockchainu by sme neboli schopní nezávisle a decentralizovane určiť, ako sme dospeli k aktuálnemu počtu bitcoinov a ich majiteľov – a bez UTXO set by sme neboli schopní stanoviť, koľko bitcoinov ktorá adresa vlastní.
Prvým faktorom ovplyvňujúcim nákladnosť transakcie je jej veľkosť.
Pre mnoho ľudí oboznamujúcich sa s Bitcoinom je veľkým prekvapením, že veľkosť bitcoinovej transakcie nijako nesúvisí s tým, koľko bitcoinov v transakcii posielame. Môžem posielať 100 bitcoinov a zaplatiť poplatok 1 000 sats (~0,6 USD), a môžem posielať 0,01 bitcoinu a zaplatiť poplatok 100 000 sats (~60 USD). Ako je to možné? Prvá transakcia má totiž oveľa menšiu veľkosť, a to je to jediné, čo bitcoinovú sieť zaujíma. Ako sme si už vysvetlili vyššie, bitcoinové bloky majú obmedzenú veľkosť; ťažiari teda majú motiváciu zaradiť do bloku čo najviac transakcií, aby pobrali čo najviac transakčných poplatkov. Čím je transakcia menšia, tým väčšiu šancu tak má šancu dostať sa do bloku – respektíve tým menší celkový poplatok bude musieť zaplatiť.
Transakčné poplatky sa spravidla udávajú v sats/vB, t. j. satoshi na jeden virtuálny byte. To samozrejme znamená, že čím viac virtuálnych bytov má transakcia, tým drahšia bude.
Čo ale ovplyvňuje veľkosť transakcie, t. j. koľko bude mať celkom virtuálnych bytov? Sú to predovšetkým tri veci:
Pre naše potreby je nutné vedieť iba to, že staršie formáty adries (začínajúce na „1“ či „3“) zvyšujú veľkosť transakcie a predražujú ju. Najlepší formát adries je segwitová adresa vo formáte bech32, začínajúca na „BC1“. Ak máte teda ešte bitcoiny na starom formáte adries, urobíte dobre, keď si ich presuniete na modernejší formát začínajúci na „BC1“. V budúcnosti výrazne ušetríte na poplatkoch. Tento formát podporuje už mnoho peňaženiek, napríklad Samourai, Wasabi, Electrum, Copa, Trezor (prostredníctvom aplikácie Suite), Phoenix.
Z uvedeného si môžeme ľahko odvodiť, aký typ bitcoinovej transakcie bude ten najlacnejší. Je to transakcia s jedným vstupom, jedným výstupom a uskutočňovaná z adresy začínajúcej na „BC1“. Taká transakcia má veľkosť 110 vB, príklad nájdete tu. Obdobná transakcia s jedným vstupom aj výstupom, ktorá je však prevedená z adresy začínajúcej na „1”, má 192 vB, príklad nájdete tu. Nevyužívanie segwitovej adresy (začínajúcej na „BC1“) vás teda môže prísť až o 75 % drahšie.
Typická bitcoinová transakcia spravidla máva dva výstupy: jeden výstup ide na cudziu peňaženku (t. j. komu platíme), druhý výstup sa vracia nám na novú adresu vygenerovanú našou peňaženkou (t. j. change output). Takáto transakcia má okolo 140 vB (za predpokladu útraty zo segwitové adresy).
Časté tiež je, že transakcia používa viac vstupov, a to najmä vtedy, keď potrebujete zaslať viac, než máte v akomkoľvek jednotlivom vstupe. Pokiaľ posielate 0,1 bitcoinu a máte vstupy s veľkosťou 0,05 BTC, 0,03 BTC a 0,02 BTC, potom bude mať vaša transakcia tri vstupy. Transakcia s tromi vstupmi a dvomi výstupmi má 276 vB (opäť za predpokladu útraty zo segwitovej adresy).
Spočítať si veľkosť transakcií pri rôznych vstupoch, výstupoch a formátoch adries môžete s pomocou nástroja Jamesona Loppa: Bitcoin Transaction Size Calculator. Poznámka: segwitové adresy („bc1”) sú v nástroji pod označením P2WPKH (pay to witness public key hash; ďalšie skratky použitých formátov vstupov/výstupov sú vysvetlené na Stack Exchange).
Druhým faktorom ovplyvňujúcim nákladnosť transakcie je prevládajúci fee rate, t. j. koľko satoshi musíte zaplatiť za jeden virtuálny byte, aby ťažiari transakciu prijali do niektorého z nasledujúcich blokov.
Fee rate však nie je nikým diktovaný, ide o čisto trhový fenomén podobný neustále prebiehajúcej aukcii medzi používateľmi Bitcoinu. Jeho aktuálna výška je ovplyvňovaná dvomi hlavnými faktormi:
Inak povedané, čím viac používateľov chce dostať svoje transakcie do limitovaného priestoru jedného bloku, tým vyšší bude fee rate. Používatelia sa budú snažiť preplatiť ostatných, aby sa ich transakcie dostali prednostne do ďalšieho bloku.
S odporúčanou veľkosťou poplatku čiastočne pomáhajú používateľom peňaženky, ktoré spravidla ponúkajú low/medium/high/custom poplatky. Ideálne je, keď sa naučíte odhadovať a stanovovať si poplatky sami – väčšinou tak výrazne ušetríte. Dobrým východiskovým bodom na zmapovanie aktuálnej situácie ohľadom poplatkov je stránka Mempool.Space – orientáciu na tejto stránke vysvetľujem v popise obrázku nižšie.
A teraz sa dostávame k jadru problému, ktorým je minimálna praktická veľkosť UTXO.
Povedzme, že typická veľkosť transakcie je 200 vB – to zodpovedá segwitovej transakcii s 2 vstupmi a 2 výstupmi. Pokiaľ je prevládajúci fee rate 50 sats/vB, potom transakčný poplatok činí 10 000 satoshi.
UTXO menší ako 10 tisíc satoshi teda bude neutratiteľný, pretože transakčný poplatok by zobral všetku hodnotu. Neutratiteľné UTXO sa nazývajú dust UTXO.
V minulosti boli dust UTXO skôr okrajový problém, keďže, vyjadrené vo fiate, išlo o zanedbateľné čiastky. Avšak rastúca cena bitcoinu vytvára dust aj zo súm, ktoré nie sú už úplne nevýznamné. Pri cenovke 60 tisíc dolárov za 1 bitcoin má 1 satoshi hodnotu 0,0006 USD. 10 tisíc satoshi potom má hodnotu 6 USD.
To však neznamená, že by dust bol teraz čokoľvek pod 10 tisíc satoshi; praktickým dustom je v uvedenom príklade oveľa vyššia suma, než 10 tisíc satoshi. Dôvodom je, že nechceme platiť transakčné poplatky v desiatkach percent z minutej sumy. Povedzme, že prijateľný transakčný poplatok je maximálne 5 % z minutej sumy – to potom znamená, že naša UTXO by mala mať výšku 200 tisíc satoshi.
V prostredí rýchlo rastúcej ceny Bitcoinu a zároveň rastúceho fee rate je potrebné myslieť na minimálnu veľkosť UTXO, a to práve vo vyjadrení v satoshi. Pretože 40 EUR pred rokom je v satoshi niečo iné, ako 40 EUR dnes.
Ako teda stanoviť minimálnu praktickú výšku UTXO?
Ovplyvňujú ju tri faktory:
Veľkosť transakcie môžete znížiť jednoducho. Používajte segwitové adresy. Konsolidujte inputy (na zníženie budúcich veľkostí transakcií je lepšie mať jeden vstup s hodnotou 0,01 BTC ako 10 vstupov s hodnotou 0,001 BTC) – ale dbajte na naše varovanie v boxe. Zobrazenie vašich inputov ponúka čoraz viac peňaženiek – napríklad Samourai, Wasabi, počas tohto roka túto funkciu bude mať aj Trezor Suite. Akonáhle budete poznať skladbu svojich vstupov, majte ju stále na pamäti a nevytvárajte si dust napríklad pri platbách, kde change output bude mať v satoshi príliš nízku hodnotu.
i
Varovanie: konsolidujte s rozvahou!
Než sa vrhnete na konsolidáciu vstupov, pamätajte na dôležitú vec: môžete si takto spojiť coiny s KYC stopou a non-KYC coinmi. Takže tým môžete povedať burze/regulátoru či komukoľvek ďalšiemu, že máte v skutočnosti oveľa viac coinov, než ste na burze nakúpili.
Budúce fee rate nepoznáme – ale počítajte s tým, že môže byť 100 sats/vB a vyššie. K tomu nie je príliš čo dodať – onchain transakčné poplatky pôjdu v budúcnosti pravdepodobne oveľa vyššie, než kedy v minulosti. Dopyt po onchain transakciách sa bude s rastúcou adopciou len zvyšovať. Naučte sa pracovať s Lightning Network a menšie transakcie vykonávajte s takmer nulovými poplatkami na tejto platobnej vrstve.
Dnešná fiatová hodnota napríklad pri stackovaní (pravidelných úsporách do bitcoinu) by sa mala prispôsobiť minimálnej výške UTXO. Pokiaľ ste zvyknutí stackovať 40 EUR mesačne, ste skoro na hrane minimálneho UTXO. Radšej si stanovte za cieľ, že si každý mesiac stacknete aspoň 100 tisíc satoshi. Prejdite na sats štandard a uvažujte v satoshi. S prepočtom fiatu do sats vám pomôže táto kalkulačka.
Tabuľka nižšie uvádza orientačné minimálne veľkosti UTXO v sats a v dolároch. V praxi to znamená, že pri daných fiatových cenovkách bitcoinu a odhadovanom fee rate by ste mali stackovať aspoň v tejto minimálnej výške. Na to je potrebné pamätať napr. pri stackovaní cez Bisq, kde každý nákup vytvára nové UTXO; pri stackovaní s pomocou Bisq zohľadnite odporúčané minimálne nákupy. V budúcnosti sa snáď viac rozšíri možnosť stackovania cez Lightning Network, kde problematiku minimálnej veľkosti UTXO riešiť nemusíme.
Predpoklady použité na výpočet v tabuľke:
Dnešná situácia (v čase písania článku) je úplne vľavo hore (cena okolo 50 tisíc dolárov, fee rate okolo 50 sats/vB). Zvyšok tabuľky slúži na plánovanie do budúcnosti, t. j. ako veľké UTXO by ste si mali vytvárať pri predpoklade rôznych cenových úrovní a fee rate.
Najlepšie jednoducho urobíte, keď sa veľkosť vašich UTXO bude pohybovať aspoň v rádoch státisícov, ideálne však v rádoch miliónov satoshi. UTXO vo veľkosti pod 0,001BTC (100 tisíc satoshi) sú už na hranici dustu, najmä ak zohľadníme predpokladaný rast fee rate v budúcnosti.
Znamená to azda, že v budúcnosti si bežní ľudia už nebudú môcť sporiť do Bitcoinu? Pravdepodobne neznamená, pretože s rastúcou cenovkou bude veľká motivácia umožniť ľuďom stackovať za pomoci Lightning Network, kde nie je problém vykonávať lacné transakcie v rádoch stoviek satoshi.
Myslite na veľkosť vašich outputov a využívajte obdobie, kedy sú poplatky nízke – presúvajte na segwit adresy, otvárajte Lightning kanály, myslite na minimálnu veľkosť UTXO pri stackovaní. Starajte sa o svoje satoshi, a ony sa v budúcnosti postarajú o vás.
Josef Tětek
Josef Tětek je členom správnej rady Liberálneho inštitútu, kryptomenám sa aktívne venuje od roku 2015 (publikácia na Finmag.cz, BTCtip.cz). Do budúcnosti vidí najväčší potenciál v Lightning Network, cross-blockchainových riešeniach a decentralizovaných burzách. @KryptoJoseph na Twitteri.