Приложение, аккаунт и ключ — три разные вещи

Wallet app показывает баланс, строит transaction и предлагает её подписать. Account — объект в конкретной сети, которому принадлежат активы и состояние. Key или другой credential доказывает право выполнить действие. В привычном externally owned account, EOA, эти уровни легко спутать: тот, кто получил private key, фактически получил полный контроль.

Contract account живёт по коду. Он может считать одну подпись достаточной, требовать две из трёх, разрешать маленькие платежи session key или заменять основной credential после recovery delay. Account Abstraction создаёт инфраструктуру, при которой такой аккаунт может инициировать пользовательское действие без ручной цепочки вспомогательных EOA-транзакций.

Что именно становится программируемым
СвойствоОбычный EOASmart account
Проверка доступаФиксированная подпись ECDSA private keyЛогика wallet contract: ключи, пороги, условия
RecoveryНовый ключ не восстанавливает старый адресВозможен, если код заранее определил recovery role и процесс
Пакет действийОбычно несколько отдельных transactionsContract может выполнить несколько calls как одну операцию
Оплата gasОтправитель держит native assetВозможен paymaster или иной fee flow, если его поддерживает система
ЛимитыНет встроенного дневного лимита аккаунтаМожно реализовать spending limits, allowlists и session permissions
Что именно становится программируемым
Свойство
Проверка доступа
Обычный EOA
Фиксированная подпись ECDSA private key
Smart account
Логика wallet contract: ключи, пороги, условия
Свойство
Recovery
Обычный EOA
Новый ключ не восстанавливает старый адрес
Smart account
Возможен, если код заранее определил recovery role и процесс
Свойство
Пакет действий
Обычный EOA
Обычно несколько отдельных transactions
Smart account
Contract может выполнить несколько calls как одну операцию
Свойство
Оплата gas
Обычный EOA
Отправитель держит native asset
Smart account
Возможен paymaster или иной fee flow, если его поддерживает система
Свойство
Лимиты
Обычный EOA
Нет встроенного дневного лимита аккаунта
Smart account
Можно реализовать spending limits, allowlists и session permissions

ERC-4337 добавляет параллельный путь от намерения до транзакции

В ERC-4337 wallet формирует не обычную Ethereum transaction, а UserOperation. В ней есть sender, calldata, nonce, ограничения gas, signature и optional paymaster data. Объект отправляется в отдельный mempool, где bundler проверяет его и собирает несколько operations в одну transaction к общему EntryPoint contract.

Кто отвечает за каждую стадию

  1. Формирует UserOperation

    Интерфейс кодирует желаемые calls и получает authorization по правилам конкретного account.

  2. Симулирует validation и собирает bundle

    Bundler отбрасывает operation, которая не проходит account validation или не покрывает fee по правилам EntryPoint.

  3. Проверяет и запускает исполнение

    Contract вызывает validateUserOp у smart account, учитывает paymaster и после успешной проверки исполняет calldata.

  4. Обычная transaction закрепляет bundle

    On-chain receipt содержит события EntryPoint и account; один outer hash может включать несколько UserOperations.

UserOperation проходит от кошелька через bundler и EntryPoint к programmable account, который проверяет доступ и исполняет calls
ERC-4337 отделяет пользовательскую operation от outer transaction, но результат всё равно исполняется и фиксируется on-chain.Редакционная схема onchain.uz

Из-за этой архитектуры explorer может показывать два идентификатора: transaction hash bundle и UserOperation hash. Первый доказывает включение outer transaction, второй помогает найти конкретную operation внутри EntryPoint flow. Поддержка должна уточнять, какой идентификатор нужен, а не называть оба просто hash перевода.

Paymaster меняет плательщика, но не отменяет стоимость gas

Paymaster contract может согласиться оплатить gas за UserOperation. Приложение способно субсидировать onboarding, принимать reimbursement в ERC-20 или оплачивать только разрешённые действия. EntryPoint проверяет, есть ли у paymaster достаточный deposit и принимает ли он конкретную operation.

Надпись gasless означает, что пользователь не платит native asset напрямую в этом flow. Расход несёт sponsor, включается в другую комиссию или покрывается по условиям продукта. Paymaster вправе отказать из-за лимита, политики, времени или calldata, поэтому это dependency, а не бесплатное свойство адреса.

EIP-7702 даёт EOA исполнять делегированный код

EIP-7702 вводит set-code transaction с authorization list. Владелец EOA подписывает delegation к адресу implementation, и его аккаунт может выполнять код этого delegate. Это позволяет получить batching, sponsorship и programmable permissions без обязательного перевода активов на новый contract-account address.

ERC-4337 и EIP-7702 не являются синонимами. Первый описывает UserOperation, bundlers и EntryPoint без изменения consensus rules. Второй добавляет protocol transaction type для делегирования EOA. Современный wallet flow может сочетать их: ERC-4337 specification содержит поддержку EIP-7702 authorization для delegated accounts.

Recovery и session keys существуют только там, где их написал разработчик

Возможность smart account и её скрытая настройка
ФункцияЧто может датьЧто обязательно выяснить
Social recoveryЗамена основного credential через guardiansКто guardians, какой threshold и delay, можно ли отменить захват
Несколько устройствРазные keys с разными ролямиКакие действия доступны каждому key и как его revoke
Session keyОграниченные действия без каждой ручной подписиContracts, methods, amounts, chain и expiry разрешения
Batch executionApprove и action в одной operationВесь список calls и поведение при partial failure
Spending limitОграничение суммы или периодаКакая единица, oracle и обходные paths участвуют в расчёте
UpgradeИсправление кода без смены адресаКто upgrade authority, есть ли delay и можно ли выбрать immutable version
Возможность smart account и её скрытая настройка
Функция
Social recovery
Что может дать
Замена основного credential через guardians
Что обязательно выяснить
Кто guardians, какой threshold и delay, можно ли отменить захват
Функция
Несколько устройств
Что может дать
Разные keys с разными ролями
Что обязательно выяснить
Какие действия доступны каждому key и как его revoke
Функция
Session key
Что может дать
Ограниченные действия без каждой ручной подписи
Что обязательно выяснить
Contracts, methods, amounts, chain и expiry разрешения
Функция
Batch execution
Что может дать
Approve и action в одной operation
Что обязательно выяснить
Весь список calls и поведение при partial failure
Функция
Spending limit
Что может дать
Ограничение суммы или периода
Что обязательно выяснить
Какая единица, oracle и обходные paths участвуют в расчёте
Функция
Upgrade
Что может дать
Исправление кода без смены адреса
Что обязательно выяснить
Кто upgrade authority, есть ли delay и можно ли выбрать immutable version

Фраза «без seed-фразы» описывает onboarding, а не полную модель восстановления. За biometric prompt может стоять device key, cloud backup, guardian service или централизованный recovery provider. Пользователю нужен ответ, что произойдёт при потере телефона, блокировке аккаунта провайдера и недоступности backend.

Один private key заменяется системой из contracts и сервисов

Новые точки, которые влияют на доступ

  • wallet implementation и корректность validation logic;
  • factory, которая разворачивает account по ожидаемому адресу;
  • EntryPoint version и совместимость account;
  • bundler availability и его правила mempool;
  • paymaster deposit и policy, если пользователь не держит native gas;
  • guardians, modules, session keys и upgrade authority;
  • frontend и RPC, которые должны правильно показать весь bundle calls.

Это не обязательно хуже EOA. Programmable limits способны уменьшить ущерб от одного украденного key, а recovery — спасти от потери устройства. Но безопасность перемещается: теперь нужно доверять не одному секрету, а корректности policy и возможности восстановить её без злоумышленника.

Экран подписи должен раскрывать authorization, а не только красивое действие

Экран подписи для UserOperation должен показать assets, recipients, approvals, delegate address и limits на понятном уровне, но подпись относится к точному encoded payload. Симуляция помогает предсказать execution, однако не доказывает, что upgradeable contract останется тем же после подписи или что внешний интерфейс правильно описал экономический смысл.

Особенно внимательно относитесь к установке module, добавлению guardian, созданию session key и EIP-7702 delegation. Обычный transfer тратит определённую сумму сейчас; изменение account policy способно разрешить будущие действия без повторения того же окна.

Одинаковый адрес в двух сетях не гарантирует одинаковый smart account

Contract-account code и storage существуют отдельно в каждой chain. Factory может вычислить одинаковый counterfactual address, но account ещё не обязан быть deployed везде. Даже при совпадающем адресе modules, owners, EntryPoint и balance нужно проверять для конкретного chain ID.

Перед отправкой актива убедитесь, что destination network поддерживается wallet product и recovery flow. Возможность увидеть тот же hex address не доказывает, что пользователь сможет управлять account в этой сети. Эта граница особенно важна при выводе с биржи или bridge transfer.

Как проверить smart wallet до перевода основной суммы

  • Определите account type: отдельный contract account, ERC-4337 flow, EIP-7702 delegation или custodial ledger.
  • Найдите официальные contract addresses, EntryPoint version и deployment networks.
  • Запишите owners, guardians, threshold, delay, active modules и session permissions.
  • Уточните, кто оплачивает gas и что произойдёт при отказе paymaster или bundler.
  • Проверьте export и recovery без передачи seed, private key или one-time codes поддержке.
  • Сделайте небольшую operation, затем отдельно проверьте receipt, events и способ revoke временного доступа.

Smart account полезен не количеством функций, а понятной policy. Хороший интерфейс позволяет ответить, кто может действовать, что именно разрешено, когда право истекает и как его отменить. Если ответы скрыты за словом smart, пользователь получил более сложный аккаунт, но не обязательно более безопасный.

Источники

Мы используем прямые ссылки и фиксируем дату проверки. Полный текст чужих материалов не перепечатывается.

  1. Ethereum.org — Account Abstraction Ethereum Foundation · Проверено 14 августа 2026 г. в 22:44 GMT+5
  2. Ethereum.org — типы Ethereum accounts Ethereum Foundation · Проверено 14 августа 2026 г. в 22:44 GMT+5
  3. ERC-4337 — Account Abstraction через EntryPoint Ethereum Improvement Proposals · Проверено 14 августа 2026 г. в 22:44 GMT+5
  4. EIP-7702 — Set Code for EOAs Ethereum Improvement Proposals · Проверено 14 августа 2026 г. в 22:44 GMT+5
Материал носит информационный характер и не является индивидуальной рекомендацией. Криптоактивы связаны с риском волатильности, технических сбоев, хищения и полной потери средств.