Используя модульный стек учетных записей смарт-контрактов, поставщики кошельков и децентрализованные приложения могут избежать сложностей технического обслуживания.
Автор: Руи
Составлено: Shenchao TechFlow
Оригинальный отчет на английском языке опубликован в сентябре 2023 г.

Переход от внешних учетных записей (EOA) к учетным записям смарт-контрактов (SCA) находится на подъеме и поддерживается многими энтузиастами, включая самого Виталика. Несмотря на ажиотаж, внедрение SCA не получило такого широкого распространения, как EOA. Ключевые проблемы включают проблемы медвежьего рынка, проблемы миграции, проблемы сигнатур, накладные расходы на газ и, что наиболее важно, инженерные проблемы.
Одним из наиболее важных преимуществ абстракции учетных записей (AA) является возможность настройки функциональности с помощью кода. Однако серьезной инженерной проблемой является несовместимость функций AA, и эта фрагментация препятствует интеграции и открывает двери для привязки к поставщику. Кроме того, обеспечение безопасности при одновременном обновлении и объединении функций может оказаться сложной задачей.
Модульная абстракция учетных записей возникла как часть более широкого движения АА — инновационного подхода к отделению смарт-аккаунтов от их пользовательских функций. Цель — создать модульную структуру для разработки безопасных, легко интегрированных кошельков с разнообразными функциями. В будущем он может реализовать бесплатную учетную запись смарт-контракта «магазин приложений», чтобы кошельки и dApps больше не фокусировались на создании функций, а на пользовательском опыте.

Традиционный EOA создает множество проблем, таких как начальные фразы, газ, кроссчейн и множественные транзакции. Мы никогда не собирались привносить сложность, но реальность такова, что блокчейн — непростая игра для масс.
Абстракция учетной записи использует учетные записи смарт-контрактов, обеспечивая программируемую проверку и выполнение, позволяя пользователям утверждать серию транзакций одновременно, вместо того, чтобы подписывать и транслировать каждую транзакцию, а также обеспечивает дополнительную функциональность. Это приносит преимущества с точки зрения пользовательского опыта (например, абстракция газа и сеансовые ключи), стоимости (например, пакетные транзакции) и безопасности (например, социальное восстановление, мультиподпись). В настоящее время существует два способа реализации абстракции учетной записи:
Тема абстракции учетных записей (AA) обсуждается с 2015 года и в этом году была в центре внимания ERC4337. Однако количество развернутых учетных записей смарт-контрактов по-прежнему намного меньше, чем у EOA.

Давайте углубимся в эту дилемму:
Влияние медвежьего рынка: Хотя AA представило такие преимущества, как беспрепятственный вход в систему и абстракция газа, люди, которые в настоящее время испытывают медвежий рынок, в основном состоят из образованных пользователей EOA, а не из новых пользователей, поэтому это не хорошо для децентрализованных приложений и кошельков. Никаких стимулов. Несмотря на это, некоторые ведущие приложения все еще постепенно внедряют AA, например, Cyberconnect, которая выполнила около 360 000 UserOps (транзакций AA) всего за один месяц, представив свою систему AA и решение без газа.
Барьеры миграции. Для кошельков и приложений, накопивших пользователей и активы, безопасная и удобная миграция активов остается проблемой. Однако такие инициативы, как EIP-7377, позволяют EOA инициировать одноразовые транзакции миграции.
Проблема с подписью: Смарт-контракт сам по себе не может подписать сообщение, поскольку у него нет закрытого ключа, такого как EOA. Такие усилия, как ERC1271, делают такую подпись возможной, но подпись сообщения не работает до первой транзакции, что создает проблему для кошельков, использующих контрфактические развертывания. ERC-6492, предложенный Ambire, является обратно совместимым преемником ERC-1271 и может решить предыдущие проблемы.
Накладные расходы на газ. Развертывание, моделирование и выполнение SCA требует более высоких затрат, чем стандартное EOA. Это становится препятствием для усыновления. Однако были проведены некоторые тесты, такие как отделение создания учетной записи от действий пользователя и рассмотрение возможности устранения солей учетных записей и проверок существования, чтобы снизить эти затраты.
Инженерная дилемма: Команда ERC-4337 создала репозиторий eth-infinitiism, чтобы предоставить разработчикам базовые реализации. Однако по мере того, как мы переходим к более детальным или конкретным функциональным возможностям в различных случаях использования, интеграция и декодирование становятся сложными.
В этой статье мы углубимся в пятый вопрос: инженерные проблемы.

Дальнейшее объяснение инженерных проблем заключается в следующем:
Чтобы справиться с этими проблемами, нам нужны обновляемые контракты для обеспечения безопасных и эффективных обновлений, многоразовые ядра для повышения общей эффективности разработки и стандартизированные интерфейсы для обеспечения плавного перехода учетных записей контрактов между различными внешними интерфейсами.
Эти термины сходятся в общей концепции: построение модульной архитектуры абстракции учетных записей (Modular AA).
Модульный AA — это ниша в рамках более широкого движения AA, которое предполагает модульность смарт-аккаунтов для адаптации услуг к пользователям и позволяет разработчикам плавно расширять функциональность с минимальными ограничениями.
Однако установление и продвижение новых стандартов является огромной проблемой в любой отрасли. На начальных этапах может возникнуть множество различных решений, прежде чем все примут основное решение. Однако отрадно, что и 4337 SDK, и разработчики кошельков, и команды по инфраструктуре, и разработчики протоколов работают вместе, чтобы ускорить этот процесс.
Внешние вызовы и вызовы делегатов:

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

Для реализации составной и обновляемой структуры необходимы базовые знания, называемые «агентским контрактом».

Safe — это ведущая модульная инфраструктура смарт-аккаунтов, предназначенная для обеспечения проверенной в боях безопасности и гибкости, позволяющая разработчикам создавать разнообразные приложения и кошельки. Стоит отметить, что многие команды используют Safe или вдохновляются им. Biconomy запускает свою учетную запись, расширяя встроенную мультиподпись 4337 и 1/1 в Safe. С более чем 164 000 развернутых контрактов и фиксированной стоимостью более 30,7 миллиардов долларов Safe, несомненно, является лучшим выбором в этой области.
Структура сейфа
Учетная запись Safe является прокси-контрактом, поскольку она делегирует вызов одноэлементного контракта. Учетная запись Safe содержит владельца, пороговое значение и адрес реализации, которые устанавливаются как переменные для агента, тем самым определяя его состояние.
Синглтон обслуживает учетную запись Safe, интегрирует и определяет различные интеграции, включая плагины, перехватчики, обработчики функций и средства проверки подписи.
Модули очень мощные. Плагины модульного типа могут определять различные функции, такие как потоки платежей, механизмы восстановления и ключи сеанса, а также служить межцепочным мостом между Web2 и Web3, получая данные вне цепочки. Другие модули, такие как хуки, действуют как средства защиты, а обработчики функций реагируют на любые инструкции.
Что произойдет, если мы перейдём на Safe
Всякий раз, когда появляется новый плагин, необходимо развернуть новый синглтон. Пользователи сохраняют за собой право обновлять Safe до желаемой одноэлементной версии в соответствии со своими предпочтениями и требованиями.
Модульная природа плагинов позволяет разработчикам самостоятельно создавать функциональность. Затем они могут свободно выбирать и комбинировать эти плагины в соответствии со своими сценариями использования, что обеспечивает широкие возможности настройки.

О ERC2535 и Diamond Agent
ERC2535 стандартизирует Diamond Agent, модульную систему смарт-контрактов, которую можно обновлять/расширять после развертывания и которая практически не имеет ограничений по размеру. До сих пор многие команды были вдохновлены этим, например, эксперименты Zerodev Kernel и Soul Wallet.
**Что такое структура ромба? **
**Что произойдет, если мы возьмем на вооружение Diamond? **
Между архитектурами Safe и Diamond существует много общего: обе архитектуры опираются на прокси-контракты в качестве ядра и ссылаются на логические контракты для обеспечения возможности обновления и модульности.
Однако основное отличие заключается в обработке логических контрактов. Вот более подробная инструкция:
«Метод безопасного смарт-аккаунта» и «Метод ромба» являются примерами различных структур, включающих агентов и модули. Как сбалансировать гибкость и безопасность имеет решающее значение, и эти два подхода, вероятно, будут дополнять друг друга в будущем.
Давайте расширим наше обсуждение, представив стандарт ERC6900, предложенный командой Alchemy, который был вдохновлен Diamond и специально адаптирован для ERC-4337. Он решает проблему модульности смарт-аккаунтов, предоставляя общий интерфейс и координируя работу между разработчиками плагинов и кошельков.
Когда дело доходит до процесса транзакции AA, существует три основных процесса: проверка, выполнение и перехват. Как мы обсуждали ранее, этими шагами можно управлять, вызывая модуль с использованием учетной записи прокси. Хотя разные проекты могут использовать разные имена, важно уловить схожую базовую логику.


Разделение модулей на основе разной логики имеет решающее значение. Стандартизированный подход должен определять, как следует писать функции проверки, выполнения учетной записи смарт-контракта и функции перехвата. Будь то Safe или ERC6900, стандартизация помогает снизить потребность в уникальных усилиях по разработке для конкретной реализации или экосистемы и предотвращает привязку к поставщику.
Одно из решений, которое сейчас набирает обороты, предполагает создание места, позволяющего пользователям находить проверяемые модули, то, что мы могли бы назвать «реестром». Этот реестр похож на «магазин приложений» и предназначен для продвижения упрощенного, но процветающего модульного рынка.

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

Процесс разворачивается следующим образом:
Хотя эта модель все еще находится на ранней стадии своего развития, у нее есть потенциал для установления стандарта децентрализованным и совместным образом. Их реестр позволяет разработчикам регистрировать свои модули, аудиторам проверять их безопасность, интегрировать кошельки, а пользователям легко находить модули и проверять их аттестационную информацию. В будущем могут быть следующие варианты использования:
Концепция «реестра модулей» предоставляет разработчикам плагинов и модулей возможности получения прибыли. Это также может проложить путь к «рынку модулей». Некоторые из этих аспектов могут контролироваться командой Safe, в то время как другие могут проявляться в виде децентрализованных торговых площадок, которые приглашают всех внести свой вклад и обеспечивают прозрачный контрольный журнал. Применяя такой подход, мы можем избежать привязки к поставщику и поддержать расширение EVM, обеспечив лучший пользовательский опыт, который понравится более широкой аудитории.
Хотя эти методы обеспечивают безопасность отдельных модулей, общая безопасность учетных записей смарт-контрактов не является абсолютно надежной. Объединение законных модулей и доказательство отсутствия конфликтов хранения может оказаться непростой задачей, что подчеркивает важность кошельков или инфраструктуры AA в решении таких проблем.
Используя модульный стек учетных записей смарт-контрактов, поставщики кошельков и децентрализованные приложения могут избежать сложностей технического обслуживания. В то же время внешние разработчики модулей имеют возможность предоставлять профессиональные услуги с учетом индивидуальных потребностей. Однако проблемы, которые необходимо решить, включают в себя достижение баланса между гибкостью и безопасностью, стимулирование развития модульных стандартов и внедрение стандартизированных интерфейсов, которые позволяют пользователям легко обновлять и модифицировать свои смарт-аккаунты.
Однако модульные учетные записи смарт-контрактов (SCA) — это лишь часть головоломки внедрения. Для полной реализации потенциала SCA также необходима поддержка уровня протокола со стороны решений второго уровня, а также мощная инфраструктура связывания и одноранговые пулы памяти, более экономичные и осуществимые механизмы подписи SCA, межсетевая синхронизация SCA. и управление, а также разработку удобных интерфейсов.
Мы предвидим будущее с широким участием, что поднимает несколько интересных вопросов: как только процесс заказа SCA станет достаточно прибыльным, как традиционные механизмы извлечения ценности майнерами (MEV) войдут в это пространство, создадут сборщики и получат прибыль? Когда инфраструктура станет более зрелой, как абстракция учетных записей (AA) сможет стать базовым уровнем для транзакций, основанных на намерениях? Пожалуйста, следите за обновлениями, поскольку эта область постоянно развивается.