Przejdź do treści
Słownikethereumaccount-abstractionsmart-kontrakty

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.

Najczęstsze pytania

Nie. Bundler zbiera UserOperations i wysyła transakcję do EntryPoint. Walidator Ethereum dopiero uwzględnia tę transakcję w bloku zgodnie z normalnymi zasadami sieci.

Zwykle nie. Portfel albo aplikacja korzysta z konkretnego dostawcy infrastruktury. Zaawansowane konfiguracje mogą pozwalać na wybór lub zmianę bundlera.

Portfel może mieć problem z wysłaniem UserOperation. Sam smart account pozostaje onchain, ale użytkownik potrzebuje innego bundlera albo alternatywnej ścieżki wykonania.

Bundler nie powinien móc wydać środków bez poprawnej autoryzacji smart accounta. Może jednak wpływać na dostępność i kolejność obsługi operacji, więc jego rola ma znaczenie dla UX i niezawodności.