在以太坊生态中,账号(Account)是所有经济活动的基础——无论是发送代币、执行智能合约,还是参与DeFi交互,都离不开账号的参与,但你知道吗?以太坊其实存在两类本质不同的账号:外部拥有账号(Externally Owned Account, EOA)和合约账号(Contract Account),它们在所有权、控制方式、功能实现上有着天壤之别,共同构成了以太坊“账户模型”的核心,本文将带你从底层逻辑到实际应用,彻底搞懂这两类账号的异同。
外部拥有账号(EOA):由私钥掌控的“个人钱包”
定义:外部拥有账号(EOA)是由用户通过私钥直接控制的账号,类似于传统金融中的“个人银行卡”,它没有代码逻辑,完全依赖私钥签名发起交易,是用户与以太坊交互的“入口”。
核心特征:
- 所有权归属私钥:EOA的所有权由私钥完全掌控,谁掌握了私钥,谁就控制了账号中的资产(如ETH、ERC-20代币),私钥一旦丢失,资产将无法找回,这也是“非托管钱包”的核心逻辑。
- 无代码逻辑:EOA本身不包含智能合约代码,无法主动发起交易或执行逻辑,它的行为完全由用户通过钱包(如MetaMask、Ledger)签名后触发。
- 交易发起者:只有EOA可以主动发起交易(如转账、调用合约),当你用MetaMask发送一笔ETH时,实际就是EOA在向目标账号发送交易。
- 地址生成:EOA地址由公钥通过Keccak-256哈希算法生成,格式为“0x”开头的42位字符串(如
0x742d35Cc6634C0532925a3b8D6D4c3D5bB17F37B)。
