Краткое и простое руководство по абстракции аккаунта и предложению EIP-4337

Автор: Киви Яо, исследователь OKX Ventures

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

Хотите узнать больше? Мы расскажем все об абстракции аккаунта и EIP-4337.

Что такое абстракция аккаунта?

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

Чем полезна АА?

AA активно поддерживается сообществом Ethereum, поскольку она упрощает весь процесс управления аккаунтами. Среди ее преимуществ большая гибкость ончейн-активности и больше возможностей обеспечения безопасности. Благодаря этим улучшениям, AA существенно улучшает общий опыт взаимодействия с экосистемой Ethereum, так как устраняет многочисленные неудобства и проблемы.

История Ethereum и АА

Прежде чем перейти к истории АА, давайте разберемся с различными предложениями по улучшению Ethereum (EIP), которые играют важную роль в появлении АА.

EIP-2938 предполагает наделение контрактных аккаунтов «верхнего уровня» возможностью платить комиссии и выполнять транзакции. В EIP-3074 представлены два новых кода операций (OpCodes) — AUTH и AUTHCALL — позволяющие EOA делегировать свои действия контракту. В результате у разработчиков появляется более гибкая среда для создания объектов транзакций и механизмов верификации.

EIP-4337 создает мемпул пользовательских операций (user ops). Он представляет собой новую операционную логику, которая заменяет текущий мемпул транзакций и позволяет применять AA.

Хотя AA впервые упоминалась как часть предложений EIP-2938 и EIP-3074 еще в 2020 году, эти изменения в конечном итоге были отложены. Это было связано с необходимостью масштабных изменений в протоколе Ethereum. С появлением EIP-4337 абстракция аккаунта станет возможной без необходимости изменения протокола.

Сравнение с другими решениями абстракции аккаунта

Хотя предложение EIP-4337 может показаться сложным новичкам в Ethereum, предыдущее решение AA — EIP-3074 — предполагало введение двух новых кодов операций. Поскольку это требовало обширных изменений на уровне консенсуса в Ethereum, предложение было приостановлено.

Подробный анализ EIP-4337

Core components of ERC-4337
An illustration showing the core components of ERC-4337

Источник: OKX Ventures

Поскольку EIP-4337 является последним предложением по добавлению AA, важно понять его суть и разницу между EIP-4337 и его предшественниками. Вот несколько ключевых терминов:

  • UserOperation — это объект, с помощью которого пользователь осуществляет отправку транзакции

  • EntryPoint (точка входа) — это контракт, который выполняет пакетные транзакции пользовательских операций

  • Упаковщик — это нода, которая обрабатывает пользовательские операции в одной транзакции и добавляет транзакции точки входа в блок, пока они еще действительны

  • Контракты кошелька — это аккаунты смарт-контрактов, принадлежащие пользователям

  • Фабрика кошельков — это смарт-контракт, который может создавать новые кошельки смарт-контрактов по запросу

  • Агрегаторы — это вспомогательные контракты, которым аккаунты доверяют проверку агрегированных подписей. Затем упаковщики вносят в белый список поддерживаемые агрегаторы.

  • Казначеи — это контракты, отвечающие за размещение пользовательской логики в блокчейне. Это включает в себя обеспечение гибкости оплаты газа в любой валюте и в любой сети.

EIP-4337 упрощает процесс AA за счет внедрения упаковщиков, контракта точки входа, казначея, фабрики кошельков, агрегатора подписей и пользовательских операций.

Когда пользователь хочет отправить транзакцию, он создает пользовательскую операцию. В ней содержится вся информация, необходимая для отправки транзакции, но нет подписи.

Пользовательские операции затем отправляются в упаковщик. Он представляет собой смарт-контракт, который группирует пользовательские операции в одну транзакцию. Затем упаковщик отправляет объединенную транзакцию в контракт точки входа, который идентифицирует и проверяет пользовательские операции, связанные с кошельками смарт-контрактов.

Наконец, после проверки кошельки смарт-контрактов, связанные с пользовательскими операциями, запускают функцию ExecuteUserOp, которая выполняет транзакции.

Понимание потока транзакций

Вот пример, как будет происходить транзакция в рамках нового предложения с поддержкой AA.

Начало транзакции

Аккаунт выражает свое намерение, создавая пользовательскую операцию. Пользовательская операция может получить доступ к данным, связанным с адресом отправителя, включая «maxFeePerGas» и «maxPriorityFee». Что касается доступа к полю «подпись», то каждый случай доступа регулируется аккаунтом, а не существующим протоколом. Каждая пользовательская операция затем отправляется в выделенный мемпул для пользовательских операций.

Отправка транзакций

Пользовательские операции затем обрабатываются валидаторами, которые объединяют их в отдельный мемпул. После этого упаковщик добавляет пользовательские операции в блок. В это время транзакции точки входа по-прежнему считаются действительными. Даже если упаковщик не является создателем блоков, он может этого добиться, взаимодействуя с инфраструктурой построения блоков. Некоторые примеры такой инфраструктуры включают mev-boost, разделение инициатора и упаковщика (proposer-builder separation) и экспериментальные RPC API eth._sendRawTransactionConditional.

Идентификация транзакций

Затем пользовательские операции передаются в контракт точки входа, который выполняет пакеты пользовательских операций. Чтобы принять пользовательские операции, упаковщик должен использовать функцию validateUserOp для проверки подписей. После успешного завершения упаковщики вносят поддерживаемый контракт точки входа в белый список.

Выполнение транзакций

Наконец, транзакция завершается кошельком смарт-контрактов, который выполняет функцию ExecuteUserOp. Упаковщики упаковывают набор этих объектов пользовательских операций в транзакцию и инициируют вызов функции в смарт-контракте handleOps EntryPoint. Затем эта транзакция включается в блок.

Сравнение криптокошельков EOA, MPC и AA

Хотите узнать больше о различиях между типами криптокошельков? Вот полезная таблица, в которой собраны сходства и различия.

Кошелек ЕОА

Кошелек MPC

Кошелек АА

Тип аккаунта

EOA

EOA

CA

Стоимость создания

Низкая

Низкая

Высокая

Плата за газ

Низкая

Низкая

Высокая

Способ оплаты газа

Одновалютный

Одновалютный

Мультивалютный, позволяет использовать сторонние токены

Пакетные транзакции

Нет

Нет

Доступно

Метод подписи

ECDSA

ECDSA

Различные методы подписи

Управление закрытыми ключами

Обязательно

Обязательно

Не требуется

Восстановление кошелька

Нет

Нет

Доступно

Требование аудита

Базовый аудит безопасности

Политика офчейн-авторизации подписи, необходимо учитывать прозрачность

Требуется аудит ончейн-контрактов и пула спроса

Безопасность

Нет стандарта, низкий уровень безопасности

Возможное автономное восстановление на доверенных устройствах

Безопасность на уровне сети достигнута после EIP-4337

Совместимость с экосистемой

Сильная

Слабая

Умеренная

Устранение критического компонента отказа

Невозможно

Возможно

Возможно

Чем EIP-3074 АА отличается от EIP-4337 АА?

Предложение EIP-3074 было приостановлено, поскольку это был ключевой EIP и требовались изменения на уровне консенсуса. Чтобы аккаунты EOA могли использовать контракт, необходимо было ввести два новых кода операций. У версии абстракции аккаунта в предложении EIP-3074 имеются свои преимущества и недостатки.

Преимущества

Самым большим фактором в пользу AA в рамках EIP-3074 является то, что она позволяет делегировать контроль над аккаунтом с внешним владельцем контракту. Это дает разработчикам гибкую среду для разработки новых схем транзакций для EOA, таких как пакетная торговля, упаковка и гибкая оплата газа.

Еще одним преимуществом является то, что решение AA в EIP-3074 предполагает использование контрактов активатора, которые принимают оплату не только в ETH, но и других токенах. Эти посредники, не требующие доверия, выполняют транзакции между спонсорами и спонсируемыми.

Кроме того, решение AA в EIP-3074 позволяет любому аккаунту EOA функционировать как кошелек смарт-контрактов без развертывания контракта.

Недостатки

Одна из главных причин, по которой EIP-3074 не пользуется популярностью среди сообщества Ethereum, заключается в том, что он предполагает изменения на уровне консенсуса. Это может иметь катастрофические последствия, поскольку для решения любых проблем, возникающих из-за изменений уровня консенсуса, может потребоваться хардфорк.

Поскольку EIP-3074 дает EOA характеристики CA, он по-прежнему использует фиксированную подпись ECDSA в механизме подписи. Это предотвращает использование произвольных подписей.

Внедрение EIP-5003

Хотя реализация EIP-3074 была приостановлена, это не означает, что от предложения отказались полностью. В EIP-5003 представлен код операции AUTHUSURP, который развертывает код по авторизованным адресам EIP-3074.

EIP-5003 работает вместе с EIP-3607 для отзыва полномочий исходного ключа подписи для EOA. Например, EOA «один» уполномочил адрес «два» действовать от его имени в соответствии с EIP-3074. Благодаря коду операции AUTHUSURP второй адрес может устанавливать свои коды EOA, что позволяет существующему EOA обновиться до CA и дает ему возможность перейти от подписей ECDSA к более эффективному и безопасному методу подписи.

Заключение

Ethereum продолжает внедрять инновации в стремлении массового распространения криптовалют. И мы видим, что решение абстракции аккаунта в EIP-4337 решает множество текущих проблем. У АА имеются такие преимущества, как более широкие возможности безопасности и гибкость оплаты газа, которые значительно снизят барьер входа при взаимодействии с экосистемой Ethereum.

Следите за новостями и узнайте, как OKX интегрирует EIP-4337 в свой мультичейн-кошелек.

Дисклеймер
В данной статье может содержаться информация о недоступных в вашем регионе продуктах. Она представлена исключительно в информационных целях без принятия ответственности за ошибки или упущения. Статья отражает личные взгляды автора(ов) и не выражает мнение компании OKX. Она не предназначена для консультирования, в частности не является: (i) советом или рекомендацией по инвестициям; (ii) предложением или приглашением купить, продать или удерживать цифровые активы; (iii) финансовой, бухгалтерской, юридической или налоговой консультацией. Цифровые активы, в частности стейблкоины и NFT, несут высокие риски, могут сильно колебаться в цене и даже полностью ее терять. Нужно тщательно взвесить оправданность торговли цифровыми активами или владения ими с учетом своего финансового положения. При возникновении вопросов рекомендуем проконсультироваться по конкретной ситуации у юридического, налогового или инвестиционного специалиста. На каждую функцию OKX Web3, в частности OKX Web3-кошелек и OKX NFT-маркетплейс, распространяются отдельные условия предоставления услуг, которые приведены на www.okx.com.
© OKX, 2023. Эту статью можно воспроизводить или распространять как полностью, так и в цитатах объемом не более 100 слов при условии некоммерческого использования. При любом воспроизведении или распространении полного ее содержания нужно четко указать: «Разрешение на использование получено от владельца авторских прав (© 2023) на эту статью — OKX». Цитаты необходимо приводить со ссылкой на название статьи и авторство, например: «Название статьи, [имя автора], © OKX, 2023». Использование статьи в производных и других работах не допускается.
Развернуть
Похожие статьи
Показать еще
Показать еще