Self-custody без ключа: действительно ли кошелёк принадлежит вам?
Ещё несколько лет назад self-custody означал довольно простую вещь: у пользователя есть seed-фраза или приватный ключ, а значит он может распоряжаться активами независимо от конкретного приложения. Если MetaMask перестал работать, seed можно импортировать в другой совместимый кошелёк и продолжить пользоваться средствами.
Именно вокруг этой модели появилось выражение Not your keys, not your coins. Но современные кошельки устроены уже иначе. Вместо seed-фраз всё чаще используются passkeys, Face ID, MPC, smart accounts и social recovery. Формально такие решения тоже называют self-custody, хотя уровень независимости пользователя у них может сильно отличаться.
Что такое self-custody
В классической модели пользователь контролирует адрес через приватный ключ. В Ethereum обычный пользовательский аккаунт — Externally Owned Account, или EOA. Если приватный ключ находится у владельца, он может подписывать транзакции. Если ключ потерян, сам блокчейн восстановить доступ уже не сможет.
Поэтому традиционный self-custody строился вокруг seed-фразы. Главное преимущество этой модели — независимость от конкретного кошелька. Приложение остаётся только интерфейсом, а сам аккаунт существует отдельно от него.
У такой системы есть и очевидный недостаток: потеря или кража seed-фразы может означать безвозвратную потерю активов. Именно это стало одной из главных причин появления новых архитектур кошельков.
Почему индустрия уходит от seed-фраз
Seed-фраза хорошо решает криптографическую задачу, но плохо подходит массовому пользователю. Нужно записать 12 или 24 слова, хранить их отдельно и понимать, что потеря этой записи может привести к потере денег.
Одновременно seed-фразы стали одной из главных целей фишинга. Достаточно убедить пользователя ввести слова на поддельном сайте — и злоумышленник получает полный контроль над кошельком.
Поэтому индустрия начала искать модели, где человеку не нужно постоянно работать с приватным ключом напрямую. Так появились passkeys, MPC, smart accounts и account abstraction. Кошелёк постепенно превращается из простого интерфейса к приватному ключу в полноценную систему управления доступом.
Passkey и Face ID
Passkey позволяет подтверждать вход или действие через Face ID, Touch ID, PIN или другой механизм устройства. При этом биометрия сама по себе не является ключом кошелька: она лишь разрешает устройству использовать сохранённый cryptographic credential.
Для пользователя всё выглядит очень просто. Он открывает приложение, подтверждает действие через Face ID и получает доступ к кошельку. Это значительно удобнее seed-фразы и лучше защищает от обычного фишинга.
Но вместе с удобством появляется новая зависимость. Нужно понимать, где именно хранится passkey и как он восстанавливается. Он может быть синхронизирован через iCloud Keychain, Google Password Manager или другой менеджер, а может оставаться привязанным к конкретному устройству. От этого напрямую зависит, что произойдёт при его потере или смене устройства.
Base: self-custody с ограничениями
Поводом глубже разобраться в этой теме стал практический случай. Я использовал self-custody-кошелёк Base, где доступ был организован через passkey и Face ID.
Проблема появилась, когда понадобилось полноценно работать с активами с компьютера. Привычного сценария, когда dApp открыт на десктопе, а мобильный кошелёк подключается к нему и подтверждает операции на смартфоне, больше не оказалось.
Coinbase прямо указывает, что подключение к приложению на другом устройстве через Base app больше не поддерживается. Вместо этого предлагается использовать smart wallet и passkey либо работать через встроенный интерфейс Base. При этом smart wallets совместимы не со всеми приложениями и сетями.
В моём случае практическим решением стало перевести активы на MetaMask. Деньги всё это время оставались под моим контролем, но сам пример показывает важное различие: self-custody и свобода использования кошелька — не одно и то же.
Можно контролировать средства и одновременно зависеть от архитектуры конкретного продукта.
Recovery phrase теперь может работать иначе
В классическом кошельке recovery phrase связана с приватными ключами аккаунта. Её можно импортировать в совместимый кошелёк и восстановить доступ.
В smart wallet Base механизм другой. Кошелёк защищается passkey. Если используется облачный passkey через iCloud Keychain или Google Password Manager, доступ может восстанавливаться через эту систему. Для device-bound passkey потеря устройства уже критичнее.
Base позволяет заранее создать recovery phrase, но она работает не так, как seed классического EOA. Она создаёт отдельного signer on-chain, который впоследствии может добавить новый passkey и восстановить доступ к smart wallet.
То есть классическая схема seed → private key → account постепенно заменяется другой архитектурой: passkey → signer → smart contract account. Для пользователя оба механизма могут называться восстановлением кошелька, хотя технически это уже совершенно разные модели.
Smart account
Account abstraction позволяет перенести правила управления кошельком в smart contract account. ERC-4337 даёт возможность использовать программируемую логику проверки транзакций и строить кошельки с несколькими способами подтверждения, recovery, сменой signer, лимитами, объединением операций и оплатой gas за пользователя.
Преимущество очевидно: кошелёк становится значительно удобнее и гибче. Можно создать несколько способов восстановления, использовать разные устройства, ограничивать крупные переводы или распределять полномочия между несколькими участниками.
Но одновременно меняется и сам вопрос владения. Теперь важно не только, у кого находится приватный ключ, но и какие правила записаны в аккаунте, кто может изменить signer и какие условия необходимо выполнить для подписи транзакции.
MPC
Multi-Party Computation позволяет распределить процесс подписи между несколькими участниками. Полный приватный ключ не обязательно хранится в одном месте: вместо этого используются несколько key shares, которые совместно создают подпись.
Такая модель уменьшает риск единой точки компрометации. Если одна часть системы взломана, этого может быть недостаточно для вывода средств.
Но здесь возникает другой вопрос: кто контролирует остальные shares? Если для подписи или восстановления необходима инфраструктура конкретной компании, уровень независимости пользователя уже отличается от обычного seed-wallet.
Поэтому MPC сам по себе не делает кошелёк custodial или self-custodial. Всё зависит от реализации: кто контролирует части ключа, какой quorum нужен для подписи, можно ли восстановить доступ без провайдера и существует ли независимый механизм выхода из системы.
Главная проблема — portability
Именно переносимость сегодня становится одним из главных критериев self-custody.
Есть очень простой тест: что произойдёт, если разработчик кошелька завтра исчезнет?
Для классического EOA ответ обычно понятен. Есть seed или private key — пользователь устанавливает другой кошелёк и продолжает работу.
Для passkey, smart account или MPC ответ уже зависит от конкретной реализации. Нужно понимать, можно ли использовать аккаунт через другой интерфейс, можно ли экспортировать credential, контролирует ли пользователь достаточное количество signers, существует ли независимый recovery и требуется ли инфраструктура производителя.
Сам блокчейн при этом может продолжать работать совершенно нормально, а активы оставаться на месте. Но путь к ним может стать значительно сложнее.
Отсюда появляется довольно точная формула:
средства могут быть вашими, но путь к ним — нет.
Self-custody становится спектром
Сегодня под одним термином находятся разные модели. Классический EOA даёт высокую независимость и переносимость, но требует от пользователя полностью отвечать за seed или private key. Passkey wallet значительно упрощает вход и защищает от части фишинговых атак, но восстановление зависит от того, где и как хранится credential.
MPC снижает риск единой точки компрометации, но требует понимать, кто контролирует key shares. Smart contract wallet даёт гибкие правила, recovery и несколько signers, однако пользователь уже зависит от архитектуры самого контракта и доступных способов взаимодействия с ним.
Все эти модели могут быть self-custody. Но степень независимости у них разная.
Что теперь нужно проверять
Раньше для оценки кошелька часто было достаточно спросить: кто хранит приватный ключ?
Сегодня этого уже мало.
Нужно понимать, кто может подписать транзакцию, кто способен изменить signer, что необходимо для восстановления, можно ли сменить приложение без перевода активов и что произойдёт при потере устройства или закрытии компании.
Особенно важен ещё один вопрос: можно ли продолжать использовать кошелёк без инфраструктуры разработчика?
Именно он лучше всего показывает реальный уровень независимости пользователя.
Вывод
Passkeys, MPC и smart accounts не делают self-custody хуже. Во многих случаях они действительно безопаснее и удобнее классической seed-фразы.
Но они меняют само значение этого термина.
Раньше self-custody почти всегда означал: у меня есть ключ.
Теперь этого определения недостаточно.
Сегодня правильнее задавать другой вопрос:
если завтра исчезнет приложение, смогу ли я всё ещё распоряжаться своими активами?
Если ответ на него неочевиден, значит перед нами уже не классический self-custody, а более сложная система, уровень независимости которой нужно оценивать отдельно.
Источники
Coinbase — Connect or sign in to an app with the Base app
Ethereum — Account abstraction
Fireblocks — Self-Custody Infrastructure
