EOA против smart account: различия, которые имеют значение

·7 мин. чтения·Автор: SSP Editorial Team
Тёмная обложка с логотипом SSP, значком DEFI и заголовком EOA против smart account, рядом янтарные иконки ключей и щита

EOA против smart account: различия, которые имеют значение

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

Эта статья разбирает два типа аккаунтов — externally owned account (EOA) и smart account — и сравнивает их по тем осям, которые пользователь самостоятельного хранения реально ощущает изо дня в день. Это вторая статья нашей серии об account abstraction; если вы ещё не читали Account abstraction с первых принципов, это хорошая отправная точка. Здесь мы сосредоточимся именно на различии между EOA и smart account.

Что такое EOA?

Externally owned account — это исходный аккаунт Ethereum. Он определяется ровно одной парой ключей secp256k1: приватным ключом и выведенным из него публичным ключом. Адрес, который вы видите, — строка 0x... — выводится из этого публичного ключа. Кто владеет приватным ключом, тот и контролирует аккаунт, и точка.

Этот единственный ключ выполняет всю работу. Он подписывает каждую транзакцию подписью ECDSA. К аккаунту не прикреплён никакой код, нет правил, нет условий. Единственный вопрос сети при поступлении транзакции: «Действительна ли эта подпись для этого адреса?» Если да, транзакция исполняется.

Большинство кошельков-расширений для браузера, с которыми вы сталкивались, — модель с единственным ключом в стиле MetaMask — создают EOA. Одна seed-фраза выводит ключ, ключ контролирует аккаунт, а защита этой seed-фразы и есть вся модель безопасности. Это просто, хорошо изучено и работает уже десятилетие. Это также негибко: один ключ, один подписант, одна схема подписи, и если этот ключ утечёт, аккаунт потерян.

Что такое smart account?

Smart account — это контрактный аккаунт: аккаунт, поведение которого определяется развёрнутым кодом, а не единственным ключом. Вместо «действительна ли эта одна подпись ECDSA» аккаунт запускает собственную логику валидации, чтобы решить, принять ли операцию. Эта логика программируема.

Поскольку правила живут в коде, smart account может требовать две подписи вместо одной, принимать схемы подписи помимо обычного ECDSA, навязывать лимиты расходов или задавать путь восстановления — всё, что предписывает его контракт. Кошельки на смарт-контрактах в стиле Safe — известный пример этой модели. В Ethereum и других сетях EVM стандарт, позволяющий таким аккаунтам вести себя как полноценные аккаунты без изменения протокола, — это ERC-4337.

Контроль: один ключ против пользовательских правил

Это главное различие. У EOA в протоколе зашито ровно одно правило: одна действительная подпись ECDSA от одного ключа авторизует всё. Нет способа добавить второго обязательного утверждающего или сказать «суммы выше этого порога требуют дополнительного подтверждения». Ключ и есть аккаунт.

Smart account решает за себя сам. Он может требовать кворум multisig, ограничивать определённые действия или добавлять сессионные ключи. SSP использует это, чтобы реализовать 2-of-2 multisig: один ключ хранится в браузерном расширении SSP Wallet, второй — в мобильном приложении SSP Key, и логика валидации аккаунта требует одобрения обоих, прежде чем принять любую транзакцию. Одно лишь утёкшее браузерное расширение не может перемещать средства, потому что контракт попросту не примет авторизацию одним ключом.

Восстановление: что происходит при потере ключа

С EOA ключ и есть аккаунт. Потеряйте seed-фразу — и аккаунт невосстановим; допустите её утечку — и атакующий получит полный контроль. Встроенного средства нет, потому что нет логики, к которой можно было бы апеллировать, — важен только этот единственный ключ.

Smart account может определить восстановление как часть своих правил. Поскольку валидация программируема, контракт может задавать альтернативные пути авторизации, назначенных участников восстановления или ротацию ключей с временной задержкой. Конкретная модель SSP — 2-of-2: потеря доступа к любому из устройств не отдаёт ваши средства атакующему, потому что обе подписи требуются всегда. Практический эффект в том, что ни одно отдельное устройство не является единой точкой отказа.

Кто платит за gas и в каком токене

EOA платит за собственные транзакции, и платит в нативной монете сети. Чтобы переместить токен ERC-20 в Ethereum, EOA всё равно нужен ETH для покрытия gas. Если на вашем аккаунте есть токены, но нет ETH, вы застряли — частый и досадный опыт новичков.

Smart account может разорвать эту связь. В рамках ERC-4337 компонент под названием paymaster может спонсировать gas для операции или принимать оплату в токене, отличном от нативной монеты. Комиссию может покрыть третья сторона или её можно оплатить тем же токеном, который вы уже перемещаете. Мы подробно разбираем это в статье Спонсирование gas и paymasters; суть здесь в том, что «кто платит и чем» перестаёт быть фиксированным.

Объединение нескольких действий

С EOA каждая транзакция — это отдельная, индивидуально подписанная операция. Классический паттерн ERC-20 — одобрить контракту трату ваших токенов, а затем вызвать контракт — это две транзакции, две подписи, две оплаты gas, последовательно.

Smart account может объединить несколько действий в одну операцию, которая либо полностью успешна, либо полностью откатывается. Одобрение и обмен становятся одним шагом. Это отчасти удобство, отчасти безопасность: нет наполовину завершённого состояния, в котором вы выдали одобрение, но последующее действие так и не произошло.

Схемы подписи

EOA проверяет одно: подпись ECDSA над secp256k1. Это единственная схема, которую протокол проверяет для externally owned accounts, и её нельзя изменить.

Smart account проверяет всё, что его код написан проверять. Он может проверять несколько подписей, экзотические кривые или агрегированные подписи. Аккаунты SSP на EVM проверяют агрегированную подпись Schnorr: две частичные подписи от браузерного расширения и мобильного приложения объединяются — в стиле MuSig2 над secp256k1 — в одну on-chain-подпись, которую валидирует контракт. Сеть видит одну подпись; за ней стоит модель безопасности из двух независимых утверждающих. Это то, чего EOA структурно сделать не может.

Развёртывание и адреса

EOA существует в тот момент, когда существует ключ. Сгенерируйте пару ключей офлайн — и соответствующий адрес уже действителен; это ничего не стоит и не затрагивает никакой контракт. Аккаунт просто есть.

Smart account — это контракт, поэтому он должен быть развёрнут on-chain, прежде чем сможет нести поведение, заданное кодом. На практике кошельки ERC-4337 используют детерминированный, контрфактический адрес: адрес вычисляется заранее из параметров аккаунта, поэтому он может получать средства ещё до того, как контракт фактически развёрнут, а развёртывание происходит при первом использовании. Вы можете поделиться своим адресом и получать платежи до того, как какая-либо транзакция развёртывания пройдёт.

Стоимость: честный компромисс

Программируемость не бесплатна. Поскольку smart account выполняет логику валидации в контракте, его операции стоят несколько больше gas, чем обычный перевод EOA, который примерно настолько дёшев, насколько вообще бывают транзакции Ethereum. Развёртывание аккаунта в первый раз также имеет разовую стоимость.

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

Что использует SSP и когда каждая модель уместна

Скажем прямо: SSP использует smart account через ERC-4337, чтобы реализовать свой 2-of-2 multisig в сетях EVM — Ethereum, Polygon, Base, BNB Smart Chain и Avalanche. Контракт требует агрегированную подпись Schnorr, построенную из обоих ваших устройств, а EVM-реализация SSP была проаудирована Halborn в 2025 году. Чтобы увидеть, как складываются части, прочитайте архитектуру account abstraction в SSP, а для специфики по сети см. Ethereum в SSP.

Так когда же уместна каждая модель? EOA — максимально простой аккаунт: самый дешёвый gas, мгновенное существование, без развёртывания. Для конфигурации с одним пользователем и одним ключом, где простота в приоритете, он вполне годится. Smart account уместен, когда вам нужны свойства, которые один ключ дать не может, — несколько обязательных утверждающих, логика восстановления, объединение, спонсируемый или деноминированный в токене gas. Компромисс — несколько более высокий gas и само понятие развёртывания.

Для кошелька самостоятельного хранения, вся посылка которого в том, что ни один отдельный ключ не должен быть единой точкой отказа, smart account — естественный выбор. Именно поэтому SSP построен на нём. Чтобы глубже разобраться в самой модели аккаунтов Ethereum, документация по аккаунтам Ethereum — авторитетный источник, а спецификация ERC-4337 — стандарт, который делает smart accounts практичными сегодня.

Поделиться статьёй

Похожие статьи