Paymaster to element standardu ERC-4337 dotyczącego abstrakcji konta (account abstraction) w Ethereum, który pozwala, aby opłatę za transakcję poniósł podmiot inny niż jej nadawca. W praktyce paymaster to kontrakt pomocniczy, który „zgadza się zapłacić za transakcję zamiast samego nadawcy”, co otwiera możliwość sponsorowania opłat przez aplikacje albo płacenia gazu w tokenach innych niż natywna kryptowaluta sieci.
Definicja i cel paymastera
Paymastery są elementem tzw. abstrakcji gazu — mechanizmu, w którym opłatę transakcyjną może ponieść kontrakt niebędący nadawcą transakcji. Dzięki temu deweloperzy aplikacji mogą subsydiować opłaty swoich użytkowników albo umożliwić im płacenie za gaz stablecoinem lub innym tokenem ERC-20, zamiast wymagać posiadania natywnej kryptowaluty sieci.
Jak działa paymaster
W standardzie ERC-4337 użytkownik pakuje zamierzoną akcję w obiekt zwany UserOperation i wysyła go do osobnego mempoola. Wyspecjalizowani uczestnicy sieci, zwani bundlerami, pakują wiele takich operacji w jedną transakcję wywołującą funkcję na centralnym kontrakcie EntryPoint.
Jeśli operacja zawiera dane paymastera, EntryPoint uruchamia inny przebieg działania: sprawdza, czy paymaster ma odpowiedni depozyt zabezpieczający zdeponowany w EntryPoincie, a następnie wywołuje na kontrakcie paymastera funkcję walidacji, która potwierdza jego zgodę na zapłatę. Po wykonaniu głownej operacji EntryPoint może jeszcze wywołać dodatkową funkcję na paymasterze, służącą na przykład do rozliczenia różnicy między pobraną z góry opłatą a rzeczywistym kosztem gazu. Co istotne, nawet jeśli sama operacja użytkownika zakończy się niepowodzeniem (revert), paymaster i tak płaci za wykorzystany gaz.
Standard rozróżnia depozyt paymastera od jego stake’u (zastawu). Depozyt służy bezpośrednio do opłacania gazu, natomiast stake nie jest wykorzystywany do płatności i nigdy nie jest przepadany (nie jest slashowany) — jego zadaniem jest jedynie ograniczenie ryzyka ataków typu sybil i umożliwienie paymasterowi większej swobody dostępu do pamięci kontraktu podczas symulacji przez bundlery.
Rozbudowaniem tego modelu jest standard definiujący paymastera jako usługę sieciową, który wprowadza metody komunikacji JSON-RPC pozwalające aplikacji zapytać usługę paymastera o wartości potrzebne do estymacji gazu, a następnie o finalne dane dla już podpisanej operacji. Aplikacja może przekazać portfelowi adres URL takiej usługi, a portfel może również wyświetlić użytkownikowi informację o tym, kto sponsoruje daną transakcję.
Praktyczne znaczenie dla użytkownika
Dla użytkownika największą korzyścią jest możliwość wykonania transakcji bez posiadania natywnego tokena danej sieci na opłatę gazu — wystarczy, że aplikacja lub inny podmiot zgodzi się sponsorować opłatę, albo że użytkownik zapłaci gazem rozliczanym w tokenie, który już posiada. Dla aplikacji oznacza to możliwość znacznie prostszego onboardingu nowych użytkowników, którzy nie muszą najpierw kupować kryptowaluty tylko po to, by opłacić pierwszą transakcję.
Czym paymaster nie jest
Paymaster jest elementem standardu ERC-4337 działającym na poziomie kont smart-kontraktowych, a nie funkcją wbudowaną w sam protokół Ethereum czy zmianą na poziomie konsensusu. Nie jest też tym samym co session key — paymaster odpowiada wyłącznie za finansowanie opłaty transakcyjnej, a nie za ograniczanie uprawnień do podpisywania konkretnych działań. Sponsorowanie opłat nie jest też gwarantowane — aplikacja nie może zakładać, że paymaster, którego proponuje, faktycznie zostanie użyty przez portfel, ponieważ portfel może zdecydować się na własnego paymastera albo usługa sponsorująca może nie zadziałać.
Ograniczenia i ryzyka
Standard wprost ostrzega, że złośliwie skonstruowany paymaster mógłby stanowić ryzyko ataku typu odmowa dostępu (DoS) na cały system — stąd mechanizmy reputacji i wymogu stake’u. Dla samego sponsora istnieje ryzyko finansowe: nawet gdy operacja użytkownika zawiedzie, paymaster nadal płaci za wykorzystany gaz. Kolejnym ryzykiem są nieprawidłowe estymacje — błędne dane szacunkowe mogą doprowadzić do zbyt niskiego limitu gazu i błędu bundlera. Wreszcie, adresy URL usług paymasterowych często zawierają klucze API, co rodzi ryzyko operacyjne i zaleca stosowanie pośredniej warstwy zabezpieczającej po stronie backendu.
Podsumowanie
Paymaster to mechanizm z ERC-4337, który pozwala oddzielić opłacenie transakcji od jej nadawcy, umożliwiając sponsorowanie gazu przez aplikacje lub płatność w tokenach ERC-20. To rozwiązanie na poziomie kont smart-kontraktowych, a nie zmiana samego protokołu Ethereum, i nie gwarantuje automatycznie, że dana transakcja zostanie sponsorowana — zależy to od decyzji portfela i dostępności danej usługi paymastera.



