Przejdź do treści
Słownikoplatyethereumpodstawylayer-2

Gas

Jednostka miary obliczeniowego wysiłku potrzebnego do wykonania operacji w sieci Ethereum. Całkowita opłata za transakcję to iloczyn zużytego gazu i ceny jednostkowej, wyrażonej w gwei.

Po co w ogóle jest gas

Ethereum to sieć, w której każdy węzeł (ang. node) weryfikuje każdą transakcję. Bez limitu obliczeniowego jedna transakcja mogłaby uruchomić nieskończoną pętlę i paraliżować całą sieć. Gas rozwiązuje ten problem: każda operacja ma przypisany koszt w jednostkach gazu, a transakcja może zużyć co najwyżej tyle, ile wynosi jej limit. Jeśli obliczenia skończą się wcześniej, nadwyżka gazu wraca do nadawcy. Jeśli zabraknie gazu przed zakończeniem transakcji, ta się cofa – ale gas jest już zapłacony, bo sieć wykonała obliczenia.

Prosta zasada: im bardziej złożona operacja, tym więcej gazu. Zwykły przelew ETH kosztuje dokładnie 21 000 jednostek gazu. Transfer tokenu ERC-20 – 45 000–65 000. Swap na Uniswap v3 – 120 000–180 000. Deployment nowego smart kontraktu – nawet kilka milionów jednostek. Gas jest więc równocześnie systemem antyspamowym i rynkiem priorytetów dla walidatorów.

EIP-1559: opłata bazowa i napiwek

Do sierpnia 2021 roku Ethereum używało prostej aukcji cenowej: użytkownicy licytowali cenę gazu, a górnicy wybierali najwyższe oferty. System był nieprzewidywalny i prowadził do przepłacania. EIP-1559 zastąpił go modelem dwukomponentowym, który działa po dziś dzień.

Opłata bazowa (ang. base fee) jest ustalana przez protokół, nie przez użytkownika. Rośnie o maksymalnie 12,5% jeśli poprzedni blok był więcej niż w połowie pełny, i maleje o tyle samo gdy był mniej niż w połowie pełny. Automatyczna regulacja sprawia, że opłata bazowa dąży do poziomu, przy którym bloki są przeciętnie w połowie zapełnione. Kluczowe: opłata bazowa jest spalana – wyłączona z obiegu, nie trafia do walidatorów.

Napiwek (ang. priority fee, tip) to kwota, którą użytkownik dodaje dobrowolnie, żeby zachęcić walidatora do szybszego uwzględnienia transakcji. Napiwek trafia do walidatora, który zaproponował blok. W spokojnych warunkach rynkowych 1–2 gwei wystarczy. Podczas gorących mintów NFT czy masowych likwidacji napiwki bywają wielokrotnie wyższe.

Kluczowe pojęcia i przeliczniki

Gwei
Podstawowa jednostka ceny gazu. 1 gwei = 0,000000001 ETH (jedna miliardowa ETH). Ceny gazu oscylują zazwyczaj między 1 a kilkudziesięcioma gwei; podczas kongestii mogą skoczyć do setek.
Limit gazu (gas limit)
Maksymalna ilość gazu, którą użytkownik zgadza się zużyć. Chroni przed błędami w kontraktach, które mogłyby nieoczekiwanie pożreć więcej obliczeń. Portfele ustawiają go automatycznie z buforiem 20–30%.
Zużyty gas (gas used)
Faktyczna ilość gazu skonsumowana przez transakcję. Tylko ona jest rozliczana. Różnica między limitem a zużytym gazem wraca do nadawcy.
Blob gas (EIP-4844)
Oddzielny rynek opłat wprowadzony w marcu 2024 r. dla danych publikowanych przez sieci L2 (ang. rollups). Blob gas i zwykły gas mają osobne opłaty bazowe, które nie konkurują ze sobą. Efekt: sieci L2 mają bardzo niskie opłaty nawet gdy Ethereum mainnet jest zatłoczony.

Gas na sieciach L2

Na sieciach warstwy drugiej (ang. Layer 2), takich jak Arbitrum, Optimism czy Base, użytkownicy płacą opłatę składającą się z dwóch części: kosztu wykonania na L2 (zwykle kilka centów) i kosztu publikacji danych na Ethereum (L1). Od marca 2024, gdy weszły w życie bloby (ang. blobs), ta druga część jest wielokrotnie niższa. W praktyce transakcje na L2 kosztują dziś ułamki centa w normalnych warunkach.

Portfele na L2 zazwyczaj pokazują łączną opłatę w dolarach, ukrywając dwukomponentową strukturę. Warto jednak wiedzieć, że ta struktura istnieje – podczas skokowego wzrostu aktywności na Ethereum mainnet koszt L2 też rośnie, nawet jeśli sama sieć L2 nie jest zatłoczona.

Najczęstsze błędy

  • Mylenie limitu gazu z ceną gazu. Wyższy limit nie przyspiesza transakcji – jej priorytet determinuje napiwek. Zbyt niski limit powoduje błąd 'out of gas'.
  • Ustawianie napiwka na zero w napiętym rynku. Transakcja może czekać bardzo długo lub w ogóle nie zostać przetworzona.
  • Ignorowanie czasu transakcji. Opłaty za gas mają cykliczność dobową i tygodniową – weekendy i nocne godziny w USA/Europie są zazwyczaj tańsze.
  • Zakładanie, że nieudana transakcja nie kosztuje. Kosztuje – sieć wykonała obliczenia do momentu błędu i pobiera za nie opłatę.

Najczęstsze pytania

Najczęstszy powód: ustawiony napiwek jest za niski w stosunku do aktualnego popytu na przestrzeń blokową. Walidatorzy wybierają transakcje oferujące najwyższe napiwki. Możesz przyspieszyć transakcję, podnosząc napiwek za pomocą funkcji 'speed up' w portfelu.

Opłata za gas zależy od dwóch rzeczy: stałej ilości gazu potrzebnej do operacji (ta nie zmienia się) i zmiennej ceny gazu w gwei (ta zależy od obciążenia sieci). Kiedy wiele osób równocześnie chce wysłać transakcje, opłata bazowa rośnie automatycznie – stąd skoki kosztów w czasie dużego popytu.

Znacząco je redukują, ale nie eliminują. L2 zawsze będzie płacić Ethereum za bezpieczeństwo – koszt publikacji danych jest wbudowany w model. W normalnych warunkach opłaty na L2 są ułamkowe, ale przy dużej aktywności na L1 mogą rosnąć. Poza tym każda sieć L2 ma własny rynek opłat dla swojego blokspace'u.

Na Ethereum mainnet gas zawsze jest płacony w ETH – to niezmieniona właściwość protokołu. Niektóre portfele smart kontraktów (np. zgodne z EIP-4337) i sieci L2 umożliwiają płacenie opłat w stablecoinach lub innych tokenach poprzez mechanizm paymastera, ale pod spodem i tak ktoś płaci ETH do sieci.

Źródła i dalsza lektura