К основному содержимому

Введите слово из вопроса или названия статьи.

3 · Под капотом

Абстракция аккаунтов (ERC-4337): умные кошельки и спонсирование газа

Что такое абстракция аккаунтов и ERC-4337: UserOperation, bundler, paymaster, преимущества смарт-кошелька перед EOA, соцвосстановление и риски.

3 мин чтенияОбновлено:
В этой статье

Обычный кошелёк (EOA) жёстко устроен: один закрытый ключ, газ только в ETH, потерял ключ - потерял всё (аккаунты Ethereum). Абстракция аккаунтов превращает кошелёк в программируемый контракт, которому можно задать свои правила. Стандарт ERC-4337 реализует это без изменения самого протокола Ethereum.

Проблемы обычного кошелька

  • Один ключ = единая точка отказа (HD-кошельки).
  • Для любой операции нужен ETH для газа, даже если у вас только USDC.
  • Каждое действие - отдельная подпись и транзакция (одобрение, затем обмен).
  • Нельзя ограничить лимиты, поставить задержку, разрешить временный доступ.
  • Восстановление доступа возможно только через seed-фразу.

Смарт-кошелёк

Вместо EOA используется контракт-кошелёк. Его правила - это код: кто и как может подписывать, какие лимиты, кто может восстанавливать доступ. Мультиподпись - частный случай смарт-кошелька.

Проблема в том, что контракт сам не может инициировать транзакцию (только EOA может). ERC-4337 решает это отдельной инфраструктурой.

Как работает ERC-4337

Вместо обычной транзакции пользователь создаёт UserOperation - структуру, описывающую желаемое действие. Дальше:

  1. UserOperation отправляется в отдельный «альтернативный mempool».
  2. Bundler (упаковщик) собирает операции в одну обычную транзакцию и оплачивает её газ.
  3. Транзакция вызывает EntryPoint - единый контракт-диспетчер.
  4. EntryPoint вызывает у смарт-кошелька функцию проверки validateUserOp: подпись и правила верны?
  5. Если да - выполняет действие. Bundler получает компенсацию из средств кошелька или paymaster.
text
Пользователь → UserOperation → Bundler → EntryPoint → Смарт-кошелёк → Действие
                                              ↑
                                         Paymaster (опционально)

Paymaster: газ без ETH

Paymaster - контракт, который оплачивает газ за пользователя. Варианты:

  • приложение спонсирует газ новичкам: «бесплатный» первый опыт;
  • пользователь платит комиссию в токене (например, USDC), а paymaster конвертирует;
  • платит организация за своих сотрудников.

Для сервисов вроде нашего это означает потенциально снижение барьера входа: не нужно сперва искать ETH ради первой операции (выбор сети).

Что умеют смарт-кошельки

ВозможностьЧто даёт
Социальное восстановлениедоверенные лица или устройства помогают вернуть доступ при потере ключа
Пакетные операцииapprove и вызов в одной операции вместо двух (approve)
Сессионные ключивременный ограниченный ключ для игры или приложения
Лимиты и задержкимаксимум в сутки, пауза на крупные переводы
Passkeysподпись биометрией устройства (кривая secp256r1) вместо seed-фразы
Мультиключинесколько устройств, 2-из-3 и т. д.
Замена алгоритма подписина постквантовый в будущем

Проверка подписи смарт-кошелька основана на EIP-1271 (подписи).

Связь с EIP-7702

Обновление Pectra (2025) добавило EIP-7702: обычный адрес (EOA) может временно «подключить» код контракта и получить возможности смарт-кошелька (пакетные операции, спонсирование) без переезда на новый адрес. Это дополняет ERC-4337, а не отменяет.

Риски и ограничения

  • Баги кошелька. Смарт-кошелёк - это контракт, и ошибка в нём может стоить денег (каталог уязвимостей). Используйте проверенные и проаудированные реализации.
  • Зависимость от инфраструктуры. Bundler и paymaster могут отказать, задержать или цензурировать операции.
  • Усложнение. Больше частей - больше ошибок и больший расход газа на проверку.
  • Разные адреса в сетях. Адрес смарт-кошелька в разных сетях может не совпасть, если развёрнут по-разному (CREATE2).
  • Социальное восстановление добавляет новых «хранителей», которым надо доверять.
  • Фишинг по-прежнему возможен: подписанная операция - это подписанная операция (атаки).

Как это связано с эскроу

Контракт Coin-Trust принимает вызовы от любого адреса - EOA или смарт-кошелька. Поэтому участник сделки может использовать умный кошелёк: например, организация-гарант с мультиподписью, которая выносит решение. Важное условие: адрес должен уметь принимать выплаты; иначе платёж превратится в кредит, который придётся забирать отдельно (кредиты).

Пример

Мария впервые пользуется криптосервисом. У неё смарт-кошелёк с passkey на телефоне и USDC. Приложение спонсирует газ первой сделки. Одной операцией кошелёк выполняет approve и создание оферты. Телефон потерян? Двое из трёх доверенных лиц одобряют замену устройства, и доступ восстановлен без seed-фразы.

Что почитать дальше

Закрепим безопасность: чек-лист защиты кошелька. Или перейдём к разработке и тестированию: руководство по Foundry.

Упоминается в статьях

Готовы попробовать?

Создайте первую сделку за пару минут. Деньги блокируются в смарт-контракте и выплачиваются по правилам, которые видны заранее.