EIP-4337: все, что нужно знать о новом стандарте кошельков Ethereum

09.03.2023
29 мин
4626
4
EIP-4337: все, что нужно знать о новом стандарте кошельков Ethereum. Заглавный коллаж статьи.

Обновление EIP-4337 было представлено на конференции WalletCon, связанной с ETHDenver и развернуто в сети Ethereum 1 марта. Главным нововведением этого EIP стала реализация так называемой абстракции аккаунтов и появление нового стандарта кошелька, который по заверениям разработчиков поднимет уровень пользовательского опыта и сделает взаимодействие с блокчейном более удобным. В этой статье мы разберем что это за кошельки, чем отличаются от обычных и зачем вообще нужен EIP-4337.

Эта статья была подготовлена Incrypted и предназначена для образовательных целей. Мы надеемся, что материал поможет вам лучше понять и изучить криптовалютный рынок.

Важно: в статье мы используем понятие «смарт-кошелек» как один из наиболее удобных вариантов перевода понятия Contract Account, которое используется в технической документации EIP-4337.

Что такое смарт-кошельки и чем они отличаются от обычных

Чтобы лучше понять, на что направлен EIP-4337 и какие нововведения он предлагает, вернемся на шаг назад. До внедрения обновления в сети Ethereum существовало два типа кошельков:

  • External Owned Accounts (EOA): кошельки, для создания которых используется поставщик инфраструктуры. Это доминирующий тип кошельков, предоставляемых MetaMask и 99% других разработчиков. 
  • Contract Accounts (CA): это кошельки, которые управляются кодом в EVM, проще говоря — смарт-контракты. Они не требуют поставщика инфраструктуры для запуска и управления.

Доминирование EOA объясняется архитектурой самой сети, которая требует, чтобы для подписи транзакции использовался стандарт ECDSA. У смарт-контрактов нет возможности подписывать транзакции с использованием ECDSA, поэтому CA не могут от своего имени инициировать транзакцию. То есть для обычного пользователя они бесполезны в качестве кошельков. 

В то же время EOA используют монолитную логику обработки транзакций с использованием приватного и публичного ключа.  Из-за монолитной логики у разработчиков нет возможности кастомизировать его составляющие, как например, требования к идентификации. Именно поэтому любое блокчейн-приложение требует для взаимодействия EOA-кошелек с приватным ключом и публичным адресом. 

EIP-4337 должен устранить перевес EOA и сделать более удобными CA путем добавления в сеть Ethereum нового стандарта кошельков в форме смарт-контракта и нового слоя, который сделает возможной проведение и проверку транзакций без использования приватного и публичного ключа. Для этого разработчики реализовали так называемую абстракцию аккаунта (account abstraction) и этот термин стоит разобрать подробнее.

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

Понятие «абстракция аккаунта» ни о чем не говорит новичку и усложняет понимание. В информатике абстракцией называют разделение одного процесса на несколько частей, которые могут выполняться независимо. Проще говоря, процесс становится модульным и открывает возможности для конфигурации каждого модуля. Визуально это выглядит так:

Схематическое отображение абстракции процесса от сайта web3edge.io

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

Кроме того, под абстракцией аккаунта понимают разделение аккаунта и его владельца. На данный момент кошелек и пользователь по сути одно целое ведь только владелец сид-фразы или приватного ключа может отправлять активы и только обладатель публичного адреса может получать активы. Абстракция позволит запустить в качестве кошелька смарт-контракт, управляющийся кодом в EVM, а не связкой из публичного и приватного ключа. Это расширяет поддерживаемые методы аутентификации и функции безопасности кошелька.

Сравнение архитектуры EOA и AC кошельков от сайта web3edge.io

Как работают смарт-кошельки EIP-4337

EIP-4337 — это не первая попытка внедрить абстракцию аккаунтов и запустить смарт-кошельки в сети Ethereum. Виталик Бутерин впервые представил первую версию абстракции аккаунтов еще в 2016-м и с тех пор было предложено 5 различных EIP (86, 1014, 2938, 3074 и 4337) посвященных этому вопросу. Однако именно EIP-4337 представил концепцию, которая не требует модификации базового протокола Ethereum, что стало решающим фактором, поскольку для ее принятия не требуется хардфорк сети. 

Архитектура абстракции аккаунтов в EIP-4337 состоит из следующих основных элементов:

Схема работы EIP-4337 по данным сайта stackup.sh
  • UserOperation: так же называется псевдо-транзакцией. Аналог транзакции с использованием стандартного кошелька, но включает больше данных, чем обычная транзакция:
Список данных, включенных в UserOperation по данным сайта stackup.s
  • Bundler: узел, который отбирает UserOperation из мемпула, собирает их в пакеты и отправляет на проверку в EntryPoint. Предполагается, что функцию Bundler-ов будут выполнять действующие валидаторы Ethereum, за что смогут получать дополнительную награду в виде части комиссии за транзакцию.

Важно: поскольку EIP-4337 создает новый инфраструктурный слой поверх блокчейна Ethereum, у UserOperations свой мемпул, отличный от основного мемпула сети. Обычные валидаторы не имеют к нему доступа.

  • EntryPoint: смарт-контракт в сети Ethereum, отвечающий за проверку транзакций. Это ключевой элемент всей инфраструктуры EIP-4337, поэтому разработчики акцентируют внимание на безопасности и тщательном аудите смарт-контракта. EntryPoint выполняет сразу несколько функций, которые совокупно можно назвать «проверкой транзакции»:
Схема описания работы EntryPoint, опубликованная Виталиком Бутериным
  • Contract Account: это и есть смарт-кошелек, принадлежащий пользователю. Транзакция, проверенная через EntryPoint одновременно отправляется и для исполнения в блокчейн и на смарт-кошелек пользователя в инфраструктуре EIP-4337.

Опционально также могут быть развернуты:

  • Paymasters: это контракты-спонсоры, позволяющие оплачивать комиссию за транзакцию вместо отправителя или платить за газ в любых ERC-20 токенах. Так, P2E например, может в своей инфраструктуре развернуть Paymasters, чтобы игрокам не нужно было покупать ETH для оплаты газа.
  • Aggregators: агрегаторы подписей пользователя. Делают возможными так называемые атомарные транзакции, объединяющие несколько действий в одну транзакцию. На практике это позволяет взаимодействовать с dApps с минимальным количеством подписей. 

Жизненный цикл транзакции с использованием смарт-кошелька EIP-4337 выглядит следующим образом:

  1. Пользователь инициирует через приложение кошелька (сервис, предоставляющий интерфейс) UserOperation, которая отправляется в специальный мемпул.

Примечание: если это первая транзакция и у пользователя нет адреса смарт-кошелька, то EntryPoint развернет его автоматически. 

  1. Bundler, функции которого исполняет валидатор сети, отбирает из этого мемпула транзакции и формирует их в пакеты.
  2. Пакеты UserOperations отправляются в смарт-контракт EntryPoint. Смарт-контракт проверяет возможность выполнения транзакций и наличие у пользователя или Paymaster достаточного количества ETH для оплаты газа. 
  3. Если все условия соблюдены, то транзакция отправляется на Contract Account получателя и валидаторам Ethereum для включения в блокчейн. 

Визуально это выглядит так:

Жизненный цикл транзакции EIP-4337 от сайта web3edge.io

На следующей схеме видны основные отличия между жизненным циклом транзакции с использованием стандартного кошелька и смарт-кошелька EIP-4337:

Сравнение цикла стандартных транзакций и транзакций проведенных через смарт-кошелек от сайта web3edge.io

Вместе с тем, дизайн смарт-кошельков, который предлагает EIP-4337, имеет и некоторые проблемы:

  1. Повышенные расходы на газ: отправка и проверка транзакций через CA требует немного больше газа, чем те же действия с OEA. На данный момент это может стать серьезной проблемой для Ethereum, поскольку в основной сети все еще сохраняется сравнительно высокая плата за газ. 
  2. Возможности для DoS-атак: хотя смарт-кошельки защищены от DoS-атак специальным механизмом удержания максимальной стоимости газа до завершения транзакций, но, по словам Виталика, модульная структура процедуры проверки оставляет некоторые возможности для перегрузки инфраструктуры.

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

Зачем это нужно: преимущества кошельков EIP-4337

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

  • Различные варианты аутентификации: абстракция логики проверки транзакций позволяет гибко настраивать варианты аутентификации пользователя. Для этого может использоваться доверенная электронная почта, биометрический аутентификатор, или, например, устройство из белого списка. То есть любой гаджет можно превратить в своего рода аналог приватного ключа.

Примечание: важным прорывом считается возможность социального восстановления кошелька. С помощью этой функции пользователь может вернуть доступ к кошельку через список доверенных кошельков или email-адресов, например, друзей или родных.

  • Гибкие механизмы оплаты комиссии: спонсорские контракты Paymaster позволяют переложить обязанность по оплате газа с отправителя на третью сторону и создавать более сложные модели оплаты газа (например, в токенах ERC-20 или со скидкой). То есть пользователю теперь не нужно покупать ETH, чтобы взаимодействовать с dApps, что снижает входной порог для новичков. 
  • Расширенные настройки безопасности аккаунта: дополнительные настройки безопасности могут включать, кроме способа аутентификации, также мультиподписи, дневной лимит расходов или, например, тайм-лаги для транзакций. Это поможет защитить средства пользователя даже если злоумышленник получил доступ к аккаунту. 
  • Атомарные мультиоперации: за эту функцию отвечают контракты Agreggators, описанные в предыдущем разделе. Благодаря им можно забыть о многочисленных подписях, которые были нужны, чтобы провести первый своп на DEX, покупку NFT на маркетплейсе или другое взаимодействие с dApps. 

И это значит, что времена, когда для того, чтобы залететь в обычную P2E нужно было создать кошелек, купить ETH, подписать несколько транзакций и постараться не дать доступ к активам скамному смарт-контракту остались позади. Кошельки нового типа по функционалу будут более похожи на учетные записи Google или Apple ID, чем на MetaMask и Ledger. 

EIP-4337 — это важный шаг на пути к массадопшну, поскольку новые аккаунты дают более привычный и понятный пользовательский опыт. Маловероятно, что люди, забывающие пароль от Twitter будут использовать технологию, требующую запомнить 12 слов и понять, что такое приватный и публичный ключ.

Как создать смарт-кошелек

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

  • Stackup: тулкит для пользователей и разработчиков позволяющий развернуть и гибко настроить свой CA. 
  • ArgentX: популярный кошелек с функцией социального восстановления доступа, правда не для Ethreum, а для zkSync. Не совсем EIP-4337, но может быть полезно.
  • Soulwallet: должен предоставить удобный интерфейс для создания и управления кошельком, но пока на стадии разработки. Можно записаться в лист ожидания.
  • Unipass: мультичейновый и некастодиальный кошелек с функцией социального восстановления. Самое удобное решение из существующих на данный момент.

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

Теперь пошагово рассмотрим, как создать смарт-кошелек с использованием решения от Unipass:

  1. Переходим на Unipass и логинимся через Google или электронную почту:
Создание кошелька от Unipass. Шаг 1
  1. Устанавливаем пароль:
Создание кошелька от Unipass. Шаг 2
  1. Все. Ваш кошелек создан, запоминать и вводить сид-фразу не нужно:
Создание кошелька от Unipass. Шаг 3
  1. В настройках можно установить двухфакторную аутентификацию, а также выбрать Guardians:
Создание кошелька от Unipass. Шаг 4

Примечание: guardians это доверенные электронные почты, владельцы которых помогут вам восстановить кошелек в случае потери пароля или отсутствия доступа к 2FA. По умолчанию Guardian-ом является тот e-mail с которым вы логинились на сайте. 

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

Выводы

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

  • идентификация без приватных ключей/сид-фразы;
  • оплата газа третьей стороной;
  • гибкие настройки безопасности и доступа к аккаунту;
  • атомарные транзакции для удобного взаимодействия с dApps.

На рынке уже появилось несколько сервисов, предоставляющих для развертывания и настройки смарт-кошелька удобный интерфейс и набор инструментов, но пока технология на раннем этапе развития, поэтому клиентов немного. Кроме того, не все dApps поддерживают новый стандарт кошельков. 

По итогу, EIP-4337 может стать одним из ключевых обновлений для массового внедрения блокчейна и криптовалют в повседневную жизнь. Он позволит создавать и управлять криптовалютными кошельками также просто, как учетной записью в Google или счетом через приложение онлайн-банкинга. Похоже, что эпоха 12-словных seed-фраз в тетрадке и публичных/приватных ключей в таблицах Exel подходит к концу.

Для лучшего усвоения материала рекомендуем посмотреть видео на эту тему:

Как вам статья?

4
0

статьи на эту же тему

Фарминг, рестейкинг и торговля с...
avatar Dmitriy Yurchenko
08.04.2024
Что такое Puffer Finance: обзор проекта...
avatar Nikita Tipikin-Holovko
05.04.2024
Распределение аирдропов на базе...
avatar Denis Solomyanyuk
29.03.2024