Купить крипто
Рынки
Спот
ФьючерсыBTC
Сбережения
Центр событий
Хаб наград
Еще
Фестиваль с 0 комиссией
Entry Point: Что такое Entry Point в криптовалютах?В контексте криптовалют Entry Point обычно означает контракт, функцию или интерфейс, через который пользователь начинает операцию в блокчейне.В абстракции аккаунтEntry Point: Что такое Entry Point в криптовалютах?В контексте криптовалют Entry Point обычно означает контракт, функцию или интерфейс, через который пользователь начинает операцию в блокчейне.В абстракции аккаунт

Entry Point

2026/10/13 15:30
#Beginner
Humanity
H$0.05578-0.30%
PX
PX$0.0129+0.78%
Эфириум
ETH$2,508.07+0.94%
SPACE ID
ID$0.03619-1.01%
IO
IO$0.16403+2.46%

Что такое Entry Point в криптовалютах?

В контексте криптовалют Entry Point обычно означает контракт, функцию или интерфейс, через который пользователь начинает операцию в блокчейне.

В абстракции аккаунтов под Entry Point обычно подразумевают центральный смарт-контракт EntryPoint, определенный в ERC-4337.

Контракт EntryPoint координирует проверку, выполнение, оплату газа, развертывание аккаунтов и расчет по операциям, отправленным смарт-аккаунтами.

В официальной спецификации ERC-4337 описана система, в которой пользователи отправляют объекты под названием UserOperation вместо того, чтобы напрямую посылать обычные транзакции с внешних аккаунтов (EOA).

Специальные участники сети, называемые бандлерами, собирают эти UserOperation и отправляют их в контракт EntryPoint в составе обычной блокчейн-транзакции.

Затем EntryPoint проверяет, авторизована ли каждая операция, определяет способ оплаты газа, вызывает соответствующий смарт-аккаунт и рассчитывает окончательную стоимость газа.

EntryPoint — это не кошелек, токен, блокчейн, приватный ключ или отдельная криптовалютная сеть.

Это общая инфраструктура смарт-контрактов, используемая совместимыми кошельками с абстракцией аккаунтов, бандлерами, фабриками аккаунтов, пеймастерами и приложениями.

Что такое ERC-4337?

ERC-4337 — стандарт абстракции аккаунтов, который позволяет создавать программируемые смарт-аккаунты без необходимости вводить новый тип транзакций Ethereum на уровне консенсуса.

Внешние аккаунты (EOA) используют заданные протоколом правила подписей и nonce.

Смарт-аккаунт ERC-4337 может использовать код контракта для определения собственной логики авторизации.

Это позволяет реализовать подтверждение с несколькими подписями, ключи доступа (Passkey), механизмы восстановления, временные разрешения, лимиты расходов, пакетные операции и другие программируемые функции кошелька.

ERC-4337 вводит отдельный процесс обработки UserOperation, при этом операции в конечном счете исполняются через обычные транзакции, включенные в блоки.

В обзоре абстракции аккаунтов Ethereum объясняется, что ERC-4337 обеспечивает функциональность смарт-аккаунтов без изменения базовых правил консенсуса Ethereum.

EntryPoint — это общий ончейн-контракт, который объединяет различные компоненты этой системы.

Почему контракт называется EntryPoint?

Контракт называется EntryPoint, поскольку служит основным доверенным шлюзом, через который операции ERC-4337 поступают в смарт-аккаунт.

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

Бандлеры не вызывают произвольные функции выполнения кошелька так, будто являются его владельцами.

Вместо этого они отправляют UserOperation в EntryPoint, который просит каждый смарт-аккаунт проверить собственную операцию.

Такая структура отделяет сторону, оплачивающую и отправляющую блокчейн-транзакцию, от аккаунта, который авторизует лежащее в ее основе действие.

Она также предоставляет бандлерам единый стандартизированный интерфейс контракта для обработки множества разных типов смарт-аккаунтов.

Какая версия EntryPoint является актуальной?

По состоянию на 16 июля 2026 года в официальном репозитории абстракции аккаунтов в качестве последнего релиза указана EntryPoint v0.9.0.

На официальной странице релизов абстракции аккаунтов адрес EntryPoint v0.9 указан как

0x433709009B8330FDa32311DF1C2AFA402eD8D009
.

В примечаниях к релизу указано, что v0.9 совместима по ABI с EntryPoint v0.7 и v0.8 для существующих интерфейсов аккаунтов и пеймастеров, если реализация не использует новые функции.

Тем не менее бандлеры должны поддерживать новую версию, прежде чем участвовать в ее мемпуле UserOperation.

Старые версии EntryPoint могут продолжать работать и обрабатывать операции в сетях, где инфраструктура по-прежнему их поддерживает.

Кошелек должен использовать бандлер, пеймастер, фабрику и реализацию смарт-аккаунта, совместимые с одной и той же версией EntryPoint.

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

Почему существует несколько версий EntryPoint?

EntryPoint развернут как смарт-контракт, поэтому, если развертывание неизменяемо, его код нельзя просто отредактировать на месте.

Как правило, новую версию выпускают, развертывая новый контракт EntryPoint по новому детерминированному адресу.

Кошельки и инфраструктура могут перейти на нее после проверки контракта и добавления поддержки его поведения.

Такой подход не позволяет одному администратору получить неограниченные полномочия по замене кода существующего синглтона.

Это также означает, что в периоды перехода инфраструктура абстракции аккаунтов может быть разделена между разными версиями.

UserOperation, предназначенную для одной версии EntryPoint, нельзя отправлять так, будто она предназначена для другой.

Выбранный адрес EntryPoint включен в важные вычисления безопасности, в том числе в хеш операции.

Что такое UserOperation?

UserOperation — это структурированный запрос, описывающий действие, которое хочет выполнить смарт-аккаунт.

Иногда его сокращенно называют UserOp.

UserOperation не является обычной транзакцией Ethereum, хотя бандлер в конечном счете включает ее в обычную транзакцию, отправляемую в EntryPoint.

Ее поля указывают смарт-аккаунт, nonce, данные для выполнения, лимиты газа, лимиты комиссий, подпись, необязательные данные для развертывания аккаунта и необязательную информацию о пеймастере.

В актуальных версиях при передаче данных ончейн используется упакованное представление

PackedUserOperation
.

EntryPoint использует эту информацию для координации проверки, выполнения и расчета расходов на газ.

Корректный формат данных сам по себе не делает UserOperation действительной.

Операцию должны принять смарт-аккаунт, EntryPoint, правила бандлера и выбранный пеймастер, если он используется.

Основные поля UserOperation

Поле

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

Поле

nonce
помогает предотвращать повторное выполнение и поддерживает несколько упорядоченных каналов операций.

Поля развертывания аккаунта позволяют создать еще не развернутый смарт-аккаунт в рамках его первой операции.

Поле

callData
описывает вызов, который должен выполнить смарт-аккаунт.

Поля газа устанавливают лимиты для проверки, выполнения и других операций, оплачиваемых за счет этой операции.

Поля комиссий задают максимальную цену газа и приоритетную комиссию, на которые согласен пользователь.

Поля пеймастера указывают необязательный контракт, который соглашается покрыть расходы на газ.

Поле

signature
содержит данные авторизации, которые интерпретирует логика проверки смарт-аккаунта.

Подпись не обязательно должна быть обычной подписью одним ключом: смарт-аккаунт может реализовать другой безопасный метод авторизации.

Как UserOperation попадает в EntryPoint

Сначала кошелек формирует UserOperation, описывающую запрошенное действие в блокчейне.

Кошелек получает правильное значение nonce и оценивает необходимые для операции параметры газа.

Система авторизации смарт-аккаунта подписывает операцию или иным образом ее одобряет.

Кошелек отправляет ее бандлеру через метод RPC для абстракции аккаунтов.

Прежде чем принять операцию, бандлер моделирует выполнение логики проверки.

Принятые операции могут попасть в специализированный мемпул UserOperation.

Бандлер выбирает несколько операций и отправляет их в EntryPoint в составе одной блокчейн-транзакции.

EntryPoint проверяет и выполняет операции в соответствии с правилами ERC-4337.

После выполнения EntryPoint перечисляет выбранному бенефициару бандлера средства, собранные с аккаунтов или пеймастеров за газ.

Что такое бандлер?

Бандлер — участник системы абстракции аккаунтов, который собирает, проверяет, объединяет и отправляет UserOperation.

При отправке пакетной транзакции в блокчейн бандлер платит сетевую комиссию в нативной валюте сети.

Он рассчитывает, что EntryPoint возместит расходы на обработку операций из депозитов смарт-аккаунтов или пеймастеров.

Это создает важное экономическое требование: бандлеры должны отклонять операции, которые могут расходовать газ, не обеспечивая его оплату.

Обычно бандлер несколько раз моделирует выполнение операции, поскольку состояние блокчейна меняется между ее первоначальным получением и окончательной отправкой.

Стандартизированный интерфейс JSON-RPC ERC-7769 определяет методы, с помощью которых кошельки и бандлеры могут обмениваться UserOperation и получать информацию об их статусе.

Бандлер не является владельцем смарт-аккаунта и не должен иметь возможности авторизовать операцию, отклоненную аккаунтом.

Функция handleOps

Основная функция EntryPoint называется

handleOps
.

Она принимает массив упакованных UserOperation и адрес бенефициара.

Бандлер вызывает эту функцию в транзакции, которая доставляет пакет операций ончейн.

EntryPoint обрабатывает операции на этапах проверки и выполнения.

Он при необходимости проверяет развертывание аккаунта, проверяет nonce, рассчитывает необходимое предварительное финансирование, вызывает функцию проверки аккаунта, проверяет пеймастер и убеждается, что средств на газ достаточно.

Затем EntryPoint вызывает смарт-аккаунты для выполнения запрошенных действий.

После обработки он рассчитывает фактические расходы и переводит собранные комиссии бенефициару.

Обычно бенефициар контролируется бандлером, но функция протокола принимает адрес, выбранный для получения платежа.

Проверка и выполнение — отдельные этапы

В ERC-4337 проверка отделена от основного выполнения операции.

На этапе проверки EntryPoint определяет, авторизует ли аккаунт операцию и можно ли оплатить расходы на газ.

На этапе выполнения смарт-аккаунт совершает запрошенные вызовы.

Это различие важно, поскольку операция может пройти проверку авторизации, но завершиться ошибкой при вызове приложения.

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

За проверку и неудачное выполнение газ все равно расходуется.

Поэтому с аккаунта или пеймастера могут списать средства, даже если запрошенное действие в приложении не выполнено.

Функция validateUserOp

Смарт-аккаунт ERC-4337 реализует функцию

validateUserOp
.

EntryPoint вызывает ее на этапе проверки.

Аккаунт получает упакованную операцию, ее хеш и сведения о недостающих средствах на газ.

Аккаунт должен убедиться, что вызывающая сторона — доверенный EntryPoint.

Затем он должен применить к операции собственные правила авторизации.

Простой аккаунт может проверить одну криптографическую подпись.

Более сложный аккаунт может потребовать несколько подписей, подтверждение с помощью Passkey, проверку доверенного лица для восстановления, разрешение для сессионного ключа или проверку политики расходов.

Аккаунт также может вернуть период действия, ограничивающий время, когда UserOperation можно включить в блок.

Почему смарт-аккаунт должен доверять точному адресу EntryPoint

EntryPoint получает разрешение вызывать чувствительные пути проверки и выполнения в смарт-аккаунте.

Поэтому смарт-аккаунту следует отклонять вызовы от недоверенного контракта, выдающего себя за EntryPoint.

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

Реализация кошелька должна определять, как распознавать одобренную версию EntryPoint.

Некоторые аккаунты используют один фиксированный адрес, а обновляемые или модульные аккаунты могут поддерживать контролируемый процесс миграции.

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

Хеш UserOperation и защита от повторного выполнения

Хеш UserOperation привязывает операцию к важным данным, используемым при авторизации.

Хеш включает адрес EntryPoint и ID блокчейн-сети.

Это мешает автоматически использовать действительную операцию, предназначенную для одного EntryPoint или сети, в другой.

Сама подпись исключена из базового хеша операции, чтобы аккаунт мог проверить предоставленные данные авторизации относительно этого хеша.

В актуальных схемах подписи пеймастера его отдельная подпись также может исключаться из хеша, что позволяет кошельку и пеймастеру подписывать данные параллельно.

Разработчикам необходимо соблюдать точные правила хеширования для выбранной версии EntryPoint.

Неправильное разделение доменов может создать риск повторного выполнения или сделать невозможной проверку действительных операций.

Управление nonce в EntryPoint

EntryPoint управляет nonce, чтобы предотвратить повторное выполнение одной и той же UserOperation.

В ERC-4337 используется двухчастный nonce: 192-битный ключ и 64-битное последовательное значение.

Каждый ключ может обозначать отдельный упорядоченный канал операций для одного смарт-аккаунта.

Это позволяет разделять обычные операции, административные операции или другие категории, не объединяя все действия в одну общую последовательность.

Функция

getNonce
возвращает текущее значение nonce для отправителя и ключа nonce.

Перед приемом операции и ее последующим включением бандлеру следует проверить nonce.

Если этого требует модель безопасности, смарт-аккаунт может применять дополнительные ограничения для nonce.

Контрфактическое развертывание смарт-аккаунта

Адрес кошелька ERC-4337 часто можно вычислить до развертывания контракта смарт-аккаунта.

Такой адрес называется контрфактическим.

До первой операции с абстракцией аккаунтов на вычисленный адрес кошелька можно отправлять криптоактивы.

Первая UserOperation содержит данные о развертывании аккаунта, включая адрес фабрики и данные инициализации.

EntryPoint использует вспомогательный контракт SenderCreator для вызова фабрики и создания смарт-аккаунта по ожидаемому адресу.

Развернутый адрес должен совпадать со значением поля

sender
в UserOperation.

Если аккаунт еще не существует, а в операции нет действительных данных для развертывания, проверка завершается неудачно.

EntryPoint v0.9 и initCode

В EntryPoint v0.9 изменена обработка данных развертывания, если аккаунт отправителя уже существует.

В более ранних версиях непустое

initCode
ожидалось только в операции, которая развертывала аккаунт.

Версия 0.9 может игнорировать данные развертывания, если контракт отправителя уже существует, и генерировать событие

IgnoredInitCode
.

Это помогает еще не развернутым аккаунтам подготавливать параллельные операции с разными каналами nonce.

Код аккаунта не должен исходить из того, что непустые данные развертывания всегда означают, что операция является первой для аккаунта.

При переходе на v0.9 разработчикам следует пересмотреть логику, основанную на этом прежнем предположении.

Предварительное финансирование газа

Бандлер оплачивает сетевую комиссию за транзакцию, вызывающую EntryPoint.

Поэтому EntryPoint должен убедиться, что каждая UserOperation сможет возместить максимальную ожидаемую стоимость.

На этапе проверки он рассчитывает необходимое предварительное финансирование на основе лимитов газа и параметров комиссий операции.

Для этой цели смарт-аккаунт может хранить депозит в EntryPoint.

Если депозита аккаунта недостаточно, при проверке аккаунт может перевести в EntryPoint дополнительные средства в нативной валюте.

Если операцию спонсирует пеймастер, используется его депозит.

При недостаточном предварительном финансировании операцию нельзя включить в блок.

Депозиты в EntryPoint

EntryPoint хранит депозиты для оплаты будущих расходов на газ UserOperation.

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

Функция

depositTo
добавляет средства на счет указанного аккаунта или пеймастера.

Функция

balanceOf
контракта EntryPoint показывает депозит сущности на оплату газа.

Уполномоченная сущность может использовать

withdrawTo
, чтобы вывести доступный депозит согласно правилам контракта.

Депозит не приносит доход и не является токенизированной инвестицией.

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

Что такое пеймастер?

Пеймастер — необязательный смарт-контракт, который соглашается покрывать расходы на газ для выбранных UserOperation.

Это позволяет приложению субсидировать действия пользователей или использовать другую схему комиссий.

Пеймастер размещает нативную валюту на своем депозите в EntryPoint.

Во время проверки EntryPoint вызывает

validatePaymasterUserOp
, чтобы узнать, принимает ли пеймастер на себя оплату операции.

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

Если пеймастер возвращает контекстные данные, после выполнения EntryPoint может вызвать его функцию

postOp
.

Пеймастер все равно оплачивает газ, если после успешной проверки вызов приложения смарт-аккаунтом завершается с ошибкой.

Депозиты пеймастера и стейк

Депозит пеймастера и его стейк выполняют разные функции.

Из депозита оплачиваются расходы на газ UserOperation.

Стейк блокируется как часть защиты системы от атак типа «отказ в обслуживании» и злоупотребления репутацией.

Функция

addStake
блокирует стейк и устанавливает период ожидания перед выводом.

Сначала пеймастер должен вызвать

unlockStake
, а затем дождаться окончания этого периода, чтобы вывести стейк.

Функция

withdrawStake
разблокирует стейк, который можно вывести.

Большой депозит сам по себе не означает, что требование к стейкингу выполнено.

Наличие стейка не заменяет депозит, необходимый для оплаты спонсируемого газа.

Подписи пеймастера в EntryPoint v0.9

EntryPoint v0.9 добавляет поддержку отдельного значения

paymasterSignature
.

В прежних процессах кошельку могло потребоваться дождаться полных данных пеймастера, прежде чем подписывать UserOperation.

Новая схема позволяет параллельно сформировать подпись кошелька и подпись пеймастера, если пеймастер поддерживает эту функцию.

Согласно заданной кодировке, отдельная подпись пеймастера не меняет хеш UserOperation.

Это может сократить время ожидания при отправке спонсируемых операций.

Прежде чем использовать такую схему, кошельки, пеймастеры и бандлеры должны поддерживать кодировку, специфичную для этой версии.

Стейкинг и репутация в EntryPoint

Проверка ERC-4337 может включать фабрики аккаунтов, пеймастеры, агрегаторы подписей и другие контракты.

Злоумышленники могут пытаться напрасно расходовать ресурсы бандлеров или делать операции недействительными после их попадания в мемпул.

Стейкинг позволяет некоторым сущностям получать более широкий доступ к хранилищу во время проверки, одновременно подвергая их последствиям для репутации.

Бандлеры могут отслеживать сущности, которые неоднократно вызывают сбои пакетных операций или ведут себя недобросовестно.

Конкретные офчейн-правила репутации могут различаться у разных реализаций бандлеров.

Стейкинг снижает стимулы к некоторым атакам, но не доказывает надежность пеймастера или фабрики.

Что такое симуляция UserOperation?

Симуляция — офчейн-процесс, с помощью которого бандлер прогнозирует, пройдет ли UserOperation проверку EntryPoint.

Бандлер выполняет вызовы и трассировки с учетом текущего состояния блокчейна, не сохраняя изменения.

Симуляция проверяет создание аккаунта, действительность nonce, авторизацию аккаунта, подтверждение пеймастера, наличие средств на газ и ограничения для логики проверки.

Обычно бандлер проводит симуляцию при первоначальном получении операции, еще раз при отборе в пакет и еще раз перед отправкой пакета.

Повторная симуляция необходима, поскольку до включения операции другая транзакция может изменить балансы, депозиты, nonce, код контракта или другие важные данные.

Успешная симуляция не гарантирует успешного выполнения самого действия в приложении.

Правила проверки ERC-7562

Программируемая проверка создает риски атак типа «отказ в обслуживании», отличающиеся от рисков, связанных с обычными подписями аккаунтов.

Вредоносный аккаунт может сделать проверку зависимой от нестабильного состояния или заставить бандлер потратить много ресурсов.

Правила проверки ERC-7562 ограничивают опкоды, доступ к хранилищу и другие виды поведения при проверке UserOperation в публичном мемпуле.

Бандлеры применяют эти правила офчейн до включения операций.

Ограничения распространяются на проверку, а не на каждое действие, выполняемое аккаунтом на основном этапе исполнения.

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

Выполнение UserOperation

После успешной проверки EntryPoint вызывает смарт-аккаунт для выполнения запрошенной операции.

Аккаунт интерпретирует свое поле

callData
в соответствии со своей реализацией.

Операция может вызывать один контракт, переводить криптоактивы или выполнять пакет из нескольких действий.

EntryPoint не определяет, является ли действие на уровне приложения разумным с финансовой точки зрения.

Он координирует авторизацию аккаунта, учет газа и выполнение согласно правилам контракта.

Даже правильно авторизованная операция может взаимодействовать с вредоносным токеном, небезопасным контрактом или невыгодной финансовой позицией.

Интерфейс IAccountExecute

Смарт-аккаунт может дополнительно реализовать интерфейс

IAccountExecute
.

Этот интерфейс предоставляет функцию

executeUserOp
, которая получает текущую упакованную UserOperation и ее хеш.

Вместо прямого вызова аккаунта с исходными данными выполнения EntryPoint может вызвать эту функцию.

Это позволяет аккаунту проверять более полную информацию о UserOperation во время выполнения.

Конкретный способ выполнения зависит от версии EntryPoint и интерфейсов, поддерживаемых аккаунтом.

Функция getCurrentUserOpHash

В EntryPoint v0.9 добавлена функция

getCurrentUserOpHash
.

Она позволяет контракту запросить хеш UserOperation, которая выполняется в данный момент.

Значение доступно только в соответствующем фрейме выполнения.

Вне выполнения UserOperation функция согласно заданному интерфейсу возвращает нулевое значение.

Эта функция может помочь сторонним контрактам привязать поведение во время выполнения к конкретной обрабатываемой UserOperation.

Разработчикам не следует считать нулевой результат вне фрейма выполнения доказательством надежности вызывающей стороны.

Расчет газа и бенефициар

EntryPoint измеряет газ, затраченный на обработку каждой UserOperation.

Он списывает расходы с соответствующего аккаунта или пеймастера с учетом фактической стоимости и лимитов комиссий операции.

Собранные комиссии перечисляются бенефициару, указанному в вызове

handleOps
бандлера.

Так возмещаются расходы стороне, которая отправила и оплатила блокчейн-транзакцию.

Неиспользованные предварительно внесенные средства остаются на депозите аккаунта или пеймастера в EntryPoint.

Ошибки оценки газа могут привести к отклонению операции, нехватке газа во время выполнения или резервированию средств в большем объеме, чем ожидалось.

Может ли одна неудачная операция нарушить работу всего пакета?

Сбой проверки может привести к исключению операции или отмене всей пакетной транзакции — в зависимости от того, когда обнаружена проблема и какая функция EntryPoint используется.

Именно поэтому бандлеры многократно моделируют операции перед отправкой пакета.

Даже после успешной проверки операция приложения может завершиться ошибкой.

Обычно сбой выполнения фиксируется как неудачная UserOperation, при этом газ все равно подлежит оплате.

Бандлерам необходимо тщательно формировать пакеты, чтобы изменение состояния не сделало неожиданно недействительной следующую операцию.

Приложениям следует проверять квитанции UserOperation и события успеха, а не считать, что включение в пакет гарантирует успешное выполнение запрошенного вызова.

События EntryPoint

EntryPoint генерирует события, позволяющие отслеживать активность UserOperation.

Событие UserOperation может содержать хеш операции, отправителя, пеймастера, nonce, статус выполнения, фактическую стоимость газа и использованный газ.

События развертывания аккаунта могут указывать на созданные смарт-аккаунты и их фабрики.

События пополнения и вывода фиксируют изменения предварительно внесенных средств на газ.

События стейкинга отражают внесение, разблокировку и вывод стейка.

В новых версиях могут добавляться события для функций, специфичных для версии, например для игнорирования данных развертывания или инициализации EIP-7702.

Индексаторам необходимо использовать определения событий, соответствующие отслеживаемой версии EntryPoint.

EntryPoint и EIP-7702

EIP-7702 позволяет внешнему аккаунту авторизовать делегирование полномочий кода смарт-контракту.

Актуальные версии ERC-4337 могут использовать это делегирование, чтобы добавить функции абстракции аккаунтов к существующему адресу.

В официальной спецификации EIP-7702 определен механизм авторизации на уровне транзакции.

Бандлер ERC-4337 может включить необходимые данные авторизации при отправке совместимого пакета UserOperation.

EntryPoint включает цель делегирования в соответствующую логику хеширования и инициализации.

EIP-7702 не отменяет необходимости защищать реализацию делегированного аккаунта, процесс авторизации и интеграцию с EntryPoint.

Диапазоны действия EntryPoint v0.9

Смарт-аккаунты и пеймастеры могут ограничивать период действия UserOperation.

В более ранних версиях EntryPoint эти ограничения задавались метками времени.

В версии 0.9 также поддерживаются диапазоны действия, заданные номерами блоков, если используется соответствующий флаг кодировки.

Это может быть полезно приложениям, чьи разрешения или действия уже определены относительно высоты блока.

Бандлеры должны корректно интерпретировать кодировку и не включать операции, которые еще недействительны или могут истечь до включения.

Детерминированное развертывание EntryPoint

В официальных развертываниях EntryPoint используются детерминированные методы создания контрактов, чтобы одна и та же версия могла иметь одинаковый адрес в поддерживаемых совместимых сетях.

Это может упростить настройку кошельков и бандлеров.

В документации по контракту EntryPoint объясняется, как официальный репозиторий использует фиксированную соль развертывания для локальных и совместимых развертываний.

Совпадение адреса само по себе не подтверждает подлинность: в другой сети могут быть другие код и история развертывания.

Разработчикам следует проверять байткод и хеш кода по этому адресу в каждой поддерживаемой сети.

EntryPoint и смарт-аккаунт

EntryPoint — общая инфраструктура, используемая многими смарт-аккаунтами.

Смарт-аккаунт — это контракт конкретного пользователя, в котором хранятся активы и определены правила авторизации.

Обычно EntryPoint не хранит балансы токенов пользователя и не заменяет адрес смарт-аккаунта.

Смарт-аккаунт решает, авторизована ли UserOperation.

EntryPoint обеспечивает общую структуру обработки, управления nonce, развертывания, учета газа и расчетов.

Уязвимость смарт-аккаунта может повлиять на этот аккаунт, даже если EntryPoint работает корректно.

Уязвимость в широко используемой версии EntryPoint может затронуть множество аккаунтов и пеймастеров, которые ей доверяют.

EntryPoint и бандлер

EntryPoint — ончейн-контракт.

Бандлер — офчейн-участник, который получает UserOperation и отправляет транзакцию в EntryPoint.

Бандлер выполняет симуляцию и оплачивает первоначальную сетевую комиссию за транзакцию.

EntryPoint проводит авторитетную ончейн-проверку и расчеты.

Бандлер не может сделать действительной подпись смарт-аккаунта, которая недействительна.

Однако бандлер может задержать операцию или отказаться ее включать, поэтому кошелькам полезно иметь доступ к нескольким совместимым способам отправки.

EntryPoint и пеймастер

EntryPoint обрабатывает операции и рассчитывает расходы на газ.

Пеймастер по желанию соглашается оплатить эти расходы для выбранных пользователей или действий.

Пеймастер определяет собственные правила спонсирования в рамках ограничений проверки ERC-4337.

У него должен быть достаточный депозит; кроме того, может потребоваться стейк.

EntryPoint не обязывает пеймастера спонсировать каждую действительную операцию.

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

EntryPoint и фабрика аккаунтов

Фабрика аккаунтов развертывает смарт-аккаунты.

Если еще не развернутый отправитель содержит корректные данные для создания аккаунта, EntryPoint вызывает фабрику через механизм SenderCreator.

Фабрика должна создать аккаунт по ожидаемому адресу.

Она также должна ограничивать чувствительные пути создания согласно требованиям безопасности ERC-4337.

EntryPoint не определяет реализацию смарт-аккаунта, его владельцев, модули или правила восстановления.

Эти свойства задаются фабрикой и данными инициализации.

Преимущества модели EntryPoint

EntryPoint предоставляет бандлерам единый интерфейс для множества типов смарт-аккаунтов.

Он позволяет аккаунтам задавать программируемую авторизацию вместо использования одной фиксированной модели подписей.

Он поддерживает контрфактическое развертывание аккаунта в рамках первой UserOperation.

Он позволяет пеймастерам спонсировать газ, применяя программируемые правила.

Он поддерживает объединение нескольких действий пользователей в одну базовую транзакцию.

Он отделяет авторизацию пользователя от аккаунта, который оплачивает сетевую комиссию за транзакцию.

Его можно развернуть в совместимых сетях без изменения уровня консенсуса.

Ограничения модели EntryPoint

EntryPoint добавляет дополнительные контракты, методы RPC, симуляции, параметры газа и роли инфраструктуры.

Кошельку необходимо взаимодействовать с совместимым бандлером и, возможно, пеймастером.

Разные версии EntryPoint могут разделять ликвидность, инструменты и поддержку мемпула.

Программируемая проверка создает риски атак типа «отказ в обслуживании», для снижения которых нужны строгие офчейн-правила.

Оценка газа сложнее, чем для обычной транзакции аккаунта.

Спонсируемая операция может завершиться неудачно, если пеймастер недоступен или отклоняет запрос.

Абстракция аккаунтов повышает гибкость кошельков, но не устраняет фишинг, вредоносные приложения, небезопасные подтверждения или ошибки смарт-контрактов.

Риски безопасности EntryPoint

EntryPoint является критически важной общей зависимостью, поскольку смарт-аккаунты и пеймастеры предоставляют ему специальные полномочия.

Ошибка в проверке, расчетах газа, депозитах, стейкинге, создании аккаунтов или выполнении может иметь широкие последствия.

Разработчикам следует использовать проверенные официальные развертывания, а не вносить произвольные изменения в основной контракт.

Кошелькам необходимо проверять адрес и версию доверенного EntryPoint.

Бандлеры должны последовательно применять правила проверки и репутации.

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

Фабрики должны проверять вызовы со стороны правильного контракта SenderCreator.

Риски подписи и авторизации

Абстракция аккаунтов поддерживает гибкие подписи, но сама по себе гибкость не гарантирует безопасную авторизацию.

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

Аккаунт должен привязывать авторизацию к правильным хешу операции, ID сети, EntryPoint, nonce, периоду действия и запрошенным вызовам.

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

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

Риски пеймастера

Пеймастер может применять ограничительные или централизованные правила спонсирования.

Он может прекратить спонсирование, если его депозит уменьшился, сервис недоступен или политика изменилась.

Из-за ошибок проверки или учета средств неправильно реализованный пеймастер может потерять депозит.

Вредоносный пользователь может попытаться израсходовать ресурсы пеймастера, не совершив полезных действий.

Злоумышленник, получивший контроль над ключом подписанта пеймастера, может одобрять операции вне предусмотренной политики.

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

Риски бандлера

Бандлер может подвергать UserOperation цензуре, задерживать, неправильно оценивать или отклонять ее.

Он также может предоставлять неточные оценки газа или устаревшую информацию о статусе.

Ончейн-проверка защищает смарт-аккаунт, однако при ненадежной работе выбранного бандлера пользовательский процесс все равно может завершиться неудачно.

Кошелькам следует предусмотреть обработку тайм-аутов, замену операций, изменение комиссий и отправку через альтернативного бандлера, если она поддерживается.

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

Риски оценки газа

В UserOperation задаются отдельные лимиты газа для проверки, выполнения, действий пеймастера и накладных расходов бандлера.

Слишком низкий лимит может привести к сбою проверки или выполнения.

Необоснованно высокий лимит может потребовать большего предварительного финансирования, хотя окончательный расчет должен учитывать фактическую стоимость согласно правилам протокола.

На

preVerificationGas
могут влиять сетевые расходы на передачу данных.

Для авторизации EIP-7702 также может потребоваться дополнительный учет расходов, которые EntryPoint не способен отслеживать напрямую.

Кошелькам следует использовать RPC-сервис, совместимый с выбранной версией EntryPoint и сетью.

Повторный вход и внешние вызовы

EntryPoint вызывает смарт-аккаунты, фабрики, пеймастеры, агрегаторы подписей и контракты приложений.

Эти внешние вызовы могут выполнять произвольный код контракта.

При реализации необходимо учитывать, что внешний код может завершиться ошибкой, израсходовать газ или попытаться повторно вызвать контракт.

Смарт-аккаунты и модули должны защищать собственные критические данные при выполнении, инициированном EntryPoint.

Логика пеймастера после выполнения не должна исходить из того, что запрошенное действие аккаунта завершилось успешно.

Пользовательские расширения абстракции аккаунтов требуют независимого анализа безопасности, даже если они используют прошедший аудит EntryPoint.

Как разработчикам интегрировать EntryPoint

Сначала следует выбрать поддерживаемую версию EntryPoint и проверить ее официальное развертывание в каждой сети.

Затем необходимо настроить смарт-аккаунт так, чтобы он доверял только одобренным адресам EntryPoint.

Третий шаг — реализовать

validateUserOp
с корректной проверкой подписи, nonce, периода действия и наличия средств.

Четвертый шаг — использовать правильные правила упаковки и хеширования UserOperation.

Пятый шаг — протестировать процессы для развернутых и еще не развернутых аккаунтов.

Шестой шаг — интегрировать бандлер, поддерживающий выбранную версию EntryPoint.

Седьмой шаг — протестировать симуляцию операций, их замену, квитанции о сбоях и оценку газа.

Восьмой шаг — проверить разрешения пеймастера, фабрики, модулей, обновления и восстановления.

Девятый шаг — протестировать вредоносные контракты проверки и выполнения.

Десятый шаг — отслеживать официальные релизы, аудиты и рекомендации по миграции.

Как пользователи взаимодействуют с EntryPoint

Большинству пользователей не нужно вручную вызывать EntryPoint.

Кошелек со смарт-аккаунтом формирует и отправляет UserOperation в фоновом режиме.

До создания базовой блокчейн-транзакции пользователь может увидеть хеш операции с абстракцией аккаунтов.

После включения обозреватель блокчейна может показать транзакцию с вызовом

handleOps
в EntryPoint.

Одна такая транзакция может содержать операции нескольких не связанных друг с другом смарт-аккаунтов.

Пользователю следует проверить результат каждой UserOperation, а не предполагать, что все действия в пакете завершились одинаково.

Пример транзакции EntryPoint

Предположим, Алиса использует смарт-аккаунт и хочет одним действием подтвердить использование токена и внести его в криптовалютное хранилище.

Ее кошелек формирует UserOperation, содержащую оба вызова.

Логика авторизации аккаунта одобряет операцию с помощью настроенного Алисой способа аутентификации.

Пеймастер соглашается спонсировать сетевой газ в соответствии со своей политикой.

Кошелек отправляет операцию совместимому бандлеру.

Бандлер моделирует проверку аккаунта и пеймастера.

Затем он включает операцию Алисы вместе с другими UserOperation в вызов функции

handleOps
контракта EntryPoint.

EntryPoint проверяет nonce, авторизацию аккаунта, одобрение пеймастера и наличие средств на депозите для оплаты газа.

Смарт-аккаунт выполняет подтверждение токена и внесение средств в хранилище.

EntryPoint списывает фактическую стоимость газа с депозита пеймастера и выплачивает средства бенефициару бандлера.

Если вызов хранилища завершается ошибкой, операция Алисы может быть отмечена как неуспешная, а израсходованный газ все равно подлежит оплате.

Распространенные ошибки при работе с EntryPoint

Частая ошибка — путать EntryPoint со смарт-аккаунтом пользователя.

Другая ошибка — отправлять UserOperation бандлеру, поддерживающему другую версию EntryPoint.

Третья ошибка — доверять адресу EntryPoint, не проверив развернутый код.

Четвертая ошибка — считать, что включение пакета в блок доказывает успешное выполнение вызова приложения.

Пятая ошибка — путать депозит для оплаты газа со стейком пеймастера.

Шестая ошибка — не включать ID сети и адрес EntryPoint в логику авторизации.

Седьмая ошибка — считать успешную симуляцию гарантией успешного выполнения.

Восьмая ошибка — позволять чувствительным функциям аккаунта принимать вызовы от любого контракта, выдающего себя за EntryPoint.

Девятая ошибка — считать, что спонсируемая транзакция не может повлечь списание токенов или другую комиссию.

Десятая ошибка — переходить на новый EntryPoint, не изучив поведение версии и отчеты о безопасности.

Часто задаваемые вопросы

Что такое Entry Point в ERC-4337?

EntryPoint — центральный смарт-контракт, который проверяет и выполняет UserOperation, а также рассчитывает связанные с ними расходы для совместимых кошельков с абстракцией аккаунтов.

EntryPoint — это кошелек?

Нет. Это общая инфраструктура, используемая кошельками со смарт-аккаунтами, бандлерами, фабриками и пеймастерами.

EntryPoint — это криптовалюта?

Нет. EntryPoint — программное обеспечение в виде смарт-контракта, которому не нужен собственный токен.

Какая версия EntryPoint является последней?

По состоянию на 16 июля 2026 года в официальном репозитории абстракции аккаунтов последним релизом указана EntryPoint v0.9.0.

Какой адрес у EntryPoint v0.9?

В официальном релизе v0.9 указан адрес

0x433709009B8330FDa32311DF1C2AFA402eD8D009
, однако перед его использованием разработчикам необходимо проверить сеть, код и официальную информацию о безопасности.

Могут ли существовать несколько версий EntryPoint?

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

Что такое UserOperation?

UserOperation — структурированный запрос на выполнение операции с абстракцией аккаунтов. Он содержит отправителя, nonce, вызовы, параметры газа, данные авторизации и необязательные данные о развертывании или спонсировании.

UserOperation — это транзакция Ethereum?

Нет. Бандлер объединяет одну или несколько UserOperation в обычную блокчейн-транзакцию, отправляемую в EntryPoint.

Что делает handleOps?

Функция проверяет и выполняет пакет UserOperation, а затем выплачивает выбранному бенефициару собранные расходы на газ.

Кто вызывает EntryPoint?

При отправке пакета UserOperation ончейн EntryPoint обычно вызывает бандлер.

Кто авторизует UserOperation?

Ее авторизует смарт-аккаунт с помощью собственной логики

validateUserOp
.

Может ли бандлер расходовать средства без одобрения аккаунта?

Корректно реализованный смарт-аккаунт отклоняет операции, не соответствующие его правилам авторизации.

Что такое депозит в EntryPoint?

Это предварительно внесенная в EntryPoint нативная валюта для оплаты будущих расходов на газ UserOperation.

Что такое стейк в EntryPoint?

Это заблокированная нативная валюта, используемая некоторыми сущностями, особенно пеймастерами, для защиты от атак типа «отказ в обслуживании» и для поддержания репутации.

Депозит пеймастера — это то же самое, что стейк?

Нет. Из депозита оплачивается газ, а стейк блокируется отдельно, с периодом ожидания перед выводом.

Что такое пеймастер?

Пеймастер — контракт, который соглашается покрывать расходы на газ для выбранных UserOperation.

Освобождает ли пеймастер от оплаты за все операции?

Нет. Он может отклонять операции, применять правила допуска или использовать другие способы возмещения расходов.

Что такое симуляция UserOperation?

Это офчейн-процесс, с помощью которого бандлер прогнозирует, пройдет ли операция проверку EntryPoint перед отправкой.

Гарантирует ли успешная симуляция выполнение операции?

Нет. Выполнение приложения все еще может завершиться ошибкой, а состояние блокчейна может измениться до включения операции.

Почему адрес EntryPoint включен в хеш операции?

Это помогает предотвратить повторное использование авторизации, предназначенной для одной версии EntryPoint, через другой контракт.

Почему в хеш операции включен ID сети?

Это помогает предотвратить автоматическое повторное использование одной и той же подписанной операции в другой блокчейн-сети.

Может ли EntryPoint развернуть смарт-аккаунт?

Если аккаунт отправителя еще не существует, EntryPoint может координировать его развертывание с помощью данных создания аккаунта и фабрики.

Что такое контрфактический смарт-аккаунт?

Это адрес смарт-аккаунта, вычисленный до развертывания его контракта.

Хранит ли EntryPoint токены пользователей?

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

Может ли одна транзакция EntryPoint включать операции нескольких пользователей?

Да. Вызов

handleOps
в одной транзакции может включать UserOperation нескольких не связанных друг с другом смарт-аккаунтов.

Может ли неудачная UserOperation расходовать газ?

Да. Проверка и неудачное выполнение расходуют газ, который все равно может быть списан с соответствующего аккаунта или пеймастера.

Поддерживает ли EntryPoint аккаунты EIP-7702?

В актуальных версиях EntryPoint поддерживаются совместимые процессы авторизации EIP-7702 и делегированных аккаунтов.

Что изменилось в EntryPoint v0.9?

К основным изменениям относятся параллельные подписи пеймастера, диапазоны действия по номеру блока, обновленная обработка данных развертывания, запросы текущего хеша UserOperation и дополнительные улучшения наблюдаемости.

Следует ли проекту развертывать собственный EntryPoint?

Производственные кошельки обычно используют проверенное каноническое развертывание, а собственные развертывания преимущественно нужны для тестирования и разработки.

Безопасен ли EntryPoint?

Официальный контракт тщательно проверен, однако безопасность по-прежнему зависит от конкретного развертывания, версии, смарт-аккаунта, бандлера, пеймастера, фабрики, модулей и интеграционного кода.

Заключение

EntryPoint — центральный ончейн-шлюз абстракции аккаунтов ERC-4337.

Он получает пакетные UserOperation, координирует проверку смарт-аккаунтов, при необходимости развертывает аккаунты, проверяет наличие средств на газ, выполняет одобренные вызовы и рассчитывает комиссии.

Бандлеры отправляют операции в EntryPoint, а смарт-аккаунты сохраняют контроль над собственными правилами авторизации.

Пеймастеры могут спонсировать газ, поддерживая депозиты и принимая операции согласно программируемым правилам проверки.

EntryPoint также управляет каналами nonce, депозитами, стейками, событиями операций и другими общими функциями абстракции аккаунтов.

По состоянию на 16 июля 2026 года в официальном репозитории абстракции аккаунтов последним релизом указана версия v0.9.0.

Для совместимости кошельки, бандлеры, пеймастеры, фабрики и реализации аккаунтов должны использовать одну и ту же версию EntryPoint.

Разработчикам необходимо проверять адрес и байткод, защищать проверку доверенных вызывающих сторон, соблюдать точные правила хеширования, моделировать операции и проверять каждый подключенный контракт.

Пользователям следует помнить, что спонсирование газа и программируемые кошельки повышают удобство, но не устраняют фишинг, сбои выполнения, риски подтверждения операций и уязвимости смарт-контрактов.

Понимание EntryPoint помогает пользователям криптовалют отличать общий контракт обработки ERC-4337 от смарт-аккаунта, бандлера, пеймастера и действий приложений, связанных с этой инфраструктурой.
Откат или возможность?
Откат или возможность?Откат или возможность?
Почему BTC ETF привлекли 2,4 млрд $ при ликвидациях

В тренде

Трендовые криптовалюты, которые в настоящее время привлекают значительное внимание рынка

Недавно добавленные

Криптовалюты недавно внесенные в листинг и доступные для торговли