以太坊作为全球第二大区块链平台,其账号架构是理解整个网络运作、用户交互以及智能合约执行的基础,与许多早期区块链(如比特币)采用相对简单的UTXO模型不同,以太坊设计了一套更为复杂和功能丰富的账户体系,旨在支持更灵活的编程和复杂的去中心化应用(DApps),本文将深入探讨以太坊区块链的账号架构,包括其核心组成、工作原理以及不同类型账户的特点。
核心概念:账户的本质
在以太坊中,账户是网络中具有特定状态和行为的实体,每个账户都存储在一个全球共享的状态数据库中,该数据库记录了每个账户的余额、代码(如果是合约账户)以及存储数据,账户之间可以通过交易进行交互,从而改变整个网络的状态。
以太坊的账户体系主要包含两种类型:外部账户(Externally Owned Accounts, EOAs) 和 合约账户(Contract Accounts)。
外部账户(EOAs):用户的入口
外部账户是由用户通过私钥控制的账户,是我们通常所说的“用户账户”,它们没有关联的代码,其行为完全由交易发起者通过私钥签名来驱动。
-
密钥对(Key Pair):
- 私钥(Private Key):一串随机生成的、保密的数字字符串,相当于账户的“密码”或“所有权证明”,谁拥有了私钥,谁就拥有对该账户的绝对控制权,可以发起交易、转移资产等,私钥必须严格保密,一旦泄露,账户资金将面临被盗风险。
- 公钥(Public Key):由私钥通过加密算法(椭圆曲线算法,如secp256k1)生成,与私钥成对出现,公钥可以公开,用于验证私钥签名的有效性。
- 地址(Address):以太坊账户的标识符,由公钥进一步通过特定算法(如Keccak-256哈希)计算得到,通常以“0x”开头,长度为40个十六进制字符(20字节),地址是公开的,用于接收以太坊或其他代币,以及作为交易的目标方。地址 = 公钥的哈希值。
-
主要特征:
- 由私钥控制:用户通过控制私钥来控制外部账户。
- 无代码:外部账户本身不包含可执行的代码。
- 主动发起交易:外部账户可以主动发起交易,转移以太坊、调用合约函数或创建新的合约账户。
