Мульти-цепочечное абстрагирование счета: исследование будущего шифрования инфраструктуры
Недавно в Брюсселе, Бельгия, прошла конференция сообщества Эфириума (EthCC 7), которая является крупнейшим ежегодным мероприятием по Эфириуму в Европе, сосредоточенным на технологиях и сообществе. На конференции более 350 ведущих экспертов в области блокчейна выступили с докладами, среди которых один из разработчиков представил доклад под названием "Раскрытие будущего: анализ многосетевого абстрагирования счета".
Ключевые моменты выступления
Абстрагирование счета (AA) в основном включает два ключевых момента: абстрагирование подписи и абстрагирование платежа. Абстрагирование подписи позволяет пользователям выбирать любую удобную для них механизму верификации, в то время как абстрагирование платежа позволяет использовать различные варианты оплаты. Эта гибкость обеспечивает более безопасный и лучший пользовательский опыт.
В ERC-4337 и родном AA функция точки входа на этапе "проверки" фиксирована, тогда как на этапе "выполнения" только точка входа в родном AA фиксирована. Ограничения проверки транзакций и этапы выполнения транзакций имеют свои особенности и ограничения в различных реализациях.
Внедрение ERC-4337 на EVM-совместимых цепочках имеет два ключевых отличия: различия в протоколе в дизайне Rollup и различия в способах вычисления адресов, что приводит к трудно заметным деталям разработки при реализации ERC-4337 между L1 и L2.
абстрагирование счета介绍
Что такое абстрагирование счета
Абстрагирование счета (AA) включает в себя два ключевых момента:
Абстрагирование подписи: пользователи могут выбрать любой желаемый механизм проверки, а не ограничиваться только некоторыми алгоритмами цифровой подписи (такими как ECDSA).
Абстрагирование платежей: пользователи могут использовать различные варианты оплаты, такие как использование активов 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 каждый счет является контрактом, и механизм обработки транзакций непосредственно встроен в протокол блокчейна.
Родное абстрагирование счета соответствует 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: проверка транзакций, оплата транзакций, выполнение транзакций
В 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 или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
17 Лайков
Награда
17
2
Поделиться
комментарий
0/400
OnChainArchaeologist
· 07-09 19:30
Много любви к этим шалостям.
Посмотреть ОригиналОтветить0
PriceOracleFairy
· 07-09 19:30
meh, aa это просто модная математика eth... но эта абстракция подписи выглядит довольно аппетитно, если честно
Мультисетевое абстрагирование счета: ключевые отличия ERC-4337 и нативного AA
Мульти-цепочечное абстрагирование счета: исследование будущего шифрования инфраструктуры
Недавно в Брюсселе, Бельгия, прошла конференция сообщества Эфириума (EthCC 7), которая является крупнейшим ежегодным мероприятием по Эфириуму в Европе, сосредоточенным на технологиях и сообществе. На конференции более 350 ведущих экспертов в области блокчейна выступили с докладами, среди которых один из разработчиков представил доклад под названием "Раскрытие будущего: анализ многосетевого абстрагирования счета".
Ключевые моменты выступления
Абстрагирование счета (AA) в основном включает два ключевых момента: абстрагирование подписи и абстрагирование платежа. Абстрагирование подписи позволяет пользователям выбирать любую удобную для них механизму верификации, в то время как абстрагирование платежа позволяет использовать различные варианты оплаты. Эта гибкость обеспечивает более безопасный и лучший пользовательский опыт.
В ERC-4337 и родном AA функция точки входа на этапе "проверки" фиксирована, тогда как на этапе "выполнения" только точка входа в родном AA фиксирована. Ограничения проверки транзакций и этапы выполнения транзакций имеют свои особенности и ограничения в различных реализациях.
Внедрение ERC-4337 на EVM-совместимых цепочках имеет два ключевых отличия: различия в протоколе в дизайне Rollup и различия в способах вычисления адресов, что приводит к трудно заметным деталям разработки при реализации ERC-4337 между L1 и L2.
абстрагирование счета介绍
Что такое абстрагирование счета
Абстрагирование счета (AA) включает в себя два ключевых момента:
Абстрагирование подписи: пользователи могут выбрать любой желаемый механизм проверки, а не ограничиваться только некоторыми алгоритмами цифровой подписи (такими как ECDSA).
Абстрагирование платежей: пользователи могут использовать различные варианты оплаты, такие как использование активов ERC-20 вместо оригинальных активов, или позволить третьим лицам спонсировать транзакции.
Эта гибкость обеспечивает более безопасный и оптимальный пользовательский опыт. Цель абстрагирования счета заключается в достижении этих двух ключевых моментов различными способами.
Введение в ERC-4337
В настоящее время в протоколе Ethereum существуют некоторые ограничения внешних собственных счетов (EOA), такие как фиксированные методы подписи и дизайн платежей. ERC-4337 решает эти проблемы, вводя более гибкое управление счетами и методы обработки транзакций.
структура userOp: в ERC-4337 пользователи отправляют структуру userOp в Bundler. Bundler собирает несколько userOp и отправляет их в контракт EntryPoint, вызывая функцию handleOps.
Контракт EntryPoint: этот контракт обрабатывает транзакции как операционная система, основные функции включают в себя:
Введение в нативное AA
В Ethereum счета делятся на EOA и контрактные счета. Однако в нативном AA каждый счет является контрактом, и механизм обработки транзакций непосредственно встроен в протокол блокчейна.
Дизайн AA в различных блокчейн-сетях:
Различия между ERC-4337 и нативным AA
роль операционной системы
AA OS необходимо решить следующие проблемы:
В ERC-4337 эти роли выполняются совместно через Bundler и Contract EntryPoint.
В оригинальном AA пользователи отправляют свои userOps оператору/сортировщику официального сервера, а не Bundler и EntryPoint Contract.
В StarkNet Sequencer отвечает за выполнение всех этих задач.
В zkSync основное отличие Era от других реализаций AA заключается в том, что оператор должен работать в сотрудничестве с загрузчиком (системным контрактом). Загрузчик открывает новый блок, определяет его параметры (включая параметры блока и другие параметры газа) и получает транзакции от оператора для проверки.
интерфейс контракта
Из-за наличия трех шагов интерфейс контрактов счета похож в разных реализациях, эти функции входной точки могут быть вызваны только AA OS:
В ERC-4337 и нативном AA функция точки входа на этапе "верификации" фиксирована, тогда как на этапе "исполнения" фиксированной является только точка входа в нативном AA.
Ограничения шагов проверки
Поскольку верификация транзакций не имеет ограничений по стоимости (по сути, верификация транзакций - это вызов функции просмотра), злоумышленник может атаковать пул памяти с помощью DoS-атаки, тем самым разрушая бандлер (EIP-4337) или оператора/сортировщика (родной AA).
EIP-4337 определяет, какие операции запрещены, а также как ограничить доступ к хранилищу. zkSync Era ослабляет использование некоторых OpCode:
Логика контракта может обращаться только к своим собственным слотам хранения. Если адрес контракта счета равен адресу A, он может обращаться к:
Логика контракта не может получить доступ к глобальным переменным, таким как номер блока. StarkNet также не позволяет внешним контрактам вызывать.
ограничения по этапам выполнения
В zkSync выполнение системных вызовов требует подтверждения наличия системных флагов. Например, единственный способ увеличить nonce — это взаимодействие с NonceHolder, в то время как развертывание контракта требует взаимодействия с ContractDeployer. Системные флаги обеспечивают осознанное взаимодействие разработчиков счетов с системными контрактами.
В ERC-4337 и StarkNet на этапе выполнения нет специальных ограничений.
случайное число
Используйте первую транзакцию для развертывания
специальный дизайн в 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 остается прежним.