Многоцепочечное абстрагирование счета: различия и вызовы ERC-4337 и нативного AA

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

С 8 по 11 июля 2024 года в Брюсселе, Бельгия, пройдет крупнейшее ежегодное мероприятие по Ethereum в Европе — Конференция сообщества Ethereum (EthCC), сосредоточенная на технологиях и развитии сообщества.

На этой конференции сообщества Ethereum (EthCC 7) выступило более 350 лидеров мнений из первой линии блокчейн-индустрии. Разработчик imToken Labs Альфред был приглашён для участия и выступил с докладом под названием "Раскрытие будущего: анализ абстрагирования многоцепочечных счетов".

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

Обзор ключевых моментов выступления

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

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

  • При реализации ERC-4337 на EVM-совместимых цепочках существуют два ключевых различия: различия в протоколе в дизайне Rollup и различия в способе вычисления адресов. Эти различия приводят к появлению некоторых легко упускаемых из виду деталей разработки при реализации ERC-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 в различных блокчейн-сетях:

  • ERC-4337 абстрагирование счета: Эфириум, Arbitrum, Optimism, Base, Linea, Scroll, Polygon PoS
  • Следование абстрагированию счета по стандарту ERC-4337: StarkNet и zkSync Era
  • Нативное абстрагирование счета с дизайном конфиденциальности: 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:выполнить、подтвердить、подтвердить_объявление、подтвердить_развертывание

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

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

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

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

  • Логика контракта может обращаться только к своему собственному хранилищу. Если адрес контракта счета - это адрес A, он может получить доступ к:
    • Хранилище, принадлежащее адресу A
    • хранилище слота, принадлежащее любому другому адресу A
    • Хранилище слота keccak256(A || X), принадлежащее любому другому адресу: это означает прямое использование адреса в качестве ключа в отображении, что эквивалентно доступу к слоту 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 с EOA Ethereum на zkSync, не требуется развертывание настраиваемого контрактного счета, вы получите учетную запись по умолчанию с тем же адресом. Этот счет может функционировать как EOA Ethereum и контролироваться соответствующим приватным ключом EOA Ethereum.

Этот тип счета является версией 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 остается прежним.

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

Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 4
  • Поделиться
комментарий
0/400
SigmaValidatorvip
· 16ч назад
абстрагирование счета это просто для веселья
Посмотреть ОригиналОтветить0
NeverPresentvip
· 16ч назад
Платежная абстракция так бычара?
Посмотреть ОригиналОтветить0
GateUser-beba108dvip
· 16ч назад
Ничего не стоит, только болтовня.
Посмотреть ОригиналОтветить0
StableNomadvip
· 16ч назад
мех, очередной разговор про AA... если честно, напоминает о "безопасности" Celsius.
Посмотреть ОригиналОтветить0
  • Закрепить