在以太坊中,有一个重要的概念就是账户(Account)。账户以地址为索引,地址由公钥衍生而来,取公钥的最后20字节(关于公钥将在2.3.3节具体介绍)。在以太坊系统中存在两种类型的账户,分别是外部账户(Externally Owned Account,EOA)和合约账户(关于智能合约的内容将在第4章详细介绍)。
·外部账户一般简称为“账户”,它们都是由人创建的,可以存储以太币 ,是由公钥
·和私钥控制的账户。
·合约账户是由外部账户创建的账户。
以太坊中这两种账户统称为“状态对象”(存储状态)。其中外部账户存储以太币余额状态,而合约账户除了余额还有智能合约及其变量的状态。通过交易的执行,这些状态对象发生变化,而Merkle树用于索引和验证状态对象的更新。一个以太坊的账户包含四个部分。
·该地址交易的次数(nonce),它是用于保障每笔交易能且只能被处理一次的计数器,有效避免重放(replay)攻击 。
·账户目前的以太币余额。
·账户的合约二进制代码(合约账户)。
·账户的存储(默认为空)。
Etherscan.io( https://etherscan.io/ )是一个浏览、查询和分析以太坊区块的平台,读者可以在上面查看以太坊中的账户、交易以及代币等信息。我们会在第8章介绍Etherscan.io。