
18 июля 2024 года SSP Wallet v1.6.0 добавил Ethereum — и SSP стал первым кошельком, выпустившим настоящие аккаунты Schnorr-multisig на Ethereum с использованием Account Abstraction ERC-4337. Другие кошельки называют себя «Ethereum multisig», складывая один внешний аккаунт за интерфейсом. SSP выбрал более сложный путь, чтобы та же модель 2-из-2, которая охраняет Bitcoin внутри SSP, теперь охраняла и ETH.
TL;DR
- Ethereum (ETH) присоединяется к SSP как полноценная сеть.
- Аккаунты — это смарт-контракты по ERC-4337, а не EOA, поэтому правило 2-из-2 живёт в сети.
- Две подписи Schnorr агрегируются в одну до выхода в Ethereum, удерживая газ предсказуемым.
- Библиотека подписания открыта в npm:
@runonflux/aa-schnorr-multisig-sdk. - Поддержка токенов ERC-20 — следующий шаг; этот релиз приносит сам ETH и фундамент AA под ним.
Что приземлилось: поддержка Ethereum по сложному пути
Большинство кошельков «поддерживают Ethereum», создавая внешний аккаунт (EOA), — один приватный ключ, одна подпись, одна точка отказа. Добавление multisig поверх обычно означает программную политику на стороне кошелька, а не правило, навязанное сетью. Сеть по-прежнему видит один ключ, и тот, кто им владеет, может перемещать средства в одиночку.
SSP отказался от этого срезания углов. Весь смысл модели 2-из-2 SSP в том, что ни SSP Wallet на десктопе, ни SSP Key на телефоне не могут самостоятельно перемещать средства — совместное подписание является свойством аккаунта, а не соглашением интерфейса. Чтобы сохранить это в Ethereum, EOA никогда не было бы достаточно. Аккаунт Ethereum должен был стать смарт-контрактом, который по своей конструкции требует двух подписей. Именно это и было выпущено в v1.6.0.
Что Schnorr multisig означает здесь
UTXO-скрипты Bitcoin способны выразить 2-из-2 нативно — именно так существующие сети SSP навязывают совместное подписание. Модель аккаунтов Ethereum этого не умеет — без посторонней помощи. SSP закрывает этот разрыв подписями Schnorr.
Schnorr — это схема подписи с одним свойством, важным здесь: два подписанта могут каждый выдать частичную подпись, и эти частичные подписи можно объединить в одну валидную, которая проверяется относительно единого агрегированного открытого ключа. Для любого читающего сеть это выглядит как одна подпись от одного подписанта. Для SSP двум устройствам пришлось согласиться. Криптографическая глубина — агрегация ключей, координация nonce-ов, раунды в стиле MuSig2 — раскрыта в нашей статье академии о подписях Schnorr и агрегации multisig, если нужно. Резюме для пользователя короткое: тот же рукопожатие SSP Wallet + SSP Key, которым вы уже пользуетесь, теперь выражено как одна агрегированная подпись Schnorr в Ethereum.
Account Abstraction ERC-4337
Account Abstraction (AA) — это зонтичный термин, позволяющий аккаунтам Ethereum вести себя как программируемые кошельки, а не как голые пары ключей. В стандартной модели Ethereum есть два типа аккаунтов: EOA, управляемые единственным приватным ключом, и контракты, которые сами не могут инициировать транзакции. AA снимает это различие на уровне приложения.
ERC-4337 — это стандарт Ethereum, который доставляет AA, не меняя сам Ethereum. Вместо хард-форка он определяет объект транзакции более высокого уровня под названием UserOperation, бандлер, превращающий их в обычные транзакции Ethereum, и контракт EntryPoint, который их валидирует. Ваш «аккаунт» — это смарт-контракт, который сам решает, как аутентифицировать траты. Для SSP это правило аутентификации звучит так: агрегированная подпись Schnorr от SSP Wallet и SSP Key — или ничего. Никакого хард-форка L1, никаких особых операторов узлов, никаких допущений доверия за пределами того, что уже развёрнуто в основной сети.
Открытая библиотека
Слой подписания Schnorr-multisig не зарыт внутри приложения SSP. Мы выделили его в переиспользуемую библиотеку и выпустили под той же открытой позицией, что и остальной SSP. TypeScript SDK живёт на npm как @runonflux/aa-schnorr-multisig-sdk; сопровождающие его Solidity-контракты Account Abstraction живут в репозитории @runonflux/account-abstraction на GitHub.
Если вы разработчик кошельков, исследователь безопасности или просто любопытствуете, как Schnorr-multisig AA на самом деле собирается на Ethereum, оба проекта доступны для чтения, форка и контрибуций. Пулл-реквесты и issue приветствуются — мы предпочитаем закалять одну общую библиотеку под большим количеством глаз, чем позволять каждому кошельку, которому нужен этот примитив, изобретать его заново.
Что это открывает
Конкретно для v1.6.0 предлагаемая сеть — сам Ethereum: балансы ETH, переводы ETH, тот же переключатель в панели Chains, которым вы пользуетесь для любой другой монеты, теперь с AA-аккаунтом за ним. Сантехника, которую укладывает этот релиз, — самая тяжёлая часть. Как только аккаунты Schnorr AA 2-из-2 существуют и работают, любой Ethereum-подобный баланс становится досягаемым.
Поддержка токенов ERC-20 — естественный следующий шаг, и она уже в дорожной карте; мы расскажем о ней отдельным постом в newsroom, когда она выйдет. На сегодня заголовок таков: Ethereum в SSP, в SSP правильным образом, а его криптографические и смарт-контрактные основы открыты в npm и на GitHub, чтобы любой мог их проверить.
Источник: заметки о релизе SSP Wallet v1.6.0.