Мультисетевое абстрагирование счета: ключевые отличия ERC-4337 и нативного AA

Мульти-цепочечное абстрагирование счета: исследование будущего шифрования инфраструктуры

Недавно в Брюсселе, Бельгия, прошла конференция сообщества Эфириума (EthCC 7), которая является крупнейшим ежегодным мероприятием по Эфириуму в Европе, сосредоточенным на технологиях и сообществе. На конференции более 350 ведущих экспертов в области блокчейна выступили с докладами, среди которых один из разработчиков представил доклад под названием "Раскрытие будущего: анализ многосетевого абстрагирования счета".

Ключевые моменты выступления

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

  • В ERC-4337 и родном AA функция точки входа на этапе "проверки" фиксирована, тогда как на этапе "выполнения" только точка входа в родном AA фиксирована. Ограничения проверки транзакций и этапы выполнения транзакций имеют свои особенности и ограничения в различных реализациях.

  • Внедрение ERC-4337 на EVM-совместимых цепочках имеет два ключевых отличия: различия в протоколе в дизайне Rollup и различия в способах вычисления адресов, что приводит к трудно заметным деталям разработки при реализации ERC-4337 между L1 и L2.

Будущее шифрования инфраструктуры? Анализ абстрагирования многоцепочных счетов

абстрагирование счета介绍

Что такое абстрагирование счета

Абстрагирование счета (AA) включает в себя два ключевых момента:

  1. Абстрагирование подписи: пользователи могут выбрать любой желаемый механизм проверки, а не ограничиваться только некоторыми алгоритмами цифровой подписи (такими как ECDSA).

  2. Абстрагирование платежей: пользователи могут использовать различные варианты оплаты, такие как использование активов ERC-20 вместо оригинальных активов, или позволить третьим лицам спонсировать транзакции.

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

Введение в ERC-4337

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

  • структура userOp: в ERC-4337 пользователи отправляют структуру userOp в Bundler. Bundler собирает несколько userOp и отправляет их в контракт EntryPoint, вызывая функцию handleOps.

  • Контракт EntryPoint: этот контракт обрабатывает транзакции как операционная система, основные функции включают в себя:

    • Вызовите функцию validate в контракте счета, чтобы убедиться, что userOp получил авторизацию владельца счета.
    • Взимание платы.
    • Вызов функции execute в контракте счета для выполнения целевой операции userOp.

Введение в нативное AA

В Ethereum счета делятся на EOA и контрактные счета. Однако в нативном AA каждый счет является контрактом, и механизм обработки транзакций непосредственно встроен в протокол блокчейна.

Дизайн AA в различных блокчейн-сетях:

  • ERC-4337 абстрагирование счета: Эфир, Arbitrum, Optimism, Base, Linea, Scroll, Polygon PoS
  • Родное абстрагирование счета соответствует ERC-4337: эпоха StarkNet и zkSync
  • Нативное абстрагирование счета с дизайном конфиденциальности: Aztec

Будущее шифрования инфраструктуры? Анализ абстрагирования многоцепочечных счетов

Различия между ERC-4337 и нативным AA

роль операционной системы

AA OS необходимо решить следующие проблемы:

  • Кто решает цену Gas?
  • Кто решает порядок сделок? Где находится пул памяти?
  • Кто вызывает функцию точки входа?
  • Что определяет процесс обработки транзакций?

В ERC-4337 эти роли выполняются совместно через Bundler и Contract EntryPoint.

В оригинальном AA пользователи отправляют свои userOps оператору/сортировщику официального сервера, а не Bundler и EntryPoint Contract.

В StarkNet Sequencer отвечает за выполнение всех этих задач.

В zkSync основное отличие Era от других реализаций AA заключается в том, что оператор должен работать в сотрудничестве с загрузчиком (системным контрактом). Загрузчик открывает новый блок, определяет его параметры (включая параметры блока и другие параметры газа) и получает транзакции от оператора для проверки.

интерфейс контракта

Из-за наличия трех шагов интерфейс контрактов счета похож в разных реализациях, эти функции входной точки могут быть вызваны только AA OS:

  • ERC-4337: проверка действий пользователя
  • zkSync: проверка транзакций, оплата транзакций, выполнение транзакций
  • StarkNet:execute、validate、validate_declare、validate_deploy

В ERC-4337 и нативном AA функция точки входа на этапе "верификации" фиксирована, тогда как на этапе "исполнения" фиксированной является только точка входа в нативном AA.

Ограничения шагов проверки

Поскольку верификация транзакций не имеет ограничений по стоимости (по сути, верификация транзакций - это вызов функции просмотра), злоумышленник может атаковать пул памяти с помощью DoS-атаки, тем самым разрушая бандлер (EIP-4337) или оператора/сортировщика (родной AA).

EIP-4337 определяет, какие операции запрещены, а также как ограничить доступ к хранилищу. zkSync Era ослабляет использование некоторых OpCode:

  • Логика контракта может обращаться только к своим собственным слотам хранения. Если адрес контракта счета равен адресу A, он может обращаться к:

    • Хранилище слота, принадлежащее адресу A
    • хранилище, принадлежащее любому другому адресу A
    • Хранилище слотов для адресов, отличных от других, keccak256(A || X): это означает прямое использование адреса в качестве ключа в отображении (например, отображение (address => value)), что эквивалентно доступу к слоту keccak256(A || X). Например, баланс активов в контракте ERC-20.
  • Логика контракта не может получить доступ к глобальным переменным, таким как номер блока. StarkNet также не позволяет внешним контрактам вызывать.

ограничения по этапам выполнения

В zkSync выполнение системных вызовов требует подтверждения наличия системных флагов. Например, единственный способ увеличить nonce — это взаимодействие с NonceHolder, в то время как развертывание контракта требует взаимодействия с ContractDeployer. Системные флаги обеспечивают осознанное взаимодействие разработчиков счетов с системными контрактами.

В ERC-4337 и StarkNet на этапе выполнения нет специальных ограничений.

случайное число

  • В ERC-4337 дизайн случайного числа точки входа различает 192-битное значение ключа и 64-битное случайное значение.
  • В системе контрактов NonceHolder в zkSync управляется nonce, что обеспечивает строгое увеличение, то есть случайное число увеличивается на 1.
  • В StarkNet nonce также строго увеличивается, но нет абстрагирования nonce, управляемого конкретным контрактом.

Используйте первую транзакцию для развертывания

  • ERC-4337 включает поле initcode в структуре userOp для развертывания отправителя (контракт счета) в его первом userOp.
  • В StarkNet и zkSync пользователи должны отправить первую транзакцию оператору/сортировщику для развертывания контракта счета.

специальный дизайн в zkSync

Если вы напрямую переведете ETH с EOA Ethereum на zkSync, не развертывая пользовательский контракт счета, вы получите стандартный счет с тем же адресом. Этот счет может работать как EOA Ethereum и также контролируется соответствующим закрытым ключом EOA Ethereum.

Этот тип счета имеет версию None, а не version1. Вы не можете вызвать функции DefaultAccount, так как в пространстве ядра не развернуто никакого кода.

Будущее шифрования инфраструктуры? Анализ абстрагирования многосетевых счетов

Различия между L1 4337 и L2 4337

Внедрение ERC-4337 на EVM-совместимых цепочках имеет два ключевых отличия: различия в протоколе и различия в адресах.

разница в протоколах

В дизайне Rollup уровень 2 (L2) должен загружать данные на уровень 1 (L1) для обеспечения безопасности и расчета. В контексте ERC-4337 расходы, связанные с этим процессом загрузки, такие как плата за безопасность L1 и плата за blob, должны быть включены в предварительную проверку Gas. Определение соответствующих расходов на загрузку в предварительной проверке Gas является серьезной задачей.

разница адресов

Способ кодирования адреса в функции create zkSync ERA отличается от Ethereum и OP сводки. Кроме того, StarkNet использует уникальную хэш-функцию для вычисления адреса. В контексте ERC-4337 на EVM-совместимых цепочках мы обычно предполагаем, что вычисление адреса на разных цепях является единообразным. Однако есть один трудновидимый нюанс, который может привести к различиям в адресах контрактов счетов между реализациями ERC-4337 в Ethereum и L2.

Ключевой вопрос заключается в добавлении новых опкодов в хардфорке. Например, если цепочка L2 не поддерживает Шанхайский хардфорк и версия EVM не указана во время компиляции, введение push0 приведет к изменению байт-кода, даже если код Solidity остается прежним.

Будущее шифрования инфраструктуры? Анализ абстрагирования многоцепочечных счетов

Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 2
  • Поделиться
комментарий
0/400
OnChainArchaeologistvip
· 07-09 19:30
Много любви к этим шалостям.
Посмотреть ОригиналОтветить0
PriceOracleFairyvip
· 07-09 19:30
meh, aa это просто модная математика eth... но эта абстракция подписи выглядит довольно аппетитно, если честно
Посмотреть ОригиналОтветить0
  • Закрепить