Opłaty transakcyjne w sieci Ethereum, znane jako “gas fees”, wzrastają z kilku powodów, związanych głównie z popytem na przestrzeń blokową i obciążeniem:
- Wzrost aktywności w sieci.
- Popularność aplikacji DeFi i NFT.
- Szybkie wzrosty lub spadki cen ETH.
- Okresy airdropów lub popularnych wydarzeń w społeczności.
- “MEV” (Maximum Extractable Value) i front-running.
Gdy rośnie liczba transakcji na Ethereum, sieć staje się bardziej zatłoczona. Każda transakcja musi być przetworzona przez walidatorów, a miejsca w blokach są ograniczone. Większy popyt powoduje, że użytkownicy muszą oferować wyższe opłaty, aby ich transakcje były priorytetowo przetwarzane.
Wzrosty opłat mają miejsce, gdy rośnie popularność zdecentralizowanych finansów (DeFi) lub projektów NFT. Interakcje z aplikacjami DeFi często wymagają bardziej złożonych operacji na smart kontraktach, które są bardziej kosztowne w przetwarzaniu. Przykładowo są to swap tokenów na DEX-ach takich jak Uniswap czy udzielanie pożyczek.
Podobnie, aktywność związana z NFT, jak produkowanie nowych NFT (minting) czy handel na platformach takich jak OpenSea, może znacznie zwiększyć obciążenie sieci.
Gdy cena ETH gwałtownie rośnie, wzrasta zainteresowanie transakcjami, co prowadzi do większego obciążenia sieci. Inwestorzy mogą masowo przesyłać środki między giełdami lub portfelami, co zwiększa liczbę transakcji.
Gdy odbywa się airdrop nowych tokenów lub ważne wydarzenie, takie jak hard fork czy aktualizacja protokołu, użytkownicy intensywnie dokonują transakcji, by np. spełnić warunki otrzymania nowych tokenów.
Wzrost opłat może być również napędzany przez walidatorów i spekulantów, którzy manipulują kolejnością transakcji, aby zmaksymalizować zyski. Gdy aplikacje DeFi są obciążone, transakcje front-runningowe, które wykorzystują różnice w cenach tokenów, mogą prowadzić do eskalacji opłat.
Każdy z tych czynników sprawia, że w krytycznych momentach opłaty mogą znacząco wzrosnąć, zmuszając użytkowników do płacenia wyższych “gas fees” za szybsze przetworzenie swoich transakcji.
Ważne jest, żeby opłaty za transakcje były jak najmniejsze. Dzięki temu osiągniemy wyższą stopę zwrotu, ponieważ opłaty pomniejszają ostateczny zysk. Jak więc oszczędzić GAS na smart kontraktach? Przyjrzyjmy się najpierw jednostce rozliczeniowej.
Gdzie sprawdzać wysokość opłat Ethereum?
Najpopularniejsze strony wyświetlające wysokość opłat transakcyjnych Ethereum to:
- EtherScan.io
- useweb3.xyz wraz z historyczną tabelką
- EthereumPrice.org
Każda strona zawiera różne funkcjonalności, takie jak historyczne ceny, rekomendacje (wolno, szybko, “natychmiast”), wytłumaczenie mechanizmów działania blockchain.
Co to jest Gwei?
Opłaty za transakcję liczymy w Gwei. Wei to ułamek Ethereum, a dokładniej 1 Ether to 1,000,000,000,000,000,000 Wei, czyli 10 do potęgi 18. Ze względu na to, że kryptowaluty liczymy najczęściej tylko 8 miejsc po przecinku, a nie 18, jak w przypadku 1 Wei, używamy Gwei (GigaWei), czyli dokładnie 0.00000001 ETH. Gwei jest określany jako Gas, ale wciąż mówimy o tej samej kryptowalutcie i jej jednostce, czyli Ethereum.
Załóżmy, że wysyłamy 0.1 ETH i decydujemy się zapłacić maksymalnie 1 GWei opłaty. Oznacza to, że wyślemy na docelowy adres 0.1 ETH, a z naszeg adresu zniknie 0.1 (przesyłane środki) + 0.00000001 ETH (1 Gwei opłaty transakcyjnej), czyli w sumie 0.10000001 ETH. W praktyce do przesłania transakcji potrzebujemy więc mieć adres, który dysponuje trochę większą ilością ETH, niż zamierzamy przesłać, ponieważ musi starczyć na opłatę.
Cena gazu, czyli Gas Price
Gas Price, czyli cena gazu to nic innego, jak cena gwei, jaką jesteśmy w stanie zapłacić za transakcję. Chociaż czasem serwis nam powie, że aby transakcja doszła do skutku musimy zapłacić ponad 100 gwei, dążymy do tego, aby była jak najniższa.
W czasach, gdy sieć nie jest obciążona, często wystarczy cena… 1 gwei. W momentach, gdy sieć zaczyna być obciążona, najlepszą ceną, jaką możemy osiągnąć w nocy w weekendy to 20-70 gwei. W czasach wysokich cen i popularności kryptowalut możemy zapłacić 100-150 gwei i na lepszą cenę musimy poczekać nawet kilka dni.
Co to jest Gas Limit?
Limit gazu, czyli Gas Limit określa maksymalną ilość gazu, jaką zużyje transakcja. Standardowa ilość to 21000 i taką często proponują portfele. Sieć podpowiada portfelom, jaka ilość jest aktualnie wymagana. Jest ona ważna, ponieważ zbyt niski limit spowoduje, że transakcja z pewnością nie dojdzie do skutku. Jeśli ustawimy za niską cenę, mamy jeszcze szansę na powodzenie, gdy stawki się zmniejszą. Jeśli sieć zażąda za naszą transakcję mniej, niż wynosi limit, pozostała ilość zostanie nam zwrócona. Warto znać różnicę pomiędzy limitem gazu a ceną gazu!
Złożone operacje użyją więcej gazu, a co za tym idzie, portfel ustawi większy limit. Najmniej zapłacimy za wysłanie ETH na inny adres. Dodatkowo zapłacimy, jeśli prześlemy również metadane. Jeszcze więcej będzie kosztować wywołanie funkcji w smart kontrakcie. Najwięcej zapłacimy za egzekucję smart kontraktów: im bardziej złożony, tym więcej. Limit gazu może w takim przypadku wynieść nawet kilkaset tysięcy, w porównaniu do standardowych dwudziestu jeden tysięcy.
Dla bezpieczeństwa zatem, jeśli nie wiemy co dzieje się “pod maską”, warto pozostawić Gas Limit na poziomie, jaki proponuje nam portfel.
Wybierz mądrze czas dokonania transakcji
Jeśli jest taka możliwość, transakcje należy przeprowadzać w godzinach i dniach, które nie są zatłoczone. Są to zatem późne godziny nocne w strefach czasowych, gdzie są aktywni użytkownicy projektów: Uniswap, Tether i innych dużych protokołów, bo to najwięksi użytkownicy sieci. Mniejsze opłaty są również w weekendy, szczególnie rano czasu polskiego.
Duże wydarzenia rynkowe, takie jak emisje tokenów, promocje oprocentowania, debiuty projektów przyciągają duże ilości chętnych i zapychają sieć, generując bardzo wysokie opłaty. Warto unikać tych okresów.
Jednym z ważniejszych sposobów, ale wciąż nieznanym szerszemu gronu jest wybór godziny transakcji. Otóż szeroko zakrojone badania wykazały, że dużo lepiej wysyłać transakcję… w ostatnich minutach każdej godziny. Wychodzi zatem, że lepiej wysłać transakcję o 12:49, a nie o 12:05 lub o 7:51, a nie o 7:00. Big data pozwala na szukanie nawet takich zależności.
Jak wysłać transakcję Ethereum i nie przepłacić?
Do wysłania Ethereum lub tokenów ERC-20 najprościej użyć portfela przeglądarkowego MetaMask. Opłata za transakcję zmienia się wraz z zapotrzebowaniem na dostępność blockchaina Ethereum. Jeśli zapotrzebowanie jest bardzo duże, opłata transakcyjna może wynieść nawet ponad 100 Gwei. Przekłada się to na opłatę transakcyjną ponad $10, a w przypadku smart kontraktów kilkadziesiąt dolarów. Tak duże kwoty mogą sprawić, że spekulacje przestaną być opłacalne.
Jak wygląda schemat opłat Gas w Ethereum? Priority Fee i Gas Price
Najpopularniejszym źródłem jest EthGasStation, rekomendujemy jednak porównanie cen na EtherScan w sekcji GasTracker. Nowy schemat opłat składa się z dwóch komponentów:
- najpierw określamy wysokość Priority Fee (najczęściej w wysokości kilku gwei)
- następnie określamy wysokość opłaty w gwei Gas Price, podobnie jak robiliśmy to do tej pory
Dzięki nowemu sposobowi naliczania jesteśmy w stanie dokładniej określić wysokość opłat i skuteczniej oszacować nasze wydatki.
Widzimy, że różnica pomiędzy szybkim potwierdzeniem transakcji (7 Priority Fee, Gas Price 121) a niskim jest podobna do wcześniejszego sposobu naliczania.
Analogiczny interfejs mamy w serwisie EtherScan, tylko wyeksponowana jest cena Gazu, a priorytetowa opłata jest jakby ukryta. Zaznaczyliśmy te miejsca dla Low Fee, która interesuje nas najbardziej z punktu widzenia oszczędności.
Jak oszczędzić więcej w portfelu ETH MetaMask?
Jak ręcznie skonfigurować wysokość opłat w portfelu? Gdy zaczynamy transakcję Ethereum, Metamask z góry poleca odpowiednią wg niego minimalną wysokość opłaty. Najczęściej jest to opłata o poziomie średniej opłaty, możemy zatem bezpiecznie ustawić mniej i oszczędzić. Interfejs wygląda podobnie do rekomendacji serwisów EthGasStation i EtherScan.
Gas Limit nie powinniśmy zmieniać, ponieważ jest on ustalony na podstawie operacji, które chcemy wykonać na blockchain.
Oznaczyliśmy miejsce do wpisania rekomendowanego, niskiego Priority Fee oraz niżej ceny gazu Gas Price. Następnie klikamy “Save”, aby MetaMask zapamiętał nasze stawki, wracamy do okna transakcji i ją potwierdzamy. Potem pozostaje tylko czekać.
W tzw. międzyczasie możemy przeczytać szczegóły implementacji EIP-1559, aby jeszcze lepiej poznać działanie transakcji Ethereum. Znajdziemy tam między innymi informacje o tym, że:
- Base Fee opłata jest “palona”, dzięki czemu Ethereum ma szansę stać się deflacyjną walutą
- Max Priority Fee w MetaMask to “miner tip”. Im więcej zapłacimy, tym większą szansę mamy na szybką realizację.
- Max Fee zawiera maksymalną opłatę, którą zapłacimy. Zwykle zapłacimy mniej (50%-70% wartości z MetaMask).
- Użytkownicy zatem nie ustalają wysokości swoich opłat, ale mówią ile maksymalnie są w stanie zapłacić. Bazowa stawka (Base fee) jest określana przez protokół.
- Stary tryb “licytacji” najwyższych opłat w celu zachęcenia minerów może również być użyty, szczególnie w przypadku zapchanych bloków. Będzie on wtedy określany w zwiększającej się Base fee.
Jak przyspieszyć transakcję Ethereum?
Jeśli chcieliśmy zbyt dużo zaoszczędzić i ustawiliśmy zbyt niski limit, nasza transakcja może nie zostać zrealizowana. Często zdarza się, że transakcja z niskim limitem wisi w kategorii oczekujące (pending) przez wiele dni. Transakcja może zostać kiedyś odrzucona (np. timeout), jednakże zależy to od konfiguracji węzłów, które ją rozgłaszają.
Przyspieszanie transakcji polega na zwiększeniu opłaty w celu zwiększenia jej priorytetu. Aby przyspieszyć transakcję, wybieramy ją z listy Activity, a następnie klikamy “Speed Up”. Potwierdzamy, ile jesteśmy w stanie dopłacić za transakcję i… dalej czekamy licząc, że wyższa kwota przyspieszy jej przetwarzanie.
Gdy sprawdzimy status transakcji w EtherScan, odkryjemy, że pierwotna transakcja została nadpisana. Jest jednak technicznie możliwe, że transakcja zostanie zrealizowana za wcześniej ustawioną opłatę lub zostanie odrzucona przez węzły, które mają konfigurację realizującą taką ewentualność.
Najczęściej jednak “Speed Up” pozwala na szybszą realizację transakcji, lub poczekanie na mniej zatłoczony czas (nocne godziny w miejscach, gdzie ETH jest najbardziej popularny lub brak dużych wydarzeń związanych z siecią).
Jak naprawić transakcję Ethereum, gdy oczekuje zbyt długo?
Czasami przyspieszamy transakcję w portfelu MetaMask, a opłaty transakcyjne wciąż rosną. Możemy wtedy czekać na realizację transakcji w nieskończoność. Zdarzają się w sieci transakcje, które oczekują na realizację przez kilka miesięcy. Co można wtedy zrobić? Jest w portfelu MetaMask opcja ręcznego nadpisania transakcji.
Aby rozpocząć nadpisywanie transakcji, musimy włączyć w portfelu MetaMask ręcznie ustawianie Nonce. Aby to zrobić:
- klikamy na ikonę portfela, po czym wybieramy “Settings”
- przechodzimy do sekcji “Advanced”
- wybieramy “Customize transaction nonce” i przesuwamy suwak, aby opcja była włączona
W tak przygotowanym portfelu możemy ponowić transakcję. Sprawdzamy numer Nonce transakcji, która oczekuje zbyt długo. Będziemy musieli wpisać go w nowej transakcji. Następnie powtarzamy wszystkie kroki: adres, kwotę, etc. Ustawiamy wyższy limit opłat, aby transakcja została zrealizowana w aktualnych warunkach rynkowych. Uzupełniamy w nowo odkrytym polu ten sam numer Nonce i potwierdzamy wysłanie transakcji. Liczymy na to, że nowa transakcja zrealizuje się szybciej i pozbędziemy się problemu ze starą.
Bonus dla tych, którzy zapłacili dużo opłat
Tych, którzy przepłacili za opłaty transakcyjne Ethereum spotkała mała niespodzianka. Serwis fees.wtf wyemitował token dla właścicieli adresów, które mają historię dużych opłat.
Wystarczy zalogować się adresem, np. portfelem MetaMask i zgłosić się po tokeny WTF. Pamiętajcie, żeby nie zapłacić dużych fees.
Podsumowanie niskich opłat Ethereum
Umiejętność mądrego dobrania stawek za opłaty Ethereum przydaje się szczególnie podczas korzystania z DeFi. Opłaty za smart kontrakty są dużo wyższe, niż zwykłe przesyłanie ETH. W długim terminie, każda zaoszczędzona złotówka zwiększa stopę zwrotu.