В Ethereum есть два типа аккаунтов, и понимание разницы между ними важно для безопасности, работы с DeFi, NFT и любыми смарт-контрактами.
EOA (Externally Owned Account) — обычный пользовательский аккаунт, который контролируется приватным ключом.
Это ваш кошелек: MetaMask, Rabby, Trust Wallet, Ledger и т.д.
Главные признаки EOA:
- может сам инициировать транзакции
- подписывает действия приватным ключом
- имеет адрес, баланс ETH и токенов
- не содержит собственного кода
Именно EOA отправляет ETH, подписывает свапы, минт NFT, стейкинг и взаимодействие с dApps.
Contract Account — это аккаунт смарт-контракта. Он не управляется приватным ключом, а работает по заранее прописанному коду.
Главные признаки Contract Account:
- содержит код смарт-контракта
- не может действовать “по своей воле”
- запускается, когда его вызывает EOA или другой контракт
- может хранить ETH, токены и выполнять сложную логику
Примеры Contract Account:
- токены ERC-20 и ERC-721
- DEX-протоколы вроде Uniswap
- staking-контракты
- DAO, мосты, лендинговые протоколы
Ключевая разница ⚙️
EOA — это владелец и инициатор.
Contract Account — это программа, которая исполняет правила.
Простой пример:
- ваш EOA нажимает “Swap” в кошельке
- транзакция уходит в смарт-контракт Uniswap
- Contract Account рассчитывает курс, комиссии и отправляет токены
Почему это важно знать 👇
- Безопасность
Если скомпрометирован приватный ключ EOA, злоумышленник получает полный контроль над средствами. - Понимание рисков смарт-контрактов
Даже если ваш EOA в безопасности, уязвимость в Contract Account может привести к потере средств. - Газ и логика транзакций
EOA платит за запуск операций, а контракт только исполняет код в рамках вызова. - Разбор ончейн-действий
Когда вы видите транзакцию в Etherscan, важно понимать: кто был инициатором, а какой адрес — контрактом.
Как отличить EOA от контракта? 🔍
Через блокчейн-эксплорер:
- если у адреса есть вкладка Contract и опубликован код — это Contract Account
- если кода нет и адрес просто хранит/отправляет активы — обычно это EOA
Важно: адрес контракта тоже может держать токены и ETH, поэтому по одному балансу тип аккаунта не определить.
Кратко 🧠
- EOA = аккаунт с приватным ключом
- Contract Account = аккаунт с программируемым кодом
- EOA инициирует транзакции
- контракт исполняет заложенную логику
- оба типа аккаунтов имеют адрес и могут хранить активы
Понимание EOA и Contract Account — это база, без которой сложно уверенно разбираться в Ethereum, безопасности кошельков и работе DeFi.
📌 Ниже стоит посмотреть подборку каналов про криптовалюты — там удобно следить за рынком, ончейн-разборами и полезными инструментами.