Bundler
Operator pakietujący operacje użytkowników w ERC-4337: zbiera UserOperations ze smart accountów i wysyła je do kontraktu EntryPoint jako transakcję onchain.
Czym jest bundler
Bundler to operator pakietujący UserOperations w standardzie ERC-4337. Działa poza łańcuchem, ale jego zadanie kończy się transakcją wysłaną onchain do kontraktu EntryPoint.
W account abstraction użytkownik nie zawsze wysyła zwykłą transakcję Ethereum z EOA. Smart account tworzy UserOperation, czyli opis tego, co konto chce wykonać.
Bundler zbiera takie operacje, sprawdza, czy da się je wykonać, grupuje je i wysyła do Ethereum w jednej transakcji. Dzięki temu smart accounty mogą działać w praktyce bez zmiany samego konsensusu Ethereum.
Elementy przepływu ERC-4337
- Smart account
- Konto oparte o smart kontrakt, które może mieć własne reguły autoryzacji.
- UserOperation
- Struktura danych opisująca intencję użytkownika, parametry gazu i podpis.
- Bundler
- Operator, który zbiera UserOperations i przesyła je do EntryPoint.
- EntryPoint
- Kontrakt koordynujący walidację i wykonanie UserOperations.
- Paymaster
- Kontrakt, który może sponsorować gaz albo pozwolić płacić w innym aktywie.
Co dokładnie robi bundler
Bundler obserwuje alternatywny mempool ERC-4337, w którym pojawiają się UserOperations. Następnie symuluje ich wykonanie, żeby odfiltrować operacje, które nie powinny przejść.
Po zebraniu operacji tworzy transakcję do EntryPoint. EntryPoint sprawdza reguły smart accountów, uruchamia logikę paymastera, rozlicza gaz i wykonuje działania użytkowników.
Bundler płaci gaz za transakcję wysyłaną do Ethereum, a potem odzyskuje koszt zgodnie z zasadami ERC-4337. Dlatego musi uważać na operacje, które mogłyby narazić go na stratę.
Dlaczego bundler jest potrzebny
ERC-4337 tworzy osobny przepływ dla smart accountów. Bundler jest mostem między tym przepływem a zwykłą transakcją Ethereum.
- Zamienia UserOperations w transakcję zrozumiałą dla Ethereum.
- Umożliwia batching operacji z wielu smart accountów.
- Pozwala używać paymasterów i sponsorowania gazu.
- Pomaga utrzymać kompatybilność ERC-4337 bez zmiany konsensusu Ethereum.
- Tworzy warstwę infrastruktury potrzebną portfelom smart account.
Przykład użycia
- Użytkownik smart accounta chce wykonać swap.
- Portfel tworzy UserOperation zamiast zwykłej transakcji EOA.
- Bundler odbiera tę operację i sprawdza, czy może ją wykonać.
- Bundler wysyła pakiet operacji do EntryPoint.
- EntryPoint waliduje smart account i wykonuje swap onchain.
Najczęstsze błędne założenia
- Bundler nie jest walidatorem Ethereum.
- Bundler nie zmienia reguł konsensusu i nie finalizuje transakcji samodzielnie.
- Bundler może odrzucać operacje, które wyglądają na nieopłacalne albo niespełniające reguł.
- Account abstraction potrzebuje infrastruktury poza smart kontraktem, a bundler jest jej ważną częścią.
- Awaria konkretnego bundlera może pogorszyć UX portfela, nawet jeśli sam smart account nadal istnieje onchain.
Bundler obsługuje ścieżkę smart accountów
Dla użytkownika smart walleta cały proces może wyglądać jak jedna normalna akcja w aplikacji. Pod spodem bundler zbiera UserOperation, wysyła ją do EntryPoint i rozlicza wykonanie na Ethereum.
