Bundler (бандлер) — это узел в экосистеме Account Abstraction (AA), который собирает UserOperation из специализированного мемпула, объединяет их в пакет и отправляет в EntryPoint-контракт в виде одной обычной L1-транзакции. В модели ERC-4337 именно бандлер «переводит» мир UserOperation в мир стандартных транзакций Ethereum.
Если упрощать, бандлер — это «мини-блок-билдер» для AA-транзакций: он решает, какие UserOperation взять в пакет, как оценить их комиссию и когда отправить bundle в сеть.
Зачем в ERC-4337 нужен бандлер
В классической модели Ethereum:
- пользователь с EOA-аккаунтом отправляет L1-транзакцию напрямую в узлы;
- валидаторы включают её в блок, опираясь на цену газа.
В AA-модели:
- пользовательский кошелёк формирует UserOperation (UserOp), а не обычную транзакцию;
- UserOp попадает в отдельный мемпул для AA;
- протоколу нужен участник, который:
- соберёт набор UserOp,
- проверит, что за них заплатят газ,
- упакует их в вызов EntryPoint.
Эту роль и выполняет bundler. Без бандлеров UserOperation так и оставались бы «на бумаге»: именно они превращают AA-запросы в реальное исполнение на L1.
Как работает bundler: жизненный цикл UserOperation
Высокоуровневый сценарий выглядит так:
- Формирование UserOp.
Кошелёк AA создаёт UserOperation: заполняет callData, лимиты газа, подпись, данные paymaster и другие поля стандарта ERC-4337.
- Попадание в UserOp-мемпул.
UserOperation отправляется не в обычный mempool, а в специализированные RPC-эндпоинты бандлеров, которые поддерживают протокол ERC-4337.
- Отбор операций бандлером.
Bundler анализирует UserOp:
- достаточна ли комиссия, чтобы покрыть L1-газ;
- надёжно ли ведёт себя указанный paymaster;
- нет ли явного фрода или DoS-шаблонов.
- Сборка bundle.
Бандлер формирует пакет из нескольких UserOp, оптимизируя:
- потенциальный доход (commission, возмещение от paymaster’ов),
- размер и стоимость транзакции.
- Отправка в EntryPoint.
Bundler создаёт обычную L1-транзакцию с вызовом EntryPoint-контракта, в calldata которой передаётся массив UserOperation. Дальше уже контракт:
- валидирует каждую UserOp,
- вызывает аккаунты-контракты пользователей,
- списывает gas с аккаунта или paymaster’а.
Таким образом, bundler — это мост между «виртуальным mempool’ом UserOp» и настоящим Ethereum-блокчейном.
Экономика bundler’а: откуда доход и какие расходы
Бандлер несёт реальные расходы:
- платит комиссию газом за свою L1-транзакцию;
- рискует, что часть UserOp окажется невалидной и придётся оплатить потраченный газ.
В обмен он получает доход:
- комиссии от аккаунтов и paymaster’ов.
Валидация UserOp и логика EntryPoint устроены так, чтобы:
- компенсировать gas-затраты bundler’а;
- дать ему маржу за включение операции.
- MEV-возможности вокруг AA-транзакций.
В перспективе бандлер может:
- сортировать UserOp так, чтобы извлекать дополнительную ценность (арбитраж, ликвидации и др.);
- конкурировать с другими бандлерами за наиболее выгодные операции.
Из-за этой экономической компоненты bundler — не просто «инфраструктурный релей», а полноценный участник рынка комиссий и MEV, но уже на уровне AA.
Риски и потенциальные векторы атак со стороны bundler’ов
Появление слоя бандлеров добавляет новые риски:
- Цензура UserOperation.
Bundler может отказываться включать определённые операции или адреса:
- по регуляторным причинам;
- по экономическим причинам (низкая комиссия, рискованные paymaster’ы);
- по произвольным правилам.
- Фрод и неправильно настроенные paymaster’ы.
Если bundler неверно оценивает, сколько ему компенсируют:
- он может потерять средства на газе;
- или станет целью для целенаправленных атак на «burn газ за чужой счёт».
- Концентрация рынка bundler’ов.
Если в сети закрепится небольшое число крупных бандлеров, они:
- получат рычаги влияния на AA-трафик;
- смогут координироваться в MEV-стратегиях.
- Технические DoS-риски.
Массовый поток сложных UserOp может:
- перегрузить валидирующую логику бандлера;
- сделать работу с UserOp-мемпулом тяжёлой и уязвимой к спаму.
Для зрелых AA-систем поэтому важны и конкуренция между бандлерами, и открытые спецификации mempool’а, и хорошая защита на уровне EntryPoint-контракта.
Что важно знать пользователям и разработчикам
Если вы:
- пользователь AA-кошелька, стоит понимать:
- ваши операции сначала попадают к бандлерам, а уже потом — в основной слой Ethereum;
- скорость и предсказуемость подтверждений могут зависеть от того, насколько крупные и надёжные bundler-провайдеры использует кошелёк.
- разработчик dApp или кошелька, вам нужно учитывать:
- как вы взаимодействуете с bundler-инфраструктурой (собственный бандлер, сторонние сервисы, несколько провайдеров);
- как на UX влияет политика отбора UserOp (минимальная комиссия, требования к paymaster, лимиты);
- предусмотрен ли fallback-сценарий, если конкретный bundler временно перестанет обслуживать UserOp.
Грамотная работа с bundler-слоем — это часть общей архитектуры безопасности и надёжности AA-продукта, а не только «деталь реализации».
