Inteligentne konta Ethereum: UserOperation, bundlery i sponsorowanie gazu
Prześledź UserOperation ERC-4337 przez bundler i EntryPoint, poznaj sponsorowanie gazu przez paymastera oraz różnicę między odzyskiwaniem konta a kontrolą kluczy.
W tym przewodnikuKonto smart przechowuje programowalne reguły autoryzacji w kontrakcie
Krótkie podsumowanie
Abstrakcja konta pozwala kontu smart w postaci kontraktu zgłosić UserOperation według własnych reguł walidacji, osobną ścieżką niż zwykła transakcja EOA. W ERC-4337 bundlery zbierają operacje i wywołują EntryPoint; opcjonalny paymaster może sponsorować gaz, jeśli zatwierdzi żądanie. Nie gwarantuje to automatycznego odzyskania dostępu, darmowych transakcji ani braku powiernika.
Konto smart przechowuje programowalne reguły autoryzacji w kontrakcie
Konto zewnętrznie kontrolowane (EOA) potwierdza kontrolę podpisem klucza prywatnego. Jego nonce określa kolejność transakcji.
To prosty model, ale zwykle ten sam klucz autoryzuje każdą czynność, a zwykła transakcja zwykle uruchamia jedno wywołanie na najwyższym poziomie; wywołany kontrakt może następnie wykonać kolejne wywołania wewnętrzne.
To rozróżnienie uzupełnia przewodnik po oczekujących transakcjach Ethereum, który opisuje pulę transakcji EOA, a nie przepływ ERC-4337.
Konto smart to kontrakt, który może przechowywać aktywa i wykonywać wywołania. Jego kod walidacji może stosować reguły właściwe dla konta, na przykład jeden podpis, próg wielu podpisów albo uprawnienia wygasające po określonym czasie.
ERC-4337 nie narzuca portfela ani zasad odzyskiwania; określa interfejs, przez który konto kontraktowe autoryzuje i wykonuje operacje.
Ethereum.org wymienia możliwe funkcje, takie jak klucze zapasowe, ograniczone uprawnienia i sponsorowanie gazu. Nie każdy portfel musi je wdrażać.
Sama nazwa „smart wallet” nie wyjaśnia, jak bezpieczne jest konto ani kto nim zarządza. Sprawdź, który kontrakt przechowuje aktywa, jakiemu kodowi i EntryPoint ufa konto oraz którzy podpisujący mogą autoryzować wywołania.
Jeśli logikę konta można aktualizować, prawa administratora i procedura zmian również wpływają na kontrolę nad aktywami.
UserOperation nie jest jeszcze transakcją Ethereum w bloku
UserOperation to obiekt opisujący działanie, które chce wykonać konto smart. Zwykle zawiera konto nadawcy, nonce właściwe dla konta, dane wywołania, podpis, limity gazu i warunki opłat.
Może też zawierać informacje o factory do utworzenia nowego konta albo o paymasterze proszącym o sponsorowanie. Dokładne pola zależą od wersji EntryPoint.
Zamiast używać zwykłego RPC eth_sendTransaction, portfel przekazuje obiekt bundlerowi lub relayowi udostępniającemu eth_sendUserOperation. Żądanie trafia do osobnej puli UserOperation, nie do puli zwykłych transakcji Ethereum.
Hash UserOperation identyfikuje żądanie; transakcja on-chain utworzona przez bundler ma osobny hash i paragon.
ERC-7769 definiuje RPC do wysyłania, wyszukiwania po hashu i pobierania paragonów UserOperation.
Odpowiedź bundlera może oznaczać, że żądanie przeszło jego kontrole i trafiło do jego puli. Nie dowodzi to, że blok je uwzględnił ani że działanie aplikacji zakończyło się powodzeniem.
Sposób udostępniania żądania innym bundlerom zależy od infrastruktury i polityki dostawcy. Oddziel potwierdzenie przyjęcia przez dostawcę od wyniku zapisanego w łańcuchu.
Bundler symuluje walidację i przygotowuje wywołanie on-chain
Bundler otrzymuje UserOperation, sprawdza jej zgodność z wersją EntryPoint, a następnie symuluje logikę walidacji konta i paymastera. Weryfikuje podpis, zaufanie konta do danego EntryPoint oraz warunki nonce, gazu i sponsorowania.
Może odrzucić operację łamiącą zasady albo nieprzechodzącą symulacji walidacji. Przewodnik ERC-4337 po bundlerach opisuje symulację i wysyłanie pakietów.
Bundler wybiera jedną lub kilka zaakceptowanych operacji i tworzy jedną zwykłą transakcję Ethereum wywołującą handleOps w EntryPoint. Umieszczenie tej transakcji w bloku nadal zależy od produkcji bloków i warunków sieci.
Zwrócony hash UserOperation nie dowodzi, że wykonanie nastąpiło w kanonicznym łańcuchu.
Pula UserOperation jest odrębna od puli EOA; nie zakładaj, że wszyscy dostawcy udostępniają sobie te same żądania. Bundler może odrzucić operację lub pozostawić ją w oczekiwaniu.
Obsługiwane łańcuchy, wersje EntryPoint i polityki różnią się zależnie od portfela i dostawcy. Sprawdzając status, odróżniaj widok w portfelu, paragon operacji i paragon transakcji pakietowej w łańcuchu.
EntryPoint sprawdza uprawnienia konta przed jego wywołaniem
EntryPoint otrzymuje wywołanie handleOps od bundlera i uruchamia funkcję walidacji każdego konta smart. Konto sprawdza, czy wywołanie pochodzi z zaufanego EntryPoint, oraz weryfikuje podpis i własne reguły.
EntryPoint weryfikuje i zwiększa 64-bitową sekwencję dla każdej pary konta i klucza nonce; konto może stosować własną logikę do 192-bitowego pola klucza. Jedno konto może więc korzystać z wielu kluczy i osobnych sekwencji.
Opcjonalny paymaster również sprawdza, czy sponsoruje operację. Po pomyślnej walidacji EntryPoint wywołuje funkcję wykonawczą konta, aby wykonać działanie zapisane w callData, a następnie rozlicza koszt.
EntryPoint to centralny kontrakt umożliwiający przepływy smart account bez zmiany protokołu Ethereum dla każdego projektu portfela. Sprawdź rzeczywiście wdrożony adres, wersję i łańcuchy obsługiwane przez portfel.
Przewodnik ERC-4337 po EntryPoint wyjaśnia dokładniej walidację i wykonanie.
Symulacja jest użytecznym podglądem, nie obietnicą włączenia do bloku. Stan łańcucha, opłaty, okno ważności lub stan zewnętrznego kontraktu mogą zmienić się podczas oczekiwania i wpłynąć na walidację on-chain.
Nawet po walidacji wywołanie aplikacji może się nie udać albo zostać cofnięte. Samo uwzględnienie w bloku nie dowodzi, że zamierzony transfer tokenów lub działanie kontraktu zakończyło się powodzeniem.
Paymaster sponsoruje gaz tylko po zatwierdzeniu operacji
Jeśli UserOperation zawiera dane paymastera, EntryPoint pyta ten kontrakt, czy zgodzi się ją sponsorować. Aplikacja może w ten sposób pokryć opłaty transakcyjne albo pozwolić użytkownikowi rozpocząć działanie bez ETH na koncie.
Niektóre projekty umożliwiają także płatność tokenem lub stosują inne warunki dostępu; zależy to od portfela i implementacji paymastera.
Sponsorowanie nie usuwa kosztu gazu ani warunków. Paymaster może ograniczyć kwalifikujące się aplikacje, użytkowników, liczbę operacji lub kwoty, sprawdzić żądanie i je odrzucić.
Jego depozyt w EntryPoint służy do pokrywania kosztów operacji. Jeśli wymagana jest osobna stawka, stanowi zabezpieczenie według reguł walidacji, a nie depozyt przeznaczony na gaz.
Przewodnik ERC-4337 o paymasterach i EIP-4337 opisują walidację oraz rozliczenie.
Opłata równa zero w interfejsie aplikacji nie oznacza braku kosztów. Sponsor może zapłacić z góry, a później odzyskać wartość przez abonament, płatność tokenem albo warunki usługi.
Sprawdź, kto ostatecznie ponosi koszt, czy sponsorowanie ma limit lub ograniczenie liczby użyć i czy nieudana operacja może mimo to wiązać się z opłatą.
Osobno oceniaj wiele wywołań i ich opłaty
Jeśli portfel to obsługuje, użytkownik może umieścić zgodę dla aplikacji i swap w jednej UserOperation. Oba działania są wysyłane jako jedna operacja przez EntryPoint.
Różni się to od zwykłej transakcji EOA oraz od bundlera, który łączy kilka odrębnych UserOperation w jedną transakcję łańcuchową. Sprawdź w podglądzie portfela, jaka struktura jest używana.
Rozważmy hipotetyczny przykład opłaty: zatwierdzona sponsorowana operacja kosztuje faktycznie 0,0012 ETH gazu. Koszt może zostać rozliczony z depozytu paymastera w EntryPoint, a nie z salda użytkownika.
0,0012 ETH to wartość ilustracyjna, nie bieżący kurs ani oferta. Rzeczywista kwota zależy od zużytego gazu, warunków opłat i sieci.
Grupowanie nie jest automatycznie tańsze ani bezpieczniejsze. Atomowość wielu wywołań zależy od sposobu, w jaki konto smart obsługuje błędy.
Sprawdź, czy nieudane wywołanie cofa cały pakiet, czy część działań może pozostać wykonana i kto płaci za gaz. Nietrafna estymacja gazu lub niedostępna aplikacja mogą spowodować odrzucenie albo błąd wykonania.
Przewodnik po opłatach gazu Ethereum wyjaśnia ogólne pola opłat.
Reguły odzyskiwania wynikają z implementacji konta, nie z ERC-4337
Konto smart może używać zapasowych podpisujących albo procesu odzyskiwania, w którym zaufani opiekunowie osiągają próg potrzebny do wymiany klucza.
Niektóre projekty dodają okres oczekiwania, w którym dotychczasowy klucz może zgłosić sprzeciw. Jeśli jednak zawsze wymagany jest jeden konkretny podpis, utrata tego klucza może uniemożliwić odzyskanie dostępu.
ERC-4337 pozwala kontom walidować operacje według własnych reguł, ale domyślnie nie zapewnia każdemu kontu zapasowych kluczy ani odzyskiwania społecznościowego.
Zbyt mała liczba opiekunów lub słabe reguły wymiany kluczy mogą stworzyć ścieżkę ataku. Zbyt wielu opiekunów albo nadmierne wymagania mogą opóźnić prawowite odzyskanie dostępu przez właściciela.
Sprawdź próg, czas oczekiwania, prawa do anulowania i sposób przechowywania kluczy odzyskiwania. Reguły te określają także, kto może zablokować operację, a nie tylko kto może ją autoryzować.
Portfel kontraktowy nie jest automatycznie powierniczy ani niepowierniczy.
Kontrola zależy od tego, kto ma klucze podpisujące, czy konto ma uprawnienia administratora lub aktualizacji oraz co wolno autoryzować hostowanemu podpisującemu lub usłudze odzyskiwania.
Osobno zbadaj kontrakt przechowujący aktywa oraz klucze i usługi, które nim sterują.
Kopie zapasowe zwykłej frazy seed to osobny temat opisany w przewodniku odzyskiwania portfela.
Przed wysłaniem sprawdź operację i ścieżkę kontroli
W podglądzie portfela sprawdź sieć, adres konta, kontrakty docelowe, dane wywołania, zakres zgody na tokeny i liczbę wywołań. Podpis może autoryzować więcej niż pojedyncze działanie wyróżnione w interfejsie.
Jeśli nie rozumiesz podpisywanych danych, przed dalszym działaniem sprawdź oficjalną dokumentację aplikacji i portfela.
Aby zrozumieć sponsorowanie, przeczytaj kryteria, limity użycia, alternatywne zasady płatności i reguły kosztów po niepowodzeniu. Nie polegaj wyłącznie na nazwie paymastera.
Aktywna etykieta sponsorowania nie oznacza, że aplikacja jest bezwarunkowo darmowa, a paymaster nadal może odmówić operacji. Zatłoczenie sieci i opóźnienia włączenia do bloku pozostają odrębnymi kwestiami.
Jeśli UserOperation długo czeka, nie stosuj bez sprawdzenia funkcji EOA „przyspiesz” ani „anuluj”; najpierw dowiedz się, jak portfel obsługuje UserOperation. Wyszukaj hash operacji i jej paragon.
Jeśli masz hash transakcji bundlera, sprawdź także paragon bloku i wynik wykonania. Paragony RPC mogą rozróżnić koszt i powodzenie pojedynczej operacji od paragonu całej transakcji pakietowej.
To coś innego niż zastąpienie albo anulowanie zwykłej transakcji EOA z tym samym nonce.
Częste pytania
Q1Czy UserOperation jest tym samym co transakcja Ethereum?
Nie. To żądanie smart account wysyłane przez osobną pulę. Gdy bundler przesyła wywołanie EntryPoint, łańcuch zapisuje transakcję pakietową oraz wynik każdej operacji.
Q2Czy użytkownik nie płaci za gaz, gdy działa paymaster?
Może nie płacić ETH bezpośrednio z konta, ale koszty sieci nadal istnieją. Warunki mogą obejmować kryteria dostępu, płatność tokenem lub warunki usługi, a nieudana operacja nadal może zużyć gaz.
Q3Czy mogę odzyskać portfel ERC-4337 po utracie klucza?
Tylko jeśli konto ma zapasowych podpisujących lub politykę odzyskiwania. W rzeczywistej konfiguracji konta sprawdź próg, czas oczekiwania, uprawnienia wymiany klucza i zakres kontroli usługi odzyskiwania.
Źródła i dalsza lektura
Zgłoś problem
Przygotujemy e-mail z linkiem do tego artykułu. Mark otrzyma zgłoszenie dopiero po jego wysłaniu
Szybki test
Przeczytano? Sprawdź się w 3 pytaniach
Pytanie 01
Bundler zwraca hash UserOperation. Co sama odpowiedź potwierdza?
Wybierz odpowiedź, aby zobaczyć wyjaśnienie
Słownik opcji
A call or put whose strike is near the underlying price; it has little intrinsic value and often substantial sensitivity to time and volatility.
Czytaj szczegółowy przewodnikCall optionA contract that gives its holder the right, but not the obligation, to buy the underlying at the strike before or at expiration under the contract terms.
Czytaj szczegółowy przewodnik