在探索以太坊这个充满活力的去中心化应用平台时,一个基础而至关重要的概念是“账号”,与我们日常使用的传统银行账户不同,以太坊中的账号并非单一类型,而是清晰地划分为两种:外部账号(Externally Owned Account, EOA)合约账号(Contract Account),理解这两种账号的区别、功能及其相互作用,是掌握以太坊工作原理的基石。

外部账号(EOA):你的“个人钱包”

外部账号,也常被称为“个人钱包”或“用户账号”,是以太坊中最常见的账号类型,它由人类用户直接控制和拥有,其核心特征如下:

  1. 私钥控制:每个外部账号都由一对密钥控制:私钥公钥,私钥是用户的绝对秘密,相当于密码或印章,谁拥有私钥,谁就控制该账号,公钥则由私钥通过加密算法生成,可以公开,用于接收资金或验证签名,账号地址实际上是从公钥进一步衍生而来。
  2. 发起交易的能力:只有外部账号才能主动发起一笔交易,这包括:
    • 发送以太币(ETH):将ETH从一个EOA转移到另一个EOA或合约账号。
    • 调用合约:触发智能合约的执行,向合约发送数据或指令。
    • 部署合约:创建一个新的合约账号,这是将智能代码写入以太坊区块链的关键步骤。
  3. 无代码:外部账号本身不包含任何可执行的代码,它更像是一个银行账户,用于存储资产和发起交易,但其行为逻辑完全由用户通过私钥签名决定。
  4. 状态:外部账号的状态相对简单,主要包括:
    • 账户余额(ETH余额):该账号拥有的以太币数量。
    • nonce:一个递增的数字,用于防止重放攻击,确保每笔交易的唯一性。

常见的EOA例子包括MetaMask钱包、Ledger硬件钱包、交易所的用户账户等。

合约账号(Contract Account):智能的“程序化实体”

合约账号,顾名思义,是与智能合约相关联的账号,它不是由人类用户直接通过私钥控制,而是由部署到以太坊网络上的智能代码(Solidity等语言编写)所控制。

  1. 随机配图