Poplatky

Aukce o místo v bloku a jak se v ní neutopit.

Co se naučíš: Budeš vědět, že poplatek je aukce o místo, ne sazba, a jak v ní neplatit zbytečně.

4 min čtení + cvičeníNavazuje na:📤 Anatomie transakce

Poplatek není sazba za službu. Je to nabídka v aukci o místo v bloku, a chová se podle toho: kolísá, nezávisí na částce a když nabídneš málo, transakce nemusí projít nikdy.


Za co přesně platíš

Za místo, ne za hodnotu převodu a ne za výpočetní práci minera.

Do bloku se vejde omezené množství dat. Mineři vybírají transakce s nejvyšší nabídkou vztaženou na jednotku velikosti, protože maximalizují výnos z omezeného prostoru.

Odtud plynou tři důsledky, které překvapují:

  • Poslat velkou částku může být levnější než malou. Rozhoduje složitost transakce.
  • Cena se během hodin mění i desetinásobně. Je to poptávka, ne ceník.
  • Nízká nabídka neznamená pomaleji, ale možná nikdy. Transakce může z front vypadnout.

Dva modely aukce

Prostá nabídka. Zaplatíš, co nabídneš, a doufáš, že to stačilo. Nevýhoda je, že správnou nabídku nikdo nezná, takže lidé přeplácejí, nebo trefí špatně a čekají.

Základní poplatek plus spropitné. Protokol sám počítá základní sazbu podle toho, jak plné byly předchozí bloky, a ta se spálí. Navrch dáváš dobrovolné spropitné pro toho, kdo staví blok. Výhoda je předvídatelnost: sazbu znáš dopředu a nemusíš hádat.


Jak neplatit zbytečně

  • Posílej, když je fronta prázdná. Poptávka má denní i týdenní rytmus.
  • Slučuj drobné vstupy v levných obdobích. U modelu s UTXO tím zlevníš budoucí platby.
  • Nenastavuj limit gasu naslepo vysoko. Nespotřebované se vrací, ale musíš je mít.
  • Používej druhou vrstvu na časté drobné platby. Poplatek na hlavním řetězu se u nich nevyplatí skoro nikdy.

Co se stane, když nabídneš málo

Transakce zůstane v mempoolu. Uzly ji drží omezenou dobu a při plné frontě zahazují nejlevnější, takže po čase může zmizet úplně. Prostředky se neztratí, protože se transakce nikdy neprovedla, ale nastane nepříjemný stav: peněženka ji možná pořád ukazuje jako čekající, přestože ji už většina sítě nemá.

Řešení jsou dvě a znáš je z kapitoly o transakci: nahradit ji verzí s vyšším poplatkem, nebo utratit její výstup transakcí s vysokým poplatkem.


Cvičení

  1. Proč je poplatek nezávislý na převáděné částce?
  2. Co se stane s transakcí, která visí v mempoolu měsíc?
  3. V modelu se spálenou základní sazbou se část poplatku ničí. Jaký to má smysl?
Náčrt řešení: rozbal, až si cvičení zkusíš sám
  1. Protože se draží místo v bloku, které se měří v bajtech, ne v hodnotě. Transakce posílající miliardu zabírá stejně místa jako transakce posílající drobné, pokud mají stejnou strukturu. Mineři maximalizují výnos z omezeného prostoru, takže je zajímá nabídka na bajt. Kdyby se platilo procentem z částky, velké převody by dotovaly malé a vznikl by tlak dělit platby na části.
  2. Nejspíš z front vypadne a přestane existovat. Uzly drží mempool omezenou dobu a při zaplnění zahazují nejlevnější transakce, takže se postupně vytratí ze sítě. Prostředky zůstanou tvoje, protože k převodu nikdy nedošlo, ale peněženka může transakci dál zobrazovat jako čekající, dokud si stav neobnoví. Vstupy se pak dají utratit znovu.
  3. Odstraňuje to zájem stavitele bloku na tom, aby uměle zvyšoval poptávku. Kdyby základní sazba šla jemu, vyplatilo by se mu plnit bloky vlastními transakcemi, aby ji vyhnal nahoru. Spálením se sazba stává čistě regulačním mechanismem, ze kterého nikdo netěží, a zároveň se tím snižuje celkové množství měny v oběhu, což je vedlejší, nikoli hlavní účel.

Shrnutí

  • Poplatek je nabídka v aukci o místo v bloku, ne sazba za službu.
  • Rozhoduje velikost transakce v bajtech, ne převáděná částka.
  • Cena silně kolísá s poptávkou a nízká nabídka může znamenat, že transakce neprojde nikdy.
  • Model se spálenou základní sazbou je předvídatelnější a odstraňuje zájem na umělé poptávce.
  • Časté drobné platby patří na druhou vrstvu, na hlavním řetězu se nevyplatí.
Proč nezávisí poplatek na převáděné částce?

Protože se draží místo v bloku měřené v bajtech, a transakce s velkou i malou částkou zabere při stejné struktuře stejně místa. Miner maximalizuje výnos z omezeného prostoru, takže ho zajímá nabídka vztažená na velikost. Rozhoduje tedy složitost transakce, například počet vstupů, ne její hodnota.

Co se stane s transakcí, na kterou nabídneš příliš málo?

Zůstane v mempoolu a při zaplnění fronty ji uzly začnou zahazovat, takže může ze sítě zmizet úplně. Prostředky se neztratí, protože k převodu nedošlo, ale peněženka ji může dál zobrazovat jako čekající. Odblokovat to jde nahrazením transakce verzí s vyšším poplatkem.

Proč se v některých sítích část poplatku spaluje?

Aby stavitel bloku neměl zájem uměle nafukovat poptávku. Kdyby základní sazba připadla jemu, vyplatilo by se mu plnit bloky vlastními transakcemi a hnát cenu nahoru. Spálením se z ní stává čistě regulační mechanismus, ze kterého nikdo netěží.