S rostoucí cenovkou bitcoinu se vám může stát, že některé zůstatky v bitcoinové peněžence budou neutratitelné. Důvodem je velikost transakčního poplatku, který může dosáhnout desítek procent utrácené částky, či ji dokonce přesáhnout. Jak je to možné? Je načase se seznámit s problematikou UTXO, a co pro vás znamená v bitcoinové praxi.
Na úvod je důležité si připomenout, jak vlastně fungují transakční poplatky v bitcoinové síti. Transakční poplatek platíme proto, že velikost bitcoinového bloku je omezená. Omezení velikosti bloku není chyba, naopak je to velmi důležitá vlastnost Bitcoinu, jež zajišťuje decentralizaci. Pokud by byly bloky výrazně větší, zmenšovalo by to množinu potenciálních provozovatelů nodů, jelikož nároky na provoz nodu by byly vysoké - jak z hlediska trafficu, tak z hlediska místa na disku.
i
Co to je Bitcoin full node?
Bitcoin full node, neboli plný uzel, je základní stavební jednotka decentralizované sítě Bitcoin. Provozovatelé full nodů dohlížejí na dodržování pravidel protokolu. Více o tom, proč a jak provozovat vlastní full node, se dočtete v našem článku Co to je Bitcoin full node? (ZÁKLADY BITCOINU).
Velikost transakčních poplatků závisí na aktuálním provozu v síti a ochotě uživatelů zaplatit dostatečný transakční poplatek, aby se jejich transakce dostaly do bloku dříve, než transakce jiných uživatelů. Čeká-li v mempoolu (databázi nepotvrzených transakcí) 10 000 transakcí a do bloku se jich vejde pouze 2 500, budou mezi sebou uživatelé soupeřit o to, čí transakce se do bloku dostane - a to s pomocí výše transakčního poplatku.
Kriticky důležité je uvědomit si, že transakční poplatky nejsou stanoveny ve fiatu (dolarech, korunách atd.), nýbrž v satoshi na byte. Řekněme, že bitcoinová transakce má velikost 200 virtuálních bytů (vB - s toutou jednotkou se v rámci Bitcoinu pracuje). Je-li aktuálně převládající poplatek 50 satoshi na virtuální byte, pak bude celkový poplatek za vytěžení transakce činit 200 x 50 = 10 000 satoshi. A tak to bude, ať už je cena bitcoinu 5 000 dolarů či 100 000 dolarů - bitcoinový protokol fiatová cenovka nezajímá; ale vás jako uživatele asi ano. V prvním případě bude transakční poplatek ve fiatu činit 0,5 dolaru, ve druhém případě však 10 dolarů. Tento poznatek má zásadní dopady pro praktické nakládání s bitcoinem, zejména co se týče minimální výše neutracených transakčních výstupů.
i
Bitcoin a satoshi
Nejnižší jednotka bitcoinu je nazvaná podle tvůrce Bitcoinu, Satoshiho Nakamota. Jeden bitcoin je dělitelný na 100 milionů satoshi. Satoshi se také často zkracuje jako "sat". Vzhledem k rapidně rostoucí fiatové cenovce bitcoinu je vhodné používat a uvažovat v satoshi, než v celých bitcoinech.
1 BTC = 100 000 000 sat<>
1 sat = 0,00000001 BTC<>
UTXO = unspent transaction output. UTXO is the only way your bitcoin actually "exists". Every transaction takes previous unspent outputs, uses them as inputs and creates new outputs as a result. Every end is a new beginning. Bitcoin is beautiful. pic.twitter.com/BbSROkEOyy
— StackSatsJoseph (@SatsJoseph) March 12, 2021
Neutracený výstup transakce je technicky vzato jediná forma, ve které bitcoin existuje. Pojďme si vysvětlit, jak vlastně bitcoiny vznikají a v jaké formě je držíme v našich peněženkách:
Když sečteme všechny existující UTXO, dostaneme aktuální množství bitcoinu. Všech 18651812 bitcoinů v oběhu (v době psaní článku) existuje ve formě neutracených výstupů transakcí. Součet všech UTXO se nazývá UTXO set, a drží si jej každý bitcoinový full node. Jakmile full node zaznamená novou transakci v síti (kterou nody dále přeposílají dalším nodům), prověří validitu transakce oproti UTXO setu, tj. zda daná transakce utrácí vstupy, které jsou součástí platného UTXO setu (a nebyly utraceny již dříve).
UTXO set je ve své podstatě nejdůležitějším výstupem blockchainu. Blockchain eviduje veškeré dosavadní transakce, a UTXO set je aktuálním výstupem. Bez blockchainu bychom nebyli schopni nezávisle a decentralizovaně určit, jak jsme dospěli k aktuálnímu počtu bitcoinů a jejich majitelů - a bez UTXO set bychom nebyli schopni stanovit, kolik bitcoinů která adresa vlastní.
Prvním faktorem ovlivňujícím nákladnost transakce je její velikost.
Pro mnoho lidí seznamujících se s Bitcoinem je velkým překvapením, že velikost bitcoinové transakce nijak nesouvisí s tím, kolik bitcoinů v transakci posíláme. Mohu posílat 100 bitcoinů a zaplatit poplatek 1000 sats (~0,6 USD), a mohu posílat 0,01 bitcoinu a zaplatit poplatek 100000 sats (~60 USD). Jak je to možné? První transakce má totiž mnohem menší velikost, a to je to jediné, co bitcoinovou síť zajímá. Jak jsme si již vysvětlili výše, bitcoinové bloky mají omezenou velikost; těžaři tudíž mají motivaci zařadit do bloku co nejvíce transakcí, aby pobrali co nejvíce transakčních poplatků. Čím je transakce menší, tím větší šanci tak má šanci dostat se do bloku - respektive tím menší celkový poplatek bude muset zaplatit.
Transakční poplatky se zpravidla udávají v sats/vB, tj. satoshi na jeden virtuální byte. To samozřejmě znamená, že čím více virtuálních bytů má transakce, tím dražší bude.
Co ale ovlivňuje velikost transakce, tj. kolik bude mít celkem virtuálních bytů? Jsou to především tři věci:
O problematice rozličných formátů bitcoinových adres jsme pojednali dříve v článku Schnorrovy podpisy a Taproot: dlouho očekávané upgrady Bitcoinu se blíží! Pro naše potřeby je nutné vědět pouze to, že starší formáty adres (začínající na “1” či “3” zvyšují velikost transakce a prodražují ji. Nejlepší formát adres je segwitová adresa ve formátu bech32, začínající na “bc1”. Máte-li tudíž ještě bitcoiny na starém formátu adres, uděláte dobře, když si je přesunete na modernější formát začínající na “bc1”. V budoucnu výrazně ušetříte na poplatcích. Tento formát podporuje již mnoho peněženek, například Samourai, Wasabi, Electrum, Copay, Trezor (skrze aplikaci Suite), Phoenix.
Z uvedeného si můžeme lehce odvodit, jaký typ bitcoinové transakce bude ten nejlevnější. Je to transakce s jedním vstupem, jedním výstupem a prováděná z adresy začínající na “bc1”. Taková transakce má velikost 110 vB, příklad naleznete zde. Obdobná transakce s jedním vstupem i výstupem, která je však provedena z adresy začínající na “1”, má 192 vB, příklad naleznete zde. Nevyužívání segwitové adresy (začínající na “bc1”) vás tudíž může přijít až o 75 % dráž.
Typická bitcoinová transakce zpravidla mívá dva výstupy: jeden výstup jde na cizí peněženku (tj. komu platíme), druhý výstup se vrací nám na novou adresu vygenerovanou naší peněženkou (tj. change output). Taková transakce má okolo 140 vB (za předpokladu útraty ze segwitové adresy).
Časté rovněž je, že transakce používá více vstupů, a to zejména tehdy, když potřebujete zaslat více, než máte v jakémkoli jednotlivém vstupu. Zasíláte-li 0,1 bitcoinu a máte vstupy o velikosti 0,05BTC, 0,03BTC a 0,02BTC, pak bude vaše transakce mít tři vstupy. Transakce o třech vstupech a dvou výstupech má 276 vB (opět za předpokladu útraty ze segwitové adresy).
Spočítat si velikost transakcí při různých vstupech, výstupech a formátech adres můžete s pomocí nástroje Jamesona Loppa: Bitcoin Transaction Size Calculator. Poznámka: segwitové adresy (“bc1”) jsou v nástroji pod označením P2WPKH (pay to witness public key hash; další zkratky použitých formátů vstupů/výstupů jsou vysvětleny na Stack Exchange).
Druhým faktorem ovlivňujícím nákladnost transakce je převládající fee rate, tj. kolik satoshi musíte zaplatit za jeden virtuální byte, aby těžaři transakci přijali do některého z následujících bloků.
Fee rate nicméně není nikým diktován, jedná se o čistě tržní fenomén podobný neustále probíhající aukci mezi uživateli Bitcoinu. Jeho aktuální výše je ovlivňována dvěma hlavními faktory:
Jinak řečeno, čím více uživatelů chce dostat své transakce do limitovaného prostoru jednoho bloku, tím vyšší bude fee rate. Uživatelé se budou snažit přeplatit ostatní, aby se jejich transakce dostala přednostně do dalšího bloku.
S doporučenou velikostí poplatku částečně pomáhají uživatelům peněženky, které zpravidla nabízejí low / medium / high / custom poplatky. Ideální je, když se naučíte odhadovat a stanovovat si poplatky sami - většinou tak výrazně ušetříte. Dobrým výchozím bodem pro zmapování aktuální situace ohledně poplatků je stránka Mempool.Space - orientaci na této stránce vysvětluji v popisku obrázku níže.
A nyní se dostáváme k jádru problému, kterým je minimální praktická velikost UTXO.
Řekněme, že typická velikost transakce je 200 vB - to odpovídá segwitové transakci se 2 vstupy a 2 výstupy. Je-li převládající fee rate 50 sats/vB, pak transakční poplatek činí 10000 satoshi.
UTXO menší než 10 tisíc satoshi tedy bude neutratitelné, jelikož transakční poplatek by sebral veškerou hodnotu. Neutratitelné UTXO se nazývá dust UTXO.
V minulosti byly dust UTXO spíše okrajový problém, jelikož se, vyjádřeno ve fiatu, jednalo o zanedbatelné částky. Nicméně rostoucí cena bitcoinu vytváří dust i z částek, které nejsou už úplně nevýznamné. Při cenovce 60 tisíc dolarů za 1 bitcoin má 1 satoshi hodnotu 0,0006 USD. 10 tisíc satoshi pak má hodnotu 6 USD.
To nicméně neznamená, že by dust byl nyní cokoli pod 10 tisíc satoshi; praktickým dustem je v uvedeném příkladě mnohem vyšší částka, než 10 tisíc satoshi. Důvodem je, že nechceme platit transakční poplatky v řádu desítek procent z utrácené částky. Řekněme, že přijatelný transakční poplatek je maximálně 5 % z utrácené částky - to poté znamená, že naše UTXO by mělo mít výši 200 tisíc satoshi.
V prostředí rychle rostoucí ceny Bitcoinu a zároveň rostoucího fee rate je zapotřebí myslet na minimální velikost UTXO, a to právě ve vyjádření v satoshi. Protože 1000 Kč před rokem je v satoshi něco jiného, než 1000 Kč dnes.
Jak tedy stanovit minimální praktickou výši UTXO?
Ovlivňují ji tři faktory:
Velikost transakce můžete snížit jednoduše. Používejte segwitové adresy. Konsolidujte inputy (pro snížení budoucích velikostí transakcí je lepší mít jeden vstup o hodnotě 0,01BTC než 10 vstupů o hodnotě 0,001BTC) - ale dbejte našeho varování v boxu. Zobrazení vašich inputů nabízí stále více peněženek - kupříkladu Samourai, Wasabi, během tohoto roku tuto funkci bude mít i Trezor Suite. Jakmile budete znát skladbu svých vstupů, mějte ji stále na paměti a nevytvářejte si dust například při platbách, kde change output bude mít v satoshi příliš nízkou hodnotu.
i
Varování: konsolidujte s rozvahou!
Než se vrhnete na konsolidaci vstupů, pamatujte na důležitou věc: můžete si takto spojit coiny s KYC stopou a non-KYC coiny. Takže tím můžete burze/regulátorovi či komukoli dalšímu, že máte ve skutečnosti mnohem více coinů, než jste na burze nakoupili. O nebezpečí KYC procesů jsme psali v článku KYC: poznej svého zákazníka, pravil regulátor.
Budoucí fee rate neznáme - ale počítejte s tím, že může být 100 sats/vB a vyšší. K tomu není příliš co dodat - onchain transakční poplatky půjdou v budoucnu pravděpodobně mnohem výše, než kdy v minulosti. Poptávka po onchain transakcích se bude s rostoucí adopcí pouze zvyšovat. Naučte se pracovat s Lightning Network a menší transakce provádějte s téměř nulovými poplatky na této platební vrstvě.
Dnešní fiatová hodnota například při stackování (pravidelných úsporách do bitcoinu) by se měla přizpůsobit minimální výši UTXO. Jste-li zvyklí stackovat 1000 Kč měsíčně, jste skoro na hraně minimálního UTXO. Raději si stanovte za cíl, že si každý měsíc stacknete alespoň 100 tisíc satoshi. Přejděte na sats standard a uvažujte v satoshi. S přepočtem fiatu do sats vám pomůže tato kalkulačka.
Tabulka níže uvádí orientační minimální velikosti UTXO v sats a v dolarech. V praxi to znamená, že při daných fiatových cenovkách bitcoinu a odhadovaném fee rate byste měli stackovat alespoň v této minimální výši. Na to je třeba pamatovat např. při stackování přes Bisq, kde každý nákup vytváří nové UTXO; při stackování s pomocí Bisq zohledněte doporučené minimální nákupy. V budoucnu se snad více rozšíří možnost stackování přes Lightning Network, kde problematiku minimální velikosti UTXO řešit nemusíme.
Předpoklady použité pro výpočet v tabulce:
Dnešní situace (v době psaní článku) je úplně vlevo nahoře (cena okolo 50 tisíc dolarů, fee rate okolo 50 sats/vB). Zbytek tabulky slouží k plánování do budoucna, tj. jak velké UTXO byste si měli vytvářet při předpokladu různých cenových úrovní a fee rate.
Nejlépe zkrátka uděláte, když se velikost vašich UTXO bude pohybovat alespoň v řádech statisíců, ideálně však v řádech milionů satoshi. UTXO ve velikosti pod 0,001BTC (100 tisíc satoshi) jsou již na hranici dustu, zejména zohledníme-li předpokládaný růst fee rate v budoucnosti.
Znamená to snad, že v budoucnu si běžní lidé již nebudou moci spořit do Bitcoinu? Pravděpodobně neznamená, jelikož s rostoucí cenovkou bude velká motivace umožnit lidem stackovat za pomoci Lightning Network, kde není problém provádět levné transakce v řádu stovek satoshi.
Myslete na velikost vašich outputů a využívejte období, kdy jsou poplatky nízké - přesouvejte na segwit adresy, otevírejte Lightning kanály, myslete na minimální velikost UTXO při stackování. Starejte se o své satoshi, a ony se v budoucnu postarají o vás.
Josef Tětek
Josef je ekonom vycházející z rakouské školy ekonomie. Věnuje se Stackuj Podcastu a vede edukativní projekt Trezor Academy se zaměřením na posílení finanční a bitcoinové gramotnosti primárně v Africe. Autor knih Nepřátelé státu, přátelé svobody, Bitcoin: Odluka peněz od státu a Bitcoin: Návrat zdravých peněz. @JosefTetek na Twitteru.
Osobní stránky: Stackuj.cz