以太坊,作为全球第二大加密货币和最具影响力的智能合约平台,其独特的技术架构是其价值的基石,要真正理解以太坊,就必须掌握其核心概念之一:账户模型,以及作为其经济血液的基本单位,本文将深入浅出地解析这两大关键要素,带你揭开以太坊运作的神秘面纱。

以太坊的账户模型:不仅仅是钱包那么简单

与比特币采用的UTXO(未花费交易输出)模型不同,以太坊借鉴了传统银行账户的概念,采用了更为直观的账户模型,在以太坊世界里,每一个账户都拥有一个唯一的地址,可以存储以太坊(ETH)和代表各种资产或权益的代币。

以太坊的账户主要分为两大类:外部账户和合约账户,它们共同构成了以太坊生态的参与者。

外部账户

外部账户,也常被称为EOA(Externally Owned Account),是由用户通过私钥直接控制的账户,你可以把它理解为个人数字钱包或银行账户。

  • 控制方式:由用户持有的私钥控制,谁能掌握私钥,谁就拥有该账户的绝对控制权,可以发起交易、转移资产。
  • 特征:
    • 由私钥驱动:账户的生命周期始于一个随机生成的私钥,通过椭圆曲线算法派生出对应的公钥,再通过哈希算法生成最终的地址。
    • 只能发起交易:EOA只能主动发起交易,不能被动接收交易,你可以主动发送ETH给他人,但不能让一个“程序”自动向你支付ETH(除非你通过智能合约预先设定规则)。
    • 无代码:EOA本身不包含任何代码,其行为完全由交易数据决定。
  • 生活中的类比:就像你的个人银行账户,你可以用银行卡(私钥)主动转账、消费,但不能让银行系统自动给你发工资(除非你设置了自动入账,这其实是通过银行系统这个“合约”实现的)。

合约账户

合约账户,也称为CA(Contract Account),是部署在以太坊区块链上的智能程序,它没有私钥,其行为由预设的代码逻辑控制。

  • 控制方式:由智能合约代码控制,合约账户的每一次“行动”(即执行代码)都必须由一个外部账户发起的交易来触发。
  • 特征:
    • 由代码驱动:合约账户的核心是一段用Solidity等语言编写的代码,定义了它的规则和功能。
    • 被动响应:合约账户不能主动发起交易,只能响应来自其他账户的交易,当收到一笔交易时,它会执行预设的代码逻辑,并可能改变自身状态或与其他账户交互。
    • 拥有代码和存储:合约账户不仅有代码,还拥有自己的存储空间,用于记录数据(一个DeFi协议中用户的代币余额)。
  • 生活中的类比:合约账户就像一个自动售货机,你(EOA)投入钱币(发起交易),按下按钮(调用特定函数),售货机(合约)就会根据内部程序执行出货或找零的操作,它不会自己跑出来向你推销商品。

随机配图