在探索以太坊这一去中心化智能合约平台的奥秘时,“账户状态”(Account State)是一个核心且基础的概念,它如同现实世界中个人或机构的财务状况与身份信息的综合记录,是以太坊区块链上每一笔交易作用和最终结果的体现,理解账户状态,是理解以太坊如何运作、资产如何流转以及智能合约如何执行的关键。

以太坊的两种账户类型

以太坊上的账户主要分为两类:外部账户(Externally Owned Accounts, EOAs)合约账户(Contract Accounts),这两类账户在结构和状态管理上有着显著区别。

  1. 外部账户(EOAs)

    • 控制者:由用户通过私钥控制,类似于传统银行账户中的个人账户。
    • 状态构成:其账户状态相对简单,主要包含以下几个关键字段:
      • Nonce:账户发起的交易数量(对于发送交易)或账户创建的合约数量(对于创建合约),用于防止重放攻击并确保交易顺序。
      • Balance:账户持有的以太币(ETH)数量,以“wei”为最小单位(1 ETH = 10^18 wei)。
      • Storage Root:一个默克尔 Patricia 树(Merkle Patricia Trie)的根哈希,对于 EOAs 而言,这个树通常是空的,因此其哈希值是一个固定的空值,EOA 本身不存储持久化数据。
      • Code Hash:账户代码的哈希值,对于 EOAs,它们没有代码,因此这个字段是一个固定的空账户代码哈希。
    • 特点:EOA 是发起交易的起点,可以主动发起交易(如转账、调用合约),但不能被其他合约直接“调用”来执行代码(除非通过交易触发)。
  2. 合约账户

      随机配图