以太坊作为全球第二大公链,其账户体系是支撑区块链运行的核心基础,与许多区块链采用单一账户模型不同,以太坊创新性地设计了两类账户:外部拥有账户(Externally Owned Account,简称EOA)和合约账户(Contract Account),这两类账户在功能、权限、交互方式及底层实现上存在显著差异,共同构成了以太坊“账户抽象”生态的基石,本文将详细解析两类账户的定义、特征及区别,帮助读者全面理解以太坊的账户机制。
外部拥有账户(EOA):由用户私钥控制的“人”账户
外部拥有账户(EOA)是以太坊中最常见的账户类型,由个人用户或实体直接控制,其核心特征是通过私钥签名发起交易,EOA相当于传统金融体系中的“个人银行卡”,用户通过私钥(类似银行卡密码+U盾)掌握账户的绝对控制权。
核心特征
- 私钥控制:EOA的所有权由私钥决定,私钥的持有者即账户的绝对控制人,用户通过私钥对交易进行签名,证明交易意愿并授权执行。
- 主动发起交易:EOA是唯一能主动发起“外部交易”的账户类型,转账代币、调用合约功能等操作,均需由EOA签名后发起。
- 无代码逻辑:EOA不具备智能合约代码,无法自主执行逻辑或响应链上事件,其行为完全由用户通过私钥签名决定。
- 地址生成:EOA地址由公钥通过Keccak-256哈希算法生成,格式为“0x”开头的42位字符串(如
0x742d35Cc6634C0532925a3b844Bc454e4438f44e)。
