Раскрытие будущего: Анализ абстрагирования многосетевых счетов
С 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 каждый счет является контрактом, и механизм обработки транзакций непосредственно встроен в протокол блокчейна.
Нативное абстрагирование счета следует 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: подтверждение транзакций, оплата транзакций, выполнение транзакций
В 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 или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
22 Лайков
Награда
22
7
Поделиться
комментарий
0/400
EthMaximalist
· 07-24 00:42
На конференции ничего не объяснили.
Посмотреть ОригиналОтветить0
RugDocScientist
· 07-23 14:29
Еще одна волна маркетингового курса啊
Посмотреть ОригиналОтветить0
AirdropSweaterFan
· 07-22 12:12
Мультицепочная AA играть круто.
Посмотреть ОригиналОтветить0
RiddleMaster
· 07-22 12:11
Подпись абстрактна, это просто супер!
Посмотреть ОригиналОтветить0
liquidation_surfer
· 07-22 12:00
Снова Клиповые купоны?
Посмотреть ОригиналОтветить0
RugPullProphet
· 07-22 11:51
Неизвестно, будет ли проект в следующем году.
Посмотреть ОригиналОтветить0
SnapshotDayLaborer
· 07-22 11:46
Когда будет возможность сделать однокнопочный перевод?
Анализ технологии абстрагирования многосетевых счетов: Сравнение 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)включает два ключевых момента: абстракция подписи и абстракция платежа.
Эта гибкость обеспечивает более безопасный и оптимальный пользовательский опыт. Цель абстрагирования счета заключается в достижении этих двух ключевых моментов различными способами.
2. Введение в ERC-4337
В настоящее время в Ethereum-протоколе существуют некоторые ограничения для внешних собственнических счетов (EOA), такие как фиксированные методы подписи и проектирование платежей. ERC-4337 решает эти проблемы, вводя более гибкое управление счетами и методы обработки транзакций.
3. Введение в нативную АА
В Ethereum счета делятся на EOA и контрактные счета. Однако в нативном AA каждый счет является контрактом, и механизм обработки транзакций непосредственно встроен в протокол блокчейна.
Дизайн AA в различных блокчейн-сетях:
Различия между 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 и нативном AA функция входной точки на этапе "проверки" фиксирована, в то время как на этапе "выполнения" фиксированной является только входная точка в нативном AA.
3. Ограничения шагов проверки
Поскольку проверка транзакций не имеет ограничений по затратам (по сути, проверка транзакций — это вызов функции просмотра), злоумышленник может атаковать пул памяти с помощью DoS-атаки, тем самым разрушая бандлер (EIP-4337) или оператор/сортировщик (нативный AA).
EIP-4337 определяет, какие операции запрещены, а также как ограничить доступ к памяти. zkSync Era ослабила использование некоторых кодов операций:
Логика контракта может обращаться только к своему собственному хранилищу. Если адрес контракта счета - это адрес A, он может получить доступ к:
Логика контракта не может получить доступ к глобальным переменным, таким как номер блока. StarkNet также не позволяет внешним контрактам вызывать.
4. Ограничения на шаги выполнения
В zkSync выполнение системных вызовов требует подтверждения наличия системных флагов. Например, единственный способ увеличить nonce — это взаимодействие с NonceHolder, а для развертывания контракта необходимо взаимодействовать с ContractDeployer. Системные флаги гарантируют, что разработчики счетов сознательно взаимодействуют с системными контрактами.
На этапе выполнения в ERC-4337 и StarkNet нет специальных ограничений.
5. Случайное число
6. Используйте первую транзакцию для развертывания
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.