Кошельки на смарт-контрактах: функции, преимущества и риски
Что такое кошелёк на смарт-контракте? Узнайте, чем он отличается от кошелька с сид-фразой, что дают восстановление и пакетные транзакции и какие риски нужно проверить в первую очередь.
Кошелёк на смарт-контракте — это криптоаккаунт, которым управляет программа в блокчейне, а не один приватный ключ. Код контракта решает, кто может одобрять транзакции и по каким правилам. Это делает возможными такие функции, как несколько подтверждающих, лимиты расходов, восстановление аккаунта и оплата комиссий в стейблкоинах.
Большинство людей начинают с обычного кошелька, безопасность которого целиком зависит от одной сид-фразы. Потеряете её — средства пропадут; она утечёт — их украдут. Кошельки на смарт-контрактах призваны устранить эту единую точку отказа. В этом руководстве объясняется, как они работают, чем отличаются от традиционных кошельков и какие риски стоит проверить, прежде чем переводить в них средства.
Как работают обычные кошельки
В Ethereum и похожих сетях обычный кошелёк называется внешним аккаунтом (EOA, externally owned account). Им управляет один приватный ключ, обычно полученный из сид-фразы из 12 или 24 слов. Любой, у кого есть этот ключ, может подписать любую транзакцию — без лимитов и без возможности отмены. Основы описаны в статье публичный и приватный ключ.
Эта простота одновременно и слабость. Нельзя добавить второго подтверждающего, установить дневной лимит или восстановить аккаунт, если ключ утерян.
Как работают кошельки на смарт-контрактах
Кошелёк на смарт-контракте сам по себе является контрактом, развёрнутым по определённому адресу. Средства хранятся в контракте, и он выполняет только те транзакции, которые соответствуют его правилам. Такие правила могут гласить:
- Любой перевод должны одобрить два из трёх назначенных ключей.
- Переводы выше заданной суммы требуют временной задержки.
- Группа доверенных «хранителей» может заменить утерянный ключ.
- Определённые приложения могут тратить только в пределах лимита и в течение ограниченного времени.
Поскольку кошелёк — это код, он также может объединять несколько действий в одну транзакцию, например одобрить токен и сразу обменять его, а также позволить кому-то другому оплатить комиссию за газ вместо вас.
Абстракция аккаунтов и ERC-4337
Абстракция аккаунтов — это более широкая идея сделать каждый аккаунт программируемым. В Ethereum стандарт ERC-4337 заработал в основной сети в 2023 году. Он позволяет кошелькам на смарт-контрактах работать через отдельную систему «user operations» и «бандлеров» без изменения базового протокола. «Paymaster’ы» могут спонсировать газ или позволять пользователям платить комиссии в токенах, например в стейблкоинах. Подробнее об этом — в статье Абстракция аккаунтов простыми словами.
В 2025 году обновление Ethereum Pectra ввело EIP-7702, которое позволяет обычному аккаунту временно делегировать выполнение коду смарт-контракта. Наш разбор абстракции аккаунтов рассказывает об этом подробнее.
Обычный кошелёк и кошелёк на смарт-контракте
| Характеристика | Обычный кошелёк (EOA) | Кошелёк на смарт-контракте |
|---|---|---|
| Кто управляет | Один приватный ключ | Программируемые правила, один или несколько ключей |
| Восстановление при утере ключа | Только через резервную копию сид-фразы | Возможно через хранителей или резервные ключи |
| Несколько подтверждающих | Нет | Да |
| Лимиты расходов | Нет | Да, если поддерживаются |
| Пакетные транзакции | Нет | Да |
| Оплата газа другими токенами | Нет | Возможна через paymaster’ов |
| Сразу работает в любой EVM-сети | Да | Нужно развернуть в каждой сети |
| Основной риск | Кража или потеря сид-фразы | Ошибки в контракте, обновления, неверная настройка |
Распространённые типы кошельков на смарт-контрактах
Мультиподписные кошельки
Мультиподпись требует нескольких подписей от разных ключей. Safe (ранее Gnosis Safe) — широко используемый пример, популярный у DAO, казначейств проектов и частных лиц с крупными активами. См. как использовать мультиподписные кошельки для общих средств.
Кошельки с социальным восстановлением
Они позволяют группе доверенных хранителей — например, другим устройствам, друзьям или сервису — помочь вам восстановить доступ, если вы потеряете основной ключ. Прочитайте кошельки с социальным восстановлением, чтобы узнать, как работают хранители и как их выбрать.
Потребительские «смарт-аккаунты»
Многие новые приложения используют смарт-аккаунты незаметно для пользователя: можно войти с помощью passkey или электронной почты и платить комиссии, не имея ETH. Это бывает удобно, но проверьте, кто контролирует ключи и как устроено восстановление.
Риски и компромиссы
Кошельки на смарт-контрактах решают одни проблемы, но создают другие.
- 1Риск кода. Ошибка в контракте кошелька может заблокировать или раскрыть средства. Предпочитайте кошельки с долгой историей и публичными аудитами.
- 2Риск обновлений. Некоторые кошельки можно обновлять. Если ключи обновления скомпрометированы, скомпрометирован и ваш кошелёк. Выясните, какие обновления требуют вашего одобрения.
- 3Риск восстановления. Хранители, которые вступят в сговор, будут взломаны или исчезнут, могут либо украсть доступ, либо заблокировать его.
- 4Доступность в сетях. Кошелёк на смарт-контракте должен существовать в каждой сети. Отправка токенов на ваш адрес в сети, где кошелёк не развёрнут, может потребовать дополнительных шагов, а в некоторых конфигурациях средства будет невозможно вернуть.
- 5Совместимость. Некоторые приложения и биржи обрабатывают контрактные кошельки иначе, например при проверке подписей или зачислении депозитов.
- 6Фишинг подписей. Контрактные кошельки остаются уязвимыми, если вы одобряете вредоносные транзакции. Следуйте рекомендациям из статьи как безопасно подписывать транзакции.
Как безопасно выбрать и использовать такой кошелёк
- Выбирайте кошелёк с долгой публичной историей и опубликованными аудитами.
- Изучите его документацию об обновлениях, восстановлении и поддерживаемых сетях.
- Проверьте его на небольшой сумме, включая тест восстановления, прежде чем переводить крупные суммы.
- Перед получением средств убедитесь, в каких сетях развёрнут ваш кошелёк.
- Храните устройства для подписи, например аппаратный кошелёк, в безопасности и с резервными копиями.
- Регулярно проверяйте подключённые приложения и разрешения.
Итог
Кошельки на смарт-контрактах заменяют принцип «один ключ контролирует всё» правилами, которые вы можете настроить сами: несколько подтверждающих, лимиты и восстановление. Это может сделать самостоятельное хранение безопаснее и удобнее, особенно для крупных сумм или общих средств. Цена — новый вид риска: код и настройки кошелька. Поэтому выбирайте зарекомендовавшие себя кошельки, разберитесь в их правилах восстановления и обновления и проверяйте, прежде чем доверять.
Частые вопросы
Что такое кошелёк на смарт-контракте?
Кошелёк на смарт-контракте — это криптоаккаунт, которым управляет код, развёрнутый в блокчейне, а не один приватный ключ. Контракт определяет, кто может одобрять транзакции и на каких условиях. Это делает возможными такие функции, как несколько подписантов, лимиты расходов, социальное восстановление и оплата комиссий в токенах, отличных от нативной монеты.
Кошелёк на смарт-контракте безопаснее обычного кошелька?
Может быть, потому что он устраняет единую точку отказа в виде одной сид-фразы и позволяет настроить восстановление и лимиты. Но он добавляет риск смарт-контракта: ошибка в коде кошелька, вредоносное обновление или неправильно настроенное восстановление могут поставить средства под угрозу. Выбирайте проверенные аудитом и широко используемые кошельки и разберитесь в их правилах восстановления.
Есть ли у кошелька на смарт-контракте одинаковый адрес во всех сетях?
Не обязательно. Поскольку кошелёк — это контракт, его нужно развёртывать отдельно в каждой сети. Некоторые кошельки можно развернуть по одному и тому же адресу в нескольких сетях, другие — нет. Отправка средств на адрес кошелька в сети, где он не развёрнут, может создать проблемы, поэтому проверьте это перед переводом.
Что такое абстракция аккаунтов?
Абстракция аккаунтов — это идея сделать так, чтобы пользовательские аккаунты вели себя как программируемые смарт-контракты. В Ethereum стандарт ERC-4337 позволяет использовать кошельки на смарт-контрактах без изменения базового протокола, а обновление 2025 года добавило способ, с помощью которого обычные аккаунты могут временно использовать код смарт-контракта.
