Мультицепочечное абстрагирование счета: обсуждение будущего шифрования инфраструктуры
С 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 и контракты. В нативном абстрагировании счета каждый счет представляет собой контракт, и механизм обработки транзакций непосредственно встроен в протокол блокчейна.
Следование абстрагированию счета по стандарту 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: проверка транзакций, оплата транзакций, выполнение транзакций
В 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 или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
7 Лайков
Награда
7
4
Поделиться
комментарий
0/400
SigmaValidator
· 16ч назад
абстрагирование счета это просто для веселья
Посмотреть ОригиналОтветить0
NeverPresent
· 16ч назад
Платежная абстракция так бычара?
Посмотреть ОригиналОтветить0
GateUser-beba108d
· 16ч назад
Ничего не стоит, только болтовня.
Посмотреть ОригиналОтветить0
StableNomad
· 16ч назад
мех, очередной разговор про AA... если честно, напоминает о "безопасности" Celsius.
Многоцепочечное абстрагирование счета: различия и вызовы 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)主要包含两个关键点:
Эта гибкость значительно повышает безопасность и пользовательский опыт. Абстрагирование счета нацелено на достижение этих двух ключевых целей различными способами.
2. Анализ ERC-4337
В настоящее время в протоколе Ethereum существуют некоторые ограничения для внешних собственнических счетов (EOA), такие как фиксированные методы подписи и дизайн платежей. ERC-4337 решает эти проблемы, вводя более гибкие методы управления счетами и обработки транзакций.
3. Введение в нативное абстрагирование счета
В Ethereum счета делятся на EOA и контракты. В нативном абстрагировании счета каждый счет представляет собой контракт, и механизм обработки транзакций непосредственно встроен в протокол блокчейна.
Дизайн 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) или операторов/сортировщиков (родное абстрагирование счета).
EIP-4337 определяет запрещенные операции и как ограничить доступ к хранилищу. zkSync Era ослабляет некоторые ограничения на использование OpCode:
4. Ограничения по выполнению шагов
В zkSync выполнение системных вызовов требует подтверждения наличия системного флага. Например, единственный способ увеличить nonce — это взаимодействие с NonceHolder, тогда как для развертывания контракта необходимо взаимодействие с ContractDeployer. Системные флаги гарантируют, что разработчики счетов сознательно взаимодействуют с системными контрактами.
В ERC-4337 и StarkNet на этапе выполнения нет специальных ограничений.
5. Случайное число
6. Используйте первую транзакцию для развертывания
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 остается прежним.