Co je gas fee a jak funguje poplatek za transakci

Co mě poprvé přinutilo zbystřit ohledně gasu, byly dvě skoro totožné transakce, které dopadly úplně jinak. Pokaždé jsem posílal trochu USDT. Předchozí večer u potvrzení stálo jen pár haléřů poplatku; o pár dní později, ve dne, jsem udělal přesně totéž a částka najednou vyskočila na stovky. První myšlenka byla: „nedřou mě teď náhodou?" Po chvíli hledání mi to došlo: nikdo mi nic nenaúčtoval navíc. Rozdíl byl v gasu, a gas během dne prudce kolísá. Jakmile mi tohle došlo, spousta „proč je to tak drahé" a „nedá se to levněji" se vyřešila sama.
Tenhle text patří k Základům on-chain a vysvětluje gas fee od základu: co to je, proč se tomu nevyhnete, co ty nesrozumitelné jednotky (gwei, gas limit) přesně znamenají, jak to číslo v peněžence vzniká a — nejpraktičtější — jak za to platit míň. Po přečtení pochopíte odhad nákladů ve své peněžence a budete vědět, kdy radši chvíli počkat a kdy přejít na levnější síť.
Co je gas a proč ho platíte
Berte blockchain jako jeden počítač, který sdílí celý svět: tisíce strojů pomáhají s vedením účtů a vykonáváním vašich úkonů. Gas je to, co platíte za to, abyste využili výpočetní výkon a úložiště toho sdíleného počítače. Ať už děláte převod, voláte kontrakt nebo mintujete NFT — pokaždé to uzly v síti musí ověřit, vykonat a výsledek zapsat do bloku. To není zdarma: gas je odměna pro toho, kdo blok produkuje, a zároveň to brání tomu, aby někdo síť ucpal balastními transakcemi.
Jedna věc se často plete: gas měří složitost úkonu, ne přímo částku peněz. Prostý převod ETH počítá málo; složitá interakce s kontraktem (třeba swap o více krocích) počítá hodně. Kolik gasu úkon spotřebuje, určuje složitost; kolik stojí jedna jednotka gasu, kolísá s vytížením — a ty dvě věci vynásobíte na výsledný poplatek. Ethereum Foundation tenhle mechanismus vysvětluje dost systematicky (gas a poplatky) a za přečtení stojí i jejich vysvětlení samotné transakce (co je transakce).
Ne každá síť má přesně stejný gas mechanismus. Používám tu hlavně Ethereum na vysvětlení principu, protože je nejreprezentativnější a nejúplnější. Bitcoin „gas" nezná, ale i tak má poplatek, který se hýbe s velikostí transakce a vytížením; spousta Layer 2 a dalších sítí převzala něco podobného EIP-1559. Princip se shoduje, detaily jsou v jejich vlastní oficiální dokumentaci.
Gas limit a gas price (gwei)
Abyste poplatek jasně spočítali, oddělte nejdřív dvě věci: kolik spotřebujete a co stojí jedna jednotka.
- Gas limit (strop spotřeby): maximum gasu, které chcete na tenhle úkon utratit. Běžný převod ETH spotřebuje pevných 21000 gasu — to je konstanta na úrovni protokolu; interakce s kontrakty spotřebují víc a liší se podle logiky. Peněženka to obvykle odhadne sama, ručně to měníte málokdy. Berte to jako „kolik paliva to zhruba spotřebuje".
- Gas price (cena za jednotku): kolik chcete platit za jednotku gasu, vyjádřeno v gwei. Gwei je drobná měna ETH: 1 ETH = 1 miliarda gwei (tedy 1 gwei = 0,000000001 ETH). Neuvádí se to přímo v ETH, protože cena za jednotku gasu je tak malá, že se gwei prostě čte příjemněji.
Nejjednodušší počet je: poplatek ≈ spotřeba gasu × cena gasu. Ukázkový příklad bez skutečného kurzu: převod spotřebuje 21000 gasu při 20 gwei, pak je poplatek 21000 × 20 = 420000 gwei, tedy 0,00042 ETH. To je čistě převod jednotek; skutečná cena se mění neustále, od pár gwei po stovky gwei, takže rozhoduje hodnota ve chvíli, kdy potvrzujete. Pokud se zamotáte v převodech mezi gwei, wei a ETH, náš převodník jednotek to za vás udělá hned.
Nastavíte-li gas limit moc nízko, transakce může v půlce selhat, protože „došlo palivo" — a u selhané transakce se už spotřebovaný gas obvykle nevrací, takže jsou to vyhozené peníze. Gas limit tedy ručně nesnižujte kvůli úspoře; nechte peněženku, ať ho odhadne, to je bezpečnější. Co upravovat můžete a smíte, je cena (nebo spropitné podle EIP-1559). O tom níž.
EIP-1559: base fee a priority fee
V roce 2021 Ethereum spustilo důležitý upgrade EIP-1559, který nahradil starý model „čistě dražit, kdo dá nejvíc, jede první". Váš poplatek je teď rozdělený na dvě části, a teprve když to rozdělení pochopíte, porozumíte obrazovce nákladů ve své dnešní peněžence. Umíte-li anglicky, nejsměrodatnější je samotný návrh (EIP-1559, původní text).
- Base fee (základní poplatek): protokolem automaticky spočítaný podle vytížení předchozího bloku, stejný pro celou síť — tady se nedá vyjednávat. Čím plnější síť, tím vyšší base fee; čím prázdnější, tím nižší. U každého bloku se přizpůsobuje nahoru i dolů. Důležité: base fee se pálí, nejde do kapsy producenta bloku.
- Priority fee (přednostní poplatek / spropitné): spropitné, které navrch dáte producentovi bloku, abyste řekli „chci předběhnout, vezmi mě přednostně". Tuhle část určujete vy: dáte-li víc, šance na rychlé zpracování je větší. Spěcháte? Dejte víc; nespěcháte? Může to být míň.
Skutečné náklady transakce jsou teď zhruba: (base fee + priority fee) × spotřeba gasu. Navíc můžete nastavit max fee (strop, který chcete zaplatit) jako pojistku, aby vás náhlý skok base fee nepřekvapil — účtuje se podle potřeby a zbytek se vrátí. Proto vám peněženka někdy odhadne stovky a nakonec strhne desetinu. Chcete-li vidět, co při různých base fee a spropitných zhruba zaplatíte, použijte naši kalkulačku gas fee.
EIP-1559 dělá poplatek předvídatelnějším, ne nutně levnějším — optimalizuje „dražební mechanismus", ne „celkovou cenu". Je-li síť vytížená, base fee zůstane vysoké. Nemyslete si tedy, že gas po upgradu automaticky zlevnil; šetří se klidnými časy a přechodem na jinou síť, které přijdou dál, ne spoléháním na samotný mechanismus.
Proč je ve špičce tak drahý
Zpět k úvodní otázce: proč může tentýž úkon v jinou dobu stát desetkrát víc? Jádro je, že prostor v bloku je omezený, zatímco poptávka kolísá. Každý blok pojme jen omezené celkové množství gasu a na Ethereum mainnetu přibývá blok zhruba každých 12 vteřin (přesněji: slot). Ten rytmus je pevně v protokolu a nezrychlí se, i když chtějí všichni najednou.
Tak z toho vzniká počet nabídky a poptávky: jakmile se otevře populární projekt, trh se prudce pohne nebo přijde vlna claim airdropů naráz, tisíce transakcí chtějí najednou do omezeného prostoru v bloku. Base fee se automaticky vytlačí nahoru, každý na to ještě přihodí spropitné, aby předběhl, a gas sám vylétne. Naopak: v noci nebo při klidném trhu je poptávka malá, base fee klesne a tentýž úkon je o dost levnější. To vysvětluje past, do které spousta lidí spadne: právě ve chvíli, kdy se otevře žádaný airdrop, je gas nejdražší. Skočit tam s davem může znamenat, že poplatek sám sní pořádný kus vašeho výnosu.
Chcete-li vědět, jak je síť právě teď vytížená a na jaké úrovni je base fee zhruba, gas tracker block exploreru je nejpřímější cesta: ukazuje aktuální ceny gasu živě i příslušné hodnoty podle rychlosti potvrzení (Etherscan Gas Tracker). Mrknout na to, než potvrdíte, vám ušetří dost zbytečných peněz.
Právě když ženete žádaný airdrop nebo mint, je šance přešlapu velká: někdo tehdy rozesílá odkazy jako „levná zrychlovací cesta pro gas" nebo „vyzvedni oficiální dotaci na gas", abyste připojili peněženku a podepsali schválení. Gas platíte síti; neexistuje žádný „oficiální kanál", který gas promíjí nebo za vás zálohuje výměnou za podpis. Takové tvrzení berte hned jako phishing. Pro jistotu si nejdřív projděte varovné signály falešných airdropů.
Jak předem odhadnete, co transakce stojí
Jak zařídit, abyste u potvrzení zhruba věděli, na čem jste? Ve třech krocích už nepropadnete panice.
- Nejdřív se podívejte, jaký je to úkon. Prostý převod spotřebuje málo gasu (převod ETH je asi 21000 gasu); interakce s kontraktem (swap, bridge, mint) je složitější a spotřebuje často několikanásobek nebo víc. Čím složitější úkon, tím vyšší spotřeba gasu.
- Pak se podívejte, jak je síť teď drahá. Přes gas tracker zjistěte, kolik gwei je base fee zhruba právě teď a co uvádějí jednotlivé rychlosti (pomalá/standardní/rychlá). To určuje cenu za jednotku gasu.
- Obojí vynásobte a převeďte na koruny. Spotřeba gasu × cena = kolik ETH; to přepočtěte podle aktuálního kurzu ETH na koruny a víte zhruba, jestli to za to stojí.
Tenhle počet zpaměti zní zdlouhavě, ale po pár pokusech pro to získáte cit. Nechce se vám? Zadejte aktuální cenu gasu a očekávanou spotřebu do kalkulačky gas fee a dostanete odhadované rozpětí. Ještě jednodušší je prostě věřit odhadu peněženky — moderní peněženky ho mají skoro všechny vestavěný, s volbou „pomalá/standardní/rychlá", ze které vybíráte podle spěchu. Proč se ty volby liší a proč se odhad a skutečná útrata někdy nerovnají, jasně vysvětluje podpora MetaMask (MetaMask Support).
Šetření: vybrat klidné časy a používat Layer 2
Teď nejpraktičtější část: jak dát na gas míň, aniž byste podstoupili větší riziko? Body níž jsou to, co jsem sám v praxi shledal nejužitečnějším — žádná magie, prostě se přizpůsobit nabídce, poptávce a mechanismu.
- Vyberte klidnou dobu. Je to drahé, protože je vytíženo, takže vyhnout se špičce šetří. Při klidném trhu a v noci base fee často zřetelně klesne; co nespěchá, může počkat. Před potvrzením mrkněte na gas tracker, a je-li to drahé, odložte to.
- Používejte Layer 2. To je nejpřímější způsob, jak gas snížit. Layer 2 zpracuje spoustu výpočtů off-chain a výsledek zkomprimuje zpět na mainnet; náklady na transakci jsou obvykle mnohem nižší než na mainnetu — tentýž swap může stát zlomek. Chcete-li vědět, jaké Layer 2 existují a jak vypadá jejich bezpečnostní model, přehled L2BEAT je neutrální datový zdroj. Přechod si vyžádá bridge, a ten nese vlastní rizika — vždy používejte oficiální bridge.
- Neskákejte tam v nejrušnější chvíli. U žádaného mintu nebo otevření airdropu je gas nejdražší. Nemusí-li být váš úkon na vteřinu, počkejte pár hodin; ušetřený gas často vydá za víc než ty ukvapené minuty.
- Sdružujte úkony a omezujte zbytečné transakce. Každá transakce stojí gas zvlášť. Co jde udělat najednou, nerozdělujte na víc; rozumně nastavte schvalovací limity, abyste zabránili opakovanému podpisu. Drobty se sčítají. U schválení mimochodem nedávejte z pohodlí příliš velký limit — to je jiný druh rizika.
- Použijte režim „pomalá" ve své peněžence. U transakcí bez spěchu vyberte nejnižší rychlost, dejte trochu míň spropitného, čekejte déle, ale plaťte míň.
Šetřete na gasu, aniž byste slevili z bezpečnosti. Kliknout kvůli úspoře na nějaký obskurní „nástroj na gas zdarma", připojit neznámou dapp nebo podepsat nesrozumitelné schválení — ušetřený poplatek zdaleka nevyváží škodu. Opravdu bezpečně ušetřit jde jen dvěma způsoby: počkat na levnou chvíli a přejít na levnější, spolehlivou cestu. Jestli se kolo farmaření airdropů vyplatí, spočítáte s kalkulačkou nákladů na farmaření, kde gas rovnou zahrnete.
Zpátky k tomu úvodnímu případu. Rozdíl mezi pár haléři a stovkami stojí na jasné sadě pravidel: složitost určuje spotřebu gasu, vytížení určuje cenu, EIP-1559 tu cenu dělí na spálený base fee a spropitné pro producenta bloku — a co máte v ruce vy, je kdy něco děláte a na které síti to děláte. Držte se těch dvou a gas se z černé skříňky promění v nákladovou položku, kterou umíte odhadnout a řídit. Půjdete-li systematicky farmit airdropy, gas je nevyhnutelný náklad; pak si k tomu přečtěte naši příručku farmaření airdropů a náklady i rizika spočítejte najednou. A chcete-li pochopit, jak momentky rozhodují o vašem nároku, co je snapshot na to hezky navazuje.