Анализ технологии абстрагирования многосетевых счетов: Сравнение ERC-4337 и нативного AA

Раскрытие будущего: Анализ абстрагирования многосетевых счетов

С 8 по 11 июля в Брюсселе проходит конференция сообщества Ethereum, крупнейшее ежегодное событие Ethereum в Европе, сосредоточенное на технологиях и сообществе.

На этой конференции более 350 лидеров мнения из первой линии блокчейн-индустрии выступили с речами, в том числе с докладом под названием "Раскрытие будущего: анализ абстрагирования многоцепочечных счетов".

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

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

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

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

Вот полный текст выступления:

Здравствуйте, сегодня я представлю концепции ERC-4337 и нативного AA, обсудим их различия и подробно проанализируем основные отличия стандарта 4337 для L1 и L2.

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

1. Определение абстрагирования счета

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

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

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

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

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

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

  • структура userOp: в ERC-4337 пользователь отправляет структуру userOp в Bundler. Bundler собирает несколько userOp и отправляет их в контракт EntryPoint, вызывая функцию handleOps.
  • Контракт EntryPoint: этот контракт обрабатывает транзакции как операционная система, его основные функции включают:
    • Вызовите функцию validate в контракте счета, чтобы убедиться, что userOp получил разрешение владельца счета.
    • Взимание платы.
    • Вызовите функцию execute в контракте счета для выполнения целевой операции userOp.

3. Введение в нативную АА

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

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

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

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

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

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

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

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

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

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

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

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

2. Интерфейс контракта

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

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

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

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

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

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

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

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

4. Ограничения на шаги выполнения

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

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

5. Случайное число

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

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

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

7. Специальный дизайн в zkSync

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

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

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

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

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

1. Различия в соглашениях

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

2. Различия в адресах

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

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

Заключение

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

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

Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 7
  • Поделиться
комментарий
0/400
EthMaximalistvip
· 07-24 00:42
На конференции ничего не объяснили.
Посмотреть ОригиналОтветить0
RugDocScientistvip
· 07-23 14:29
Еще одна волна маркетингового курса啊
Посмотреть ОригиналОтветить0
AirdropSweaterFanvip
· 07-22 12:12
Мультицепочная AA играть круто.
Посмотреть ОригиналОтветить0
RiddleMastervip
· 07-22 12:11
Подпись абстрактна, это просто супер!
Посмотреть ОригиналОтветить0
liquidation_surfervip
· 07-22 12:00
Снова Клиповые купоны?
Посмотреть ОригиналОтветить0
RugPullProphetvip
· 07-22 11:51
Неизвестно, будет ли проект в следующем году.
Посмотреть ОригиналОтветить0
SnapshotDayLaborervip
· 07-22 11:46
Когда будет возможность сделать однокнопочный перевод?
Посмотреть ОригиналОтветить0
  • Закрепить