Инфраструктура кошелька: Доверяя следующему поколению Dapps

Средний1/13/2024, 7:27:40 AM
Эта статья знакомит с абстракцией учетной записи и ее преимуществами, инфраструктурой кошелька и обзором стека AA. Она также охватывает развивающиеся разработки dapp, шаблоны развития кошелька и их влияние, текущие вызовы

Инфраструктура кошелька играет решающую роль в разблокировке веб3 опыта для следующего поколения dapp.

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

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

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

Абстрагирование учетной записи: Что, Зачем и Как

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

С традиционными учетными записями (EOA) приватный ключ сохраняет единоличный и полный контроль над связанной с ним учетной записью. Строгое однозначное отображение между приватным ключом и учетной записью означает, что:

Пользователям разрешено использовать специализированные решения для управления ключами (например, Metamask, Ledger) при взаимодействии с блокчейном.

Нет способа обжалования потери закрытого ключа, и ключ, управляющий учетной записью, нельзя заменить.

Все действия, инициированные этим закрытым ключом, рассматриваются как равные, от создания бесплатного NFT до перемещения миллионов долларов.

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

Мы можем дополнительно разбить его выгоды, изучая, что абстрагируется.

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

ERC-4337 был представлен в 2021 году как стандартизированный способ сделать это без изменений в основном протоколе. Однако некоторые проекты уже реализовывали преимущества AA задолго до того, как стандарт был полностью разработан.

Безопасный мультиподписной кошелек был запущен в 2017 году и вырос до обеспечения безопасности активов на сумму более $50 млрд для DAO, бизнеса и частных лиц.

Мобильный кошелек Argent работает на умных контрактах с 2018 года

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

Для этого требовалось создание и поддержание специализированной инфраструктуры ретрансляции со стороны соответствующего проекта.

Введите ERC-4337. Стандарт предлагает децентрализованную и устойчивую к цензуре альтернативу для уровня ретрансляции, определяя интерфейс для учетных записей, платильщиков и агрегаторов подписей для взаимодействия с сторонними ретрансляторами через общий альтернативный мемпул транзакций с абстрактными учетными записями («Операции пользователя»).

Релеи («связующие») объединяют несколько UserOps вместе в транзакцию для отправки в контракт одиночного входа, который впоследствии проверяет, будут ли оплачены сборы (самим счетом или через платильщиков) и выполняет соответствующие пользовательские операции в умных счетах.

Мы можем сопоставить это с тем, как происходит валидация и выполнение на цепочках, которые предлагают нативную абстракцию учетной записи и, таким образом, не требуют дополнительных реле (например, zkSync* и Starknet), а также недавно опубликованным предложением RIP-7560 для нативного AA на Ethereum и его rollups.

В марте 2023 года контракт 4337 EntryPoint был развернут на основной сети. Его сообщество имело огромный успех в привлечении разработчиков к движению абстрагирования учетной записи.

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

Инфраструктура кошелька и стек AA

Подписанты и управление ключами

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

Под капотом эти службы либо хранят ключевой материал в HSM, таких как AWS KMS, к которому пользователь может получить доступ только через свои учетные данные (Magic, Turnkey), либо работают в рамках некоторой схемы SSS/MPC (Privy, Web3Auth, Portal, Capsule) для защиты материалов.

Lit* улучшает этот дизайн хранилища ключей на стороне сервера, децентрализуя ключи. Каждый узел в сети хранит долю закрытого ключа ECDSA, сгенерированного с помощью алгоритма DKG, все операции происходят в зашифрованной виртуализации. Произвольные правила аутентификации могут быть назначены для пары ключей, предоставляя приложению или пользователю полный контроль над разрешенными взаимодействиями и, например, устанавливая ограничения на расходы. Сеть также может использоваться 2 из N MPC кошельками в качестве опции резервного копирования и восстановления.

В этом году были проведены быстрые эксперименты по использованию аппаратных подписчиков и ключей доступа в качестве подписчика учетной записи для предоставления пользователям управления ключами на современных мобильных или настольных устройствах. Эти подписчики работают нативно с биометрической аутентификацией (например, FaceID, TouchID), чтобы обеспечить дополнительную безопасность с привычным UX.

Аппаратные подписывающие устройства используют изолированные подсистемы, такие как защищенное хранилище iPhone и Android Titan HSM, для генерации ключей и подписи сообщений, гарантируя безопасность на аппаратном уровне. Поскольку ключи не могут быть извлечены из устройства, это наиболее мощно в сочетании с дополнительными методами восстановления или в качестве части системы двухфакторной аутентификации.

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

Однако здесь существует одно ограничение: Passkeys и подписи, созданные аппаратными подписчиками, не распознаются нативно цепями, такими как Bitcoin и Ethereum. Они используют эллиптическую кривую secp256r1 (R1), в то время как эти цепи работают на вариации K1. Хотя продолжается работа по доверительной и эффективной проверке R1, некоторые продукты с поддержкой Passkey проходят через службы, такие как Lit и Turnkey, чтобы создать подпись K1 после того, как пользователь аутентифицировался своим ключом.

Стандартом, на который стоит обратить внимание, является EIP-7212, который предлагает добавить кривую R1 непосредственно в EVM в качестве предварительно скомпилированного контракта, чтобы каждое современное устройство могло подписывать транзакции нативно без услуг сторонних лиц или посредников.

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

Релеи

Релеи (например, 4337 сборщиков) передают транзакции или UserOps в пул памяти. На цепочках с нативным AA, сетевые операторы и последователи играют эту роль, устраняя необходимость во внешних выделенных релеях.

Подобно тому, как есть несколько реализаций клиентов для Ethereum (например, geth, erigon, reth), в экосистеме 4337 есть несколько реализаций бандлера на разных языках программирования, что делает сеть более надежной против уязвимостей отдельной реализации. Спецификации 4337 включают набор тестов для обеспечения совместимости бандлера по всей сети. Среди реализаторов Stackup (Golang), Pimlico, Biconomy, Etherspot (Typescript), Candide (Python), OKX (Java) и Alchemy (Rust).

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

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

Платежные агенты

Paymasters позволяют абстрагировать комиссии, позволяя dapps спонсировать газ для пользователей, позволяя пользователям оплачивать комиссии с использованием неосновных токенов или проводить расчеты внецепочно через традиционные платежные шины. Услуги пеймастера имеют 2 основных компонента:

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

Смарт-контракт платильщика проверяет, может ли указанная транзакция быть покрыта, либо на основе состояния onchain, такого как балансы счетов, либо на основе политик управления газом вне цепи. Контракт платильщика имеет баланс местных токенов, которые используются для оплаты газа, и может содержать логику ценового оракула, который периодически проверяет обменный курс между платежным токеном (например, USDC) и местным токеном (например, ETH).

Платежные агенты могут быть классифицированы как ончейн или оффчейн:

Платежные агенты Onchain (например, ERC20Paymaster, StablecoinPaymaster) полагаются только на состояние цепи блоков для проверки, может ли транзакция быть покрыта платежным агентом или нет. Это означает, что определенные платежные агенты, такие как те, которые принимают оплату за газ в ERC-20, могут быть сделаны безразрешительными, с условием, что платежный агент должен быть одобрен учетной записью для перевода платежных токенов. Администраторы контрактов платежных агентов могут выводить токены и конвертировать их обратно в исходную валюту для пополнения контракта, устанавливать наценку на цену ERC20, устанавливать порог для разницы в цене, при которой платежный агент обновляет цену ERC20 для следующей операции пользователя, или вручную обновлять цену.

Платежные агенты вне цепи блоков (например, VerifyingPaymaster) включают взаимодействие с API платежного агента поставщика услуг для спонсирования UserOp. Внебиржевая служба проверяет право на получение и подписывает транзакцию с использованием ключей платежного агента. Хотя это решение разрешено, платежные агенты вне цепи блоков обеспечивают экономию газа за счет минимизации внебиржевых проверок. Политики газа могут быть сделаны более детализированными и учитывать внебиржевые действия, такие как активность на Discord.

Фабрики и фреймворки учетных записей

Фабрики и фреймворки учетных записей предоставляют «бесголовые» реализации умных учетных записей и SDK, на которых могут строиться dapps и клиенты кошельков, создавая встроенные учетные записи самохранения от имени своих пользователей. Сами учетные записи являются кошельками с умным контрактом, в которых есть собственная логика проверки подписи, выполнения и защиты от повторного воспроизведения (управление nonce). Владельцы авторизуют операции пользователей, исходящие из их умных учетных записей, с помощью своего ключа.

На высоком уровне умные поставщики учетных записей предоставляют 3 основных вещи:

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

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

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

По стандарту ERC-4337, отправительПоле UserOp относится к смарт-счету, от имени которого выполняется транзакция. Если счет еще не был задействован, то EntryPoint разворачивает счет из фабричного контракта, указанного в.initCodeКлючи пользователя могут быть использованы для запроса смарт-аккаунта для последующего взаимодействия с dapp.

Провайдеры аккаунтов, такие как Safe, Zerodev и Biconomy, интегрируются с менеджерами ключей и инфраструктурой аутентификации, чтобы предоставить dapps возможность выбора способа управления своими умными аккаунтами пользователям. Например, интеграция Web3Auth Safe позволяет пользователям использовать свои аккаунты с помощью социальных сетей или электронной почты, а интеграция Zerodev с Turnkey дает возможность управлять аккаунтами с помощью Пасскей.

Safe - это наиболее известный продукт боеспособного умного кошелька, широко используемый отдельными лицами, командами и DAO. На сегодняшний день было развернуто более 5 млн. Safes на 12+ цепочках, совершено более 22 млн. транзакций. До версии v1.4.1 (запущенной в июле 2023 года) разработчики уже имели возможность использовать ретрансляцию Gelato для включения транзакций с газом. В настоящее время эта комбинация поддерживает криптовалютные дебетовые карты, такие как Gnosis Pay и BasedApp, где пользователи могут приобретать товары у любого продавца, принимающего Visa, используя средства со своего Safe. Версия v1.4.1 предоставляет поддержку ERC-4337 через модули для предоставления дополнительной опциональности в ретрансляторах.

ZeroDev - это умный провайдер учетных записей, запущенный в начале этого года и построенный для ERC-4337 с самого начала. Zerodev агрегирует несколько провайдеров пакетов для абстрагирования услуг ретрансляции UserOp и предоставляет панель управления газовым менеджером, где разработчики могут определить область и логику ограничения скорости, для которой будут спонсировать комиссии для пользователей. В настоящее время Zerodev и Biconomy (который также управляет собственной сетью пакетов) доминируют на рынке аккаунтов, поддерживающих 4337.

Alchemy's AccountKit включает в себя реализацию смарт-аккаунта LightAccount, совместимую с 4337, которая основана на реализации EF и добавляет поддержку EIP-1271 (проверка подписей, происходящих из смарт-контрактов), а также передачу прав собственности, ротацию ключей и хранение пространств имен.

Модули учетной записи

Модули учетной записи - это смарт-контракты, действующие как устанавливаемые компоненты для смарт-аккаунта. Хотя инфраструктура модуля все еще находится в очень ранних стадиях, мы предвидим, что модули будут обнаруживаемы и устанавливаемы через:

Разработчики: встроенные умные аккаунты могут поставляться с «предустановленными» модулями, определяемыми разработчиком dapp, конструируя стартовый кошелек с функциями, настроенными под их случай использования

Конечные пользователи: интерфейсы кошельков могут предоставлять «магазин модулей», где пользователи могут открывать новые функции и добавлять их в свой кошелек

С формальным разделением AA по тому, как обрабатывается проверка и выполнение UserOp, модули могут содержать логику только для проверки или только для выполнения.

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

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

Hooks. Run pre- or post-execution and enforce controls against the account. For example, a hook could run post-execution and revert any transactions that meet certain criteria to create increased security for the user.

Хотя некоторые кошельки, такие как Candide, разработали модули, которые их пользователи могут устанавливать напрямую, мы предвидим богатую экосистему сторонних модулей, которые можно обнаружить в интерфейсе магазина приложений их кошельков или объединить в «стартовый» встроенный кошелек разработчиками dapp.

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

Протокол Safe{Core} представляет собой открытую структуру с модулями, хуками, менеджером и реестрами, направленную на развитие составной экосистемы умных счетов, вдохновленной опытом продукта кошелька Safe.

ZeroDev явно классифицирует свои модули ("плагины") как проверочные или исполнительные. Модули исполнителя предназначены для сопряжения с модулями валидатора, что позволяет направлять пользовательские функции через различные валидаторы. Например, функция "передачи NFT", которая позволяет передавать NFT только через 2FA.

Некоторые соображения при построении устойчивой экосистемы модульных умных счетов:

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

ERC-6900 для модульных умных контрактов и плагинов определяет интерфейсы для модульных умных контрактных счетов (MSCAs), модулей ("плагинов"), позволяющих любым стандартным счетам и плагинам быть взаимосовместимыми друг с другом.

ModuleKit от Rhinestone для создания и тестирования умных модулей учетных записей предоставляет шаблоны и фреймворки для тестирования модулей на различных реализациях учетных записей, библиотеку интеграций (например, протоколы DeFi), заранее созданные условия для выполнения и автоматизацию безопасности для анализа кода модуля и выявления уязвимостей безопасности.

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

EIP-7484 предоставляет средство проверки законности и безопасности независимо созданных модулей умных счетов. Здесь реестр позволяет аудиторам делать утверждения относительно безопасности этих модулей. Фронтенды и умные счета могут запрашивать у реестра данные утверждения, подтверждая, что модуль безопасен для использования. См. реестр Rhinestone для примера реализации этого.

Более широко, EIP-7512 нацелен на создание стандарта для ончейн-представления аудиторских отчетов, разбираемых смарт-контрактами для извлечения соответствующей информации о том, кто проводил аудиты, и какие стандарты были проверены.

Обнаружимость. Реестры могут быть выставлены и запрошены смарт-платформами учетных записей и интерфейсами кошельков для установки разработчиками или конечными пользователями.

Возможность расширения функциональности кошелька превращает учетные записи в платформы для разработчиков и новые каналы распространения для продуктов и услуг web3. Мы уже видим это с помощью Metamask Snaps, который позволяет пользователям настраивать свой браузерный расширяемый кошелек с помощью оповещений о безопасности (через WalletGuard), функций конфиденциальности (через Nocturne) и совместимости с цепочками, не являющимися EVM, такими как Starknet и Bitcoin.

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

Возникающие паттерны развития и их последствия

Эволюционный стек кошелька означает, что:

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

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

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

Протокол связи WalletConnect* появился, чтобы позволить пользователям подключать любой кошелек к любому dapp, наряду с Web3Modal, библиотекой, которая оборачивает кнопки и модальные компоненты, чтобы пользователи могли выбрать, с каким кошельком они хотели использовать dapp.

Сегодня Web3Modal является одной из нескольких библиотек коннекторов кошелька, таких как RainbowKit, Web3Onboard и ConnectKit, которые оптимизируют процесс обнаружения кошелька и аутентификации на основе кошелька для разработчиков dapp. Эти библиотеки предлагают готовые варианты тем оформления, функции поиска кошельков и экраны, которые перенаправляют пользователей на установку кошельков, если у них их еще нет.

Недавно был завершен EIP-6963 как альтернативный механизм обнаружения кошелька к window.ethereum, позволяя dapps и внедренным сценариям, предоставленным расширениями, обмениваться информацией предсказуемым образом. Благодаря стандарту пользователи теперь имеют больше вариантов выбора расширения кошелька по своему усмотрению для подключения к dapps, что открывает более конкурентоспособный рынок для кошельков.

Хотя библиотеки коннекторов значительно улучшили DevEx и UX,, ожидание, что пользователи уже имеют или установят дополнительное программное обеспечение для взаимодействия с dapps, по-прежнему создает высокий барьер для принятия.

Мы уже видим намек на то, как будет выглядеть будущее UX встраивания dapp, поскольку следующее поколение библиотек кошельков, которые мы здесь назовем полноценными "SDK для встраивания", набирает обороты. Кроме аутентификации на основе кошелька, эти SDK предоставляют альтернативные варианты регистрации и входа, такие как электронная почта, социальные сети, SMS, и создают встроенные кошельки для пользователей, не требуя устанавливать дополнительное программное обеспечение или покидать dapp.

Разработчики могут интегрировать предлагаемые ключевыми поставщиками коннекторы напрямую (например, Magic, Privy, Web3Auth) или использовать те, которые обертывают несколько сервисов (например, Dynamic, Thirdweb, 0xPass), чтобы предоставить опцию подключения и воспроизведения для аутентификационных параметров, которые они хотят выставить, и типа кошелька, который они хотят создать, полностью настраивая процесс вступления в систему. SDK для вступления в систему также может интегрироваться с поставщиками смарт-счетов для создания встроенных смарт-кошельков, предлагая дополнительные улучшения пользовательского интерфейса, такие как транзакции без комиссии и входы/выходы.

С увеличением принятия «бесголовых» кошельков и движения к встроенным кошелькам, то, что раньше было четкой границей между кошельками и dapps, начинает размываться.

Независимые кошельки против встроенных кошельков против кошельков для конкретных приложений

Сегодня пользователи Web3 привыкли взаимодействовать с dapps через автономные кошельки, такие как Metamask или те, которые предлагаются через WalletConnect, накапливая свои активы и след на цепочке в один или несколько учетных записей.

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

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

Capsule - это поставщик встроенного кошелька на основе MPC, который обеспечивает переносимость кошелька по всем dapps, использующим их услуги, предоставляя пользователям доступ к существующему кошельку с тем же входом по электронной почте. Мы можем ожидать, что это вскоре станет стандартным предложением среди поставщиков WaaS.

Moonchute помогает пользователям управлять несколькими смарт-счетами на интеримной основе. Их унифицированный менеджер учетных записей представляет собой приложение и API для обнаружения смарт-кошельков, созданных данным подписчиком, позволяя пользователям управлять активами из нескольких учетных записей в одном месте.

ERC-7555 предлагает стандартизированный интерфейс, вдохновленный SSO, и шаблон запроса/ответа для приложений для обнаружения учетных записей пользователей, созданных с использованием альтернативных схем подписи. Здесь приложение перенаправляет пользователя на указанный URI провайдера (который может быть самостоятельным доменом), и анализирует ответ для подписанта и связанного смарт-адреса учетной записи.

Переезд из ЭОА

Еще одним выдающимся вызовом для AA является безупречный способ для существующих пользователей, которые уже имеют активы и историю onchain, накопленную на нескольких EOAs, перейти к смарт-счетам.

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

Aarc нацелен на решение миграции активов для dapps и конечных пользователей. Их пользовательский интерфейс и индексы SDK активов и разрешений определенного адреса источника, что позволяет пользователям выбирать активы, которые они хотят переместить на любой адрес назначения, который может быть умным счетом, другим EOA или встроенным кошельком MPC, созданным с помощью социального входа. Для dapps с существующими пользователями, которые привыкли к автономному потоку кошелька, Aarc предлагает решение для упрощения процесса миграции, поскольку они смотрят на добавление встроенных кошельков или функций AA в свой продукт.

Влияние АА на управление мультичейн-аккаунтами

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

Одним из преимуществ UX EOAs является то, что пользователи автоматически получают доступ к одному и тому же адресу на различных цепях EVM с использованием одного и того же закрытого ключа. Недостаток заключается в том, что невозможно изменить ключи, управляющие данным адресом, и все средства могут быть потеряны, если пользователь потеряет свой закрытый ключ.

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

Однако в долгосрочной перспективе сохранение одного и того же адреса на разных цепях может быть анти-паттерном.

CREATE2 возможен только на цепочках с эквивалентом байткода EVM. В мультицепочечном мире с zk-Rollups (например, zkSync) с незначительными отклонениями от EVM, этот подход не подойдет.

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

Для мультицепочечного AA были предложены более долгосрочные решения:

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

Использование мультиплатформенных разрешителей ENS в качестве абстрактного слоя для различных адресов.

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

Заключение и Заключительные мысли

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

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

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

Пути миграции от внешних учетных записей (EOA) и абстракции учетной записи в контексте мультицепочности до сих пор остаются предметом текущих исследований. Мы ожидаем увидеть первые реализации предложенных решений в ближайшем году.

Мы считаем, что эти события имеют значительные последствия для всей экосистемы:

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

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

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

Инфраструктура кошелька будет продолжать катализировать принятие web3. Мы, в 1kx, гордимся тем, что поддержали команды, которые первыми осуществили идеи, обсуждаемые в этой статье, и будем продолжать отслеживать пространство за тем, что еще предстоит.

Если вы работаете над решениями в этой области или у вас есть дополнительные мысли по этой теме, пожалуйста, свяжитесь@nichanank- был бы рад пообщаться с вами.

Большое спасибо Дэвиду Снайдеру, Джону Райзингу, Конраду Коппу, Курту Ларсену, Марку Седнауи, Догану Алпарслану, Вивиан Фунг, Дереку Рейну, Тому Терадо, Диане Биггс, Мелу Кварто и pet3rpan за рецензирование черновиков этого.

*обозначает портфельные компании 1kx

Заявление:

  1. Эта статья взята из[1kx],авторские права принадлежат оригинальному автору[1kx],如对转载有异议,请联系Команда Gate LearnКоманда будет обрабатывать в соответствии с соответствующим процессом как можно быстрее.
  2. 免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。
  3. Статьи на других языках переводятся командой Gate Learn, если не указаноGate.ioв случае запрещается копировать, распространять или копировать переведенные статьи.

Инфраструктура кошелька: Доверяя следующему поколению Dapps

Средний1/13/2024, 7:27:40 AM
Эта статья знакомит с абстракцией учетной записи и ее преимуществами, инфраструктурой кошелька и обзором стека AA. Она также охватывает развивающиеся разработки dapp, шаблоны развития кошелька и их влияние, текущие вызовы

Инфраструктура кошелька играет решающую роль в разблокировке веб3 опыта для следующего поколения dapp.

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

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

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

Абстрагирование учетной записи: Что, Зачем и Как

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

С традиционными учетными записями (EOA) приватный ключ сохраняет единоличный и полный контроль над связанной с ним учетной записью. Строгое однозначное отображение между приватным ключом и учетной записью означает, что:

Пользователям разрешено использовать специализированные решения для управления ключами (например, Metamask, Ledger) при взаимодействии с блокчейном.

Нет способа обжалования потери закрытого ключа, и ключ, управляющий учетной записью, нельзя заменить.

Все действия, инициированные этим закрытым ключом, рассматриваются как равные, от создания бесплатного NFT до перемещения миллионов долларов.

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

Мы можем дополнительно разбить его выгоды, изучая, что абстрагируется.

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

ERC-4337 был представлен в 2021 году как стандартизированный способ сделать это без изменений в основном протоколе. Однако некоторые проекты уже реализовывали преимущества AA задолго до того, как стандарт был полностью разработан.

Безопасный мультиподписной кошелек был запущен в 2017 году и вырос до обеспечения безопасности активов на сумму более $50 млрд для DAO, бизнеса и частных лиц.

Мобильный кошелек Argent работает на умных контрактах с 2018 года

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

Для этого требовалось создание и поддержание специализированной инфраструктуры ретрансляции со стороны соответствующего проекта.

Введите ERC-4337. Стандарт предлагает децентрализованную и устойчивую к цензуре альтернативу для уровня ретрансляции, определяя интерфейс для учетных записей, платильщиков и агрегаторов подписей для взаимодействия с сторонними ретрансляторами через общий альтернативный мемпул транзакций с абстрактными учетными записями («Операции пользователя»).

Релеи («связующие») объединяют несколько UserOps вместе в транзакцию для отправки в контракт одиночного входа, который впоследствии проверяет, будут ли оплачены сборы (самим счетом или через платильщиков) и выполняет соответствующие пользовательские операции в умных счетах.

Мы можем сопоставить это с тем, как происходит валидация и выполнение на цепочках, которые предлагают нативную абстракцию учетной записи и, таким образом, не требуют дополнительных реле (например, zkSync* и Starknet), а также недавно опубликованным предложением RIP-7560 для нативного AA на Ethereum и его rollups.

В марте 2023 года контракт 4337 EntryPoint был развернут на основной сети. Его сообщество имело огромный успех в привлечении разработчиков к движению абстрагирования учетной записи.

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

Инфраструктура кошелька и стек AA

Подписанты и управление ключами

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

Под капотом эти службы либо хранят ключевой материал в HSM, таких как AWS KMS, к которому пользователь может получить доступ только через свои учетные данные (Magic, Turnkey), либо работают в рамках некоторой схемы SSS/MPC (Privy, Web3Auth, Portal, Capsule) для защиты материалов.

Lit* улучшает этот дизайн хранилища ключей на стороне сервера, децентрализуя ключи. Каждый узел в сети хранит долю закрытого ключа ECDSA, сгенерированного с помощью алгоритма DKG, все операции происходят в зашифрованной виртуализации. Произвольные правила аутентификации могут быть назначены для пары ключей, предоставляя приложению или пользователю полный контроль над разрешенными взаимодействиями и, например, устанавливая ограничения на расходы. Сеть также может использоваться 2 из N MPC кошельками в качестве опции резервного копирования и восстановления.

В этом году были проведены быстрые эксперименты по использованию аппаратных подписчиков и ключей доступа в качестве подписчика учетной записи для предоставления пользователям управления ключами на современных мобильных или настольных устройствах. Эти подписчики работают нативно с биометрической аутентификацией (например, FaceID, TouchID), чтобы обеспечить дополнительную безопасность с привычным UX.

Аппаратные подписывающие устройства используют изолированные подсистемы, такие как защищенное хранилище iPhone и Android Titan HSM, для генерации ключей и подписи сообщений, гарантируя безопасность на аппаратном уровне. Поскольку ключи не могут быть извлечены из устройства, это наиболее мощно в сочетании с дополнительными методами восстановления или в качестве части системы двухфакторной аутентификации.

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

Однако здесь существует одно ограничение: Passkeys и подписи, созданные аппаратными подписчиками, не распознаются нативно цепями, такими как Bitcoin и Ethereum. Они используют эллиптическую кривую secp256r1 (R1), в то время как эти цепи работают на вариации K1. Хотя продолжается работа по доверительной и эффективной проверке R1, некоторые продукты с поддержкой Passkey проходят через службы, такие как Lit и Turnkey, чтобы создать подпись K1 после того, как пользователь аутентифицировался своим ключом.

Стандартом, на который стоит обратить внимание, является EIP-7212, который предлагает добавить кривую R1 непосредственно в EVM в качестве предварительно скомпилированного контракта, чтобы каждое современное устройство могло подписывать транзакции нативно без услуг сторонних лиц или посредников.

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

Релеи

Релеи (например, 4337 сборщиков) передают транзакции или UserOps в пул памяти. На цепочках с нативным AA, сетевые операторы и последователи играют эту роль, устраняя необходимость во внешних выделенных релеях.

Подобно тому, как есть несколько реализаций клиентов для Ethereum (например, geth, erigon, reth), в экосистеме 4337 есть несколько реализаций бандлера на разных языках программирования, что делает сеть более надежной против уязвимостей отдельной реализации. Спецификации 4337 включают набор тестов для обеспечения совместимости бандлера по всей сети. Среди реализаторов Stackup (Golang), Pimlico, Biconomy, Etherspot (Typescript), Candide (Python), OKX (Java) и Alchemy (Rust).

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

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

Платежные агенты

Paymasters позволяют абстрагировать комиссии, позволяя dapps спонсировать газ для пользователей, позволяя пользователям оплачивать комиссии с использованием неосновных токенов или проводить расчеты внецепочно через традиционные платежные шины. Услуги пеймастера имеют 2 основных компонента:

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

Смарт-контракт платильщика проверяет, может ли указанная транзакция быть покрыта, либо на основе состояния onchain, такого как балансы счетов, либо на основе политик управления газом вне цепи. Контракт платильщика имеет баланс местных токенов, которые используются для оплаты газа, и может содержать логику ценового оракула, который периодически проверяет обменный курс между платежным токеном (например, USDC) и местным токеном (например, ETH).

Платежные агенты могут быть классифицированы как ончейн или оффчейн:

Платежные агенты Onchain (например, ERC20Paymaster, StablecoinPaymaster) полагаются только на состояние цепи блоков для проверки, может ли транзакция быть покрыта платежным агентом или нет. Это означает, что определенные платежные агенты, такие как те, которые принимают оплату за газ в ERC-20, могут быть сделаны безразрешительными, с условием, что платежный агент должен быть одобрен учетной записью для перевода платежных токенов. Администраторы контрактов платежных агентов могут выводить токены и конвертировать их обратно в исходную валюту для пополнения контракта, устанавливать наценку на цену ERC20, устанавливать порог для разницы в цене, при которой платежный агент обновляет цену ERC20 для следующей операции пользователя, или вручную обновлять цену.

Платежные агенты вне цепи блоков (например, VerifyingPaymaster) включают взаимодействие с API платежного агента поставщика услуг для спонсирования UserOp. Внебиржевая служба проверяет право на получение и подписывает транзакцию с использованием ключей платежного агента. Хотя это решение разрешено, платежные агенты вне цепи блоков обеспечивают экономию газа за счет минимизации внебиржевых проверок. Политики газа могут быть сделаны более детализированными и учитывать внебиржевые действия, такие как активность на Discord.

Фабрики и фреймворки учетных записей

Фабрики и фреймворки учетных записей предоставляют «бесголовые» реализации умных учетных записей и SDK, на которых могут строиться dapps и клиенты кошельков, создавая встроенные учетные записи самохранения от имени своих пользователей. Сами учетные записи являются кошельками с умным контрактом, в которых есть собственная логика проверки подписи, выполнения и защиты от повторного воспроизведения (управление nonce). Владельцы авторизуют операции пользователей, исходящие из их умных учетных записей, с помощью своего ключа.

На высоком уровне умные поставщики учетных записей предоставляют 3 основных вещи:

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

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

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

По стандарту ERC-4337, отправительПоле UserOp относится к смарт-счету, от имени которого выполняется транзакция. Если счет еще не был задействован, то EntryPoint разворачивает счет из фабричного контракта, указанного в.initCodeКлючи пользователя могут быть использованы для запроса смарт-аккаунта для последующего взаимодействия с dapp.

Провайдеры аккаунтов, такие как Safe, Zerodev и Biconomy, интегрируются с менеджерами ключей и инфраструктурой аутентификации, чтобы предоставить dapps возможность выбора способа управления своими умными аккаунтами пользователям. Например, интеграция Web3Auth Safe позволяет пользователям использовать свои аккаунты с помощью социальных сетей или электронной почты, а интеграция Zerodev с Turnkey дает возможность управлять аккаунтами с помощью Пасскей.

Safe - это наиболее известный продукт боеспособного умного кошелька, широко используемый отдельными лицами, командами и DAO. На сегодняшний день было развернуто более 5 млн. Safes на 12+ цепочках, совершено более 22 млн. транзакций. До версии v1.4.1 (запущенной в июле 2023 года) разработчики уже имели возможность использовать ретрансляцию Gelato для включения транзакций с газом. В настоящее время эта комбинация поддерживает криптовалютные дебетовые карты, такие как Gnosis Pay и BasedApp, где пользователи могут приобретать товары у любого продавца, принимающего Visa, используя средства со своего Safe. Версия v1.4.1 предоставляет поддержку ERC-4337 через модули для предоставления дополнительной опциональности в ретрансляторах.

ZeroDev - это умный провайдер учетных записей, запущенный в начале этого года и построенный для ERC-4337 с самого начала. Zerodev агрегирует несколько провайдеров пакетов для абстрагирования услуг ретрансляции UserOp и предоставляет панель управления газовым менеджером, где разработчики могут определить область и логику ограничения скорости, для которой будут спонсировать комиссии для пользователей. В настоящее время Zerodev и Biconomy (который также управляет собственной сетью пакетов) доминируют на рынке аккаунтов, поддерживающих 4337.

Alchemy's AccountKit включает в себя реализацию смарт-аккаунта LightAccount, совместимую с 4337, которая основана на реализации EF и добавляет поддержку EIP-1271 (проверка подписей, происходящих из смарт-контрактов), а также передачу прав собственности, ротацию ключей и хранение пространств имен.

Модули учетной записи

Модули учетной записи - это смарт-контракты, действующие как устанавливаемые компоненты для смарт-аккаунта. Хотя инфраструктура модуля все еще находится в очень ранних стадиях, мы предвидим, что модули будут обнаруживаемы и устанавливаемы через:

Разработчики: встроенные умные аккаунты могут поставляться с «предустановленными» модулями, определяемыми разработчиком dapp, конструируя стартовый кошелек с функциями, настроенными под их случай использования

Конечные пользователи: интерфейсы кошельков могут предоставлять «магазин модулей», где пользователи могут открывать новые функции и добавлять их в свой кошелек

С формальным разделением AA по тому, как обрабатывается проверка и выполнение UserOp, модули могут содержать логику только для проверки или только для выполнения.

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

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

Hooks. Run pre- or post-execution and enforce controls against the account. For example, a hook could run post-execution and revert any transactions that meet certain criteria to create increased security for the user.

Хотя некоторые кошельки, такие как Candide, разработали модули, которые их пользователи могут устанавливать напрямую, мы предвидим богатую экосистему сторонних модулей, которые можно обнаружить в интерфейсе магазина приложений их кошельков или объединить в «стартовый» встроенный кошелек разработчиками dapp.

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

Протокол Safe{Core} представляет собой открытую структуру с модулями, хуками, менеджером и реестрами, направленную на развитие составной экосистемы умных счетов, вдохновленной опытом продукта кошелька Safe.

ZeroDev явно классифицирует свои модули ("плагины") как проверочные или исполнительные. Модули исполнителя предназначены для сопряжения с модулями валидатора, что позволяет направлять пользовательские функции через различные валидаторы. Например, функция "передачи NFT", которая позволяет передавать NFT только через 2FA.

Некоторые соображения при построении устойчивой экосистемы модульных умных счетов:

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

ERC-6900 для модульных умных контрактов и плагинов определяет интерфейсы для модульных умных контрактных счетов (MSCAs), модулей ("плагинов"), позволяющих любым стандартным счетам и плагинам быть взаимосовместимыми друг с другом.

ModuleKit от Rhinestone для создания и тестирования умных модулей учетных записей предоставляет шаблоны и фреймворки для тестирования модулей на различных реализациях учетных записей, библиотеку интеграций (например, протоколы DeFi), заранее созданные условия для выполнения и автоматизацию безопасности для анализа кода модуля и выявления уязвимостей безопасности.

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

EIP-7484 предоставляет средство проверки законности и безопасности независимо созданных модулей умных счетов. Здесь реестр позволяет аудиторам делать утверждения относительно безопасности этих модулей. Фронтенды и умные счета могут запрашивать у реестра данные утверждения, подтверждая, что модуль безопасен для использования. См. реестр Rhinestone для примера реализации этого.

Более широко, EIP-7512 нацелен на создание стандарта для ончейн-представления аудиторских отчетов, разбираемых смарт-контрактами для извлечения соответствующей информации о том, кто проводил аудиты, и какие стандарты были проверены.

Обнаружимость. Реестры могут быть выставлены и запрошены смарт-платформами учетных записей и интерфейсами кошельков для установки разработчиками или конечными пользователями.

Возможность расширения функциональности кошелька превращает учетные записи в платформы для разработчиков и новые каналы распространения для продуктов и услуг web3. Мы уже видим это с помощью Metamask Snaps, который позволяет пользователям настраивать свой браузерный расширяемый кошелек с помощью оповещений о безопасности (через WalletGuard), функций конфиденциальности (через Nocturne) и совместимости с цепочками, не являющимися EVM, такими как Starknet и Bitcoin.

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

Возникающие паттерны развития и их последствия

Эволюционный стек кошелька означает, что:

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

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

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

Протокол связи WalletConnect* появился, чтобы позволить пользователям подключать любой кошелек к любому dapp, наряду с Web3Modal, библиотекой, которая оборачивает кнопки и модальные компоненты, чтобы пользователи могли выбрать, с каким кошельком они хотели использовать dapp.

Сегодня Web3Modal является одной из нескольких библиотек коннекторов кошелька, таких как RainbowKit, Web3Onboard и ConnectKit, которые оптимизируют процесс обнаружения кошелька и аутентификации на основе кошелька для разработчиков dapp. Эти библиотеки предлагают готовые варианты тем оформления, функции поиска кошельков и экраны, которые перенаправляют пользователей на установку кошельков, если у них их еще нет.

Недавно был завершен EIP-6963 как альтернативный механизм обнаружения кошелька к window.ethereum, позволяя dapps и внедренным сценариям, предоставленным расширениями, обмениваться информацией предсказуемым образом. Благодаря стандарту пользователи теперь имеют больше вариантов выбора расширения кошелька по своему усмотрению для подключения к dapps, что открывает более конкурентоспособный рынок для кошельков.

Хотя библиотеки коннекторов значительно улучшили DevEx и UX,, ожидание, что пользователи уже имеют или установят дополнительное программное обеспечение для взаимодействия с dapps, по-прежнему создает высокий барьер для принятия.

Мы уже видим намек на то, как будет выглядеть будущее UX встраивания dapp, поскольку следующее поколение библиотек кошельков, которые мы здесь назовем полноценными "SDK для встраивания", набирает обороты. Кроме аутентификации на основе кошелька, эти SDK предоставляют альтернативные варианты регистрации и входа, такие как электронная почта, социальные сети, SMS, и создают встроенные кошельки для пользователей, не требуя устанавливать дополнительное программное обеспечение или покидать dapp.

Разработчики могут интегрировать предлагаемые ключевыми поставщиками коннекторы напрямую (например, Magic, Privy, Web3Auth) или использовать те, которые обертывают несколько сервисов (например, Dynamic, Thirdweb, 0xPass), чтобы предоставить опцию подключения и воспроизведения для аутентификационных параметров, которые они хотят выставить, и типа кошелька, который они хотят создать, полностью настраивая процесс вступления в систему. SDK для вступления в систему также может интегрироваться с поставщиками смарт-счетов для создания встроенных смарт-кошельков, предлагая дополнительные улучшения пользовательского интерфейса, такие как транзакции без комиссии и входы/выходы.

С увеличением принятия «бесголовых» кошельков и движения к встроенным кошелькам, то, что раньше было четкой границей между кошельками и dapps, начинает размываться.

Независимые кошельки против встроенных кошельков против кошельков для конкретных приложений

Сегодня пользователи Web3 привыкли взаимодействовать с dapps через автономные кошельки, такие как Metamask или те, которые предлагаются через WalletConnect, накапливая свои активы и след на цепочке в один или несколько учетных записей.

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

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

Capsule - это поставщик встроенного кошелька на основе MPC, который обеспечивает переносимость кошелька по всем dapps, использующим их услуги, предоставляя пользователям доступ к существующему кошельку с тем же входом по электронной почте. Мы можем ожидать, что это вскоре станет стандартным предложением среди поставщиков WaaS.

Moonchute помогает пользователям управлять несколькими смарт-счетами на интеримной основе. Их унифицированный менеджер учетных записей представляет собой приложение и API для обнаружения смарт-кошельков, созданных данным подписчиком, позволяя пользователям управлять активами из нескольких учетных записей в одном месте.

ERC-7555 предлагает стандартизированный интерфейс, вдохновленный SSO, и шаблон запроса/ответа для приложений для обнаружения учетных записей пользователей, созданных с использованием альтернативных схем подписи. Здесь приложение перенаправляет пользователя на указанный URI провайдера (который может быть самостоятельным доменом), и анализирует ответ для подписанта и связанного смарт-адреса учетной записи.

Переезд из ЭОА

Еще одним выдающимся вызовом для AA является безупречный способ для существующих пользователей, которые уже имеют активы и историю onchain, накопленную на нескольких EOAs, перейти к смарт-счетам.

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

Aarc нацелен на решение миграции активов для dapps и конечных пользователей. Их пользовательский интерфейс и индексы SDK активов и разрешений определенного адреса источника, что позволяет пользователям выбирать активы, которые они хотят переместить на любой адрес назначения, который может быть умным счетом, другим EOA или встроенным кошельком MPC, созданным с помощью социального входа. Для dapps с существующими пользователями, которые привыкли к автономному потоку кошелька, Aarc предлагает решение для упрощения процесса миграции, поскольку они смотрят на добавление встроенных кошельков или функций AA в свой продукт.

Влияние АА на управление мультичейн-аккаунтами

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

Одним из преимуществ UX EOAs является то, что пользователи автоматически получают доступ к одному и тому же адресу на различных цепях EVM с использованием одного и того же закрытого ключа. Недостаток заключается в том, что невозможно изменить ключи, управляющие данным адресом, и все средства могут быть потеряны, если пользователь потеряет свой закрытый ключ.

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

Однако в долгосрочной перспективе сохранение одного и того же адреса на разных цепях может быть анти-паттерном.

CREATE2 возможен только на цепочках с эквивалентом байткода EVM. В мультицепочечном мире с zk-Rollups (например, zkSync) с незначительными отклонениями от EVM, этот подход не подойдет.

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

Для мультицепочечного AA были предложены более долгосрочные решения:

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

Использование мультиплатформенных разрешителей ENS в качестве абстрактного слоя для различных адресов.

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

Заключение и Заключительные мысли

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

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

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

Пути миграции от внешних учетных записей (EOA) и абстракции учетной записи в контексте мультицепочности до сих пор остаются предметом текущих исследований. Мы ожидаем увидеть первые реализации предложенных решений в ближайшем году.

Мы считаем, что эти события имеют значительные последствия для всей экосистемы:

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

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

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

Инфраструктура кошелька будет продолжать катализировать принятие web3. Мы, в 1kx, гордимся тем, что поддержали команды, которые первыми осуществили идеи, обсуждаемые в этой статье, и будем продолжать отслеживать пространство за тем, что еще предстоит.

Если вы работаете над решениями в этой области или у вас есть дополнительные мысли по этой теме, пожалуйста, свяжитесь@nichanank- был бы рад пообщаться с вами.

Большое спасибо Дэвиду Снайдеру, Джону Райзингу, Конраду Коппу, Курту Ларсену, Марку Седнауи, Догану Алпарслану, Вивиан Фунг, Дереку Рейну, Тому Терадо, Диане Биггс, Мелу Кварто и pet3rpan за рецензирование черновиков этого.

*обозначает портфельные компании 1kx

Заявление:

  1. Эта статья взята из[1kx],авторские права принадлежат оригинальному автору[1kx],如对转载有异议,请联系Команда Gate LearnКоманда будет обрабатывать в соответствии с соответствующим процессом как можно быстрее.
  2. 免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。
  3. Статьи на других языках переводятся командой Gate Learn, если не указаноGate.ioв случае запрещается копировать, распространять или копировать переведенные статьи.
即刻开始交易
注册并交易即可获得
$100
和价值
$5500
理财体验金奖励!