Tento výpočet je iba orientačný a mal by hlavne pomôcť pochopiť, ako funguje UTXO model a ako sa mení poplatok pri zmene počtu vstupov/výstupov, ale aj ďalších parametrov. Nižšie nájdete aj názorné príklady a doplňujúce obrázky z jednej mojej staršej prezentácie.
Vysvetlenie na príkladoch
Predstav si, že si koncom roka 2024, po dobu 10 týždňov, každý týždeň nakúpil bitcoin za 100 €. (Vieme, že je to vždy iné množstvo satov, ale pre náš príklad bude jednoduchšie, ak si vždy nakúpil rovných 100.000 satov). Takže teraz máš na Trezore 10 UTXOs po 100.000 satov:
1. nákup – 100.000
2. nákup – 100.000
3. nákup – 100.000
…
Spolu: 1.000.000 satov = 0.01 BTC
Scenár 1:
V januári 2025 chceš poslať transakciu 800.000 satov za bicykel z druhej ruky.
To znamená, že do transakcie musí ísť aspoň 9 z tvojich UTXOs (máš ich 10, po 100 tisíc, takže do transakcie musíš poslať 900.000. Zvyšok sa ti vráti na tvoju „Change adresu“).
Tak si do kalkulačky zadaj 9 vstupov.
Keďže si nakupoval na Segwit adresy a budeš posielať na Segwit adresu, tvoj poplatok (pri aktuálnej výške 3 sat/vByte, bude 2054 sats.
Pohodička: 800.000 + 2.054 = 802.054
„Výdavok“ 97.946 sa z transakcie vráti na tvoju Change adresu
Myslím, že tu je kľúčové spomenúť, že z peňaženky posielaš do transakcie celé UTXO.
Nie je možné odoslať nejakú presnú čiastku.
Scenár 2:
Je január 2035 a potrebuješ poslať transakciu 800.000 satov za nové auto.
To znamená, že do transakcie musí ísť aspoň 9 z tvojich UTXOs (máš ich 10, po 100 tisíc, takže do transakcie musíš poslať 900.000. Zvyšok sa ti vráti na tvoju „Change adresu“).
Tak si do kalkulačky zadaj 9 vstupov.
A tiež si zmeň aktuálny poplatok na 400 sats/vByte.
Keďže si nakupoval na Segwit adresy a budeš zrejme posielať na Taproot(?) adresy, tvoj poplatok (pri aktuálnej výške 400 sat/vByte, bude 283400 sats.
Práve zisťuješ, že aj keby si použil všetkých 10 UTXOs, nemáš dosť satov na to, aby si túto transakciu realizoval, pretože
800.000 + 283.400 = 1.083.400
A ty máš iba 1 milión
Scenár 3:
Teraz si skús nastaviť poplatok na 600 sat/vByte (nie je to tak dávno, čo sme mali takéto poplatky).
Nastav 1 vstup a pozri sa, koľko satov bude poplatok.
Tvoj vstup je 100k sats (1 tvoje UTXO je 100k sats), ale poplatok je 98.700
Legenda / Glosár pojmov
- vByte
- „Virtuálny bajt“ (virtual byte). V BIP141 sa zaviedlo prepočítavanie veľkosti transakcie tak, aby bol zohľadnený nižší „váhový“ podiel witness údajov. Bežne sa poplatky počítajú práve v sats/vByte.
- Feerate (sats/vByte)
- Sadzba poplatku za 1 virtuálny bajt transakcie, vyjadrená v satoshi. Napríklad feerate = 10 sat/vByte znamená, že za 100 vByte transakciu zaplatíš 1 000 sats.
- Overhead transakcie
- Časť transakcie, ktorá je „fixná“ (nVersion, počet vstupov/výstupov, nLockTime a prípadne segwit marker & flag). Spravidla sa udáva ako ~10 vByte pri úplne legacy transakcii a ~10,5 vByte, ak je v transakcii aspoň jeden SegWit vstup.
- P2PKH (Legacy)
- „Pay to PubKey HashHash je jednosmerná matematická funkcia, ktorá premení vstupné dáta (napríklad text) na pevne stanovený, unikátny reťazec znakov. SHA256 (Secure Hash Algorithm 256-bit) je člen rodiny algoritmov SHA-2, ktoré boli vyvinuté agentúrou NSA (National Security Agency). Tento reťazec, nazývaný aj odtlačok, má niekoľko dôležitých vlastností: Vlastnosti SHA256: Fixná dĺžka výstupu: Výsledný...“. Tradičné (legacy) adresy začínajúce číslom „1“. Pri vstupe zvyčajne vyžadujú väčší objem údajov (napr. 148 vBytes).
- P2SH-P2WPKH (Nested SegWit)
- „Pay to Script HashHash je jednosmerná matematická funkcia, ktorá premení vstupné dáta (napríklad text) na pevne stanovený, unikátny reťazec znakov. SHA256 (Secure Hash Algorithm 256-bit) je člen rodiny algoritmov SHA-2, ktoré boli vyvinuté agentúrou NSA (National Security Agency). Tento reťazec, nazývaný aj odtlačok, má niekoľko dôležitých vlastností: Vlastnosti SHA256: Fixná dĺžka výstupu: Výsledný...“ (3…) s vnoreným SegWit, často nazývaný „nested SegWit“. Vstup má okolo 91 vBytes.
- P2WPKH (Native SegWit)
-
„Pay to Witness PubKey HashHash je jednosmerná matematická funkcia, ktorá premení vstupné dáta (napríklad text) na pevne stanovený, unikátny reťazec znakov. SHA256 (Secure Hash Algorithm 256-bit) je člen rodiny algoritmov SHA-2, ktoré boli vyvinuté agentúrou NSA (National Security Agency). Tento reťazec, nazývaný aj odtlačok, má niekoľko dôležitých vlastností: Vlastnosti SHA256: Fixná dĺžka výstupu: Výsledný...“. Moderné bech32 adresy, začínajúce zvyčajne
bc1q
. Pri výstupe majú ~31 vBytes a pri vstupe ~68 vBytes. Používané na jednopodpisové (single-sig) transakcie. - P2WSH (Native SegWit)
-
„Pay to Witness Script HashHash je jednosmerná matematická funkcia, ktorá premení vstupné dáta (napríklad text) na pevne stanovený, unikátny reťazec znakov. SHA256 (Secure Hash Algorithm 256-bit) je člen rodiny algoritmov SHA-2, ktoré boli vyvinuté agentúrou NSA (National Security Agency). Tento reťazec, nazývaný aj odtlačok, má niekoľko dôležitých vlastností: Vlastnosti SHA256: Fixná dĺžka výstupu: Výsledný...“. Tiež bech32 adresy
bc1q...
, ale obsahujú 32-bajtový hashHash je jednosmerná matematická funkcia, ktorá premení vstupné dáta (napríklad text) na pevne stanovený, unikátny reťazec znakov. SHA256 (Secure Hash Algorithm 256-bit) je člen rodiny algoritmov SHA-2, ktoré boli vyvinuté agentúrou NSA (National Security Agency). Tento reťazec, nazývaný aj odtlačok, má niekoľko dôležitých vlastností: Vlastnosti SHA256: Fixná dĺžka výstupu: Výsledný... komplexnejšieho skriptu (napr. multi-sig). Pri výstupe majú ~43 vBytes. - P2TR (Taproot)
-
„Pay to Taproot“. Bech32m adresy, obvykle začínajú
bc1p
. Využívajú Schnorr podpisy, majú ~57 vBytes pri vstupe a ~43 vBytes pri výstupe. - scriptSig
- Pole v transakcii (pre legacy vstupy), ktoré obsahuje podpis (a verejný kľúč alebo ďalšie skriptové údaje) potrebné na odomknutie výstupu z minulej transakcie (UTXO).
- Witness
- Časť transakcie v SegWit, kde sú podpisy a ďalšie overovacie údaje uložené „mimo” hlavnej (base) časti transakcie. Prispieva k nižšej výslednej váhe (vBytes).
- Mempool
- Dočasné „čakajúce pole“ transakcií na uzloch v sieti. Transakcia zostáva v mempoole, kým ju niektorý ťažiar nepridá do bloku. Vysoké poplatky sa zvyčajne objavia, keď je mempool preťažený.