以太坊(Ethereum)作为全球第二大公链,不仅开创了“区块链应用平台”的范式,更通过智能合约实现了从“货币机器”到“计算机”的跃迁,其运作机制融合了密码学、分布式系统与经济模型,支撑了DeFi、NFT、DAO等海量应用的落地,本文将从底层架构、核心组件、共识机制、交易执行及生态协同五个维度,拆解以太坊公链的运作逻辑。

底层架构:区块链与状态机的结合

以太坊的本质是一个分布式状态机,其核心是记录全球共享的“状态”(State)并基于交易(Transaction)实现状态转移,这一架构由三层构成:

  1. 区块链层(数据层)
    以太坊通过区块(Block)存储历史数据,每个区块包含区块头(Header)和交易列表(Transactions),区块头固定包含:父区块哈希、时间戳、难度值(当前PoS机制下已替换为“有效性”参数)、随机数(Nonce)、状态根(State Root)、交易根(Transactions Root)、收据根(Receipts Root)等关键信息。“状态根”“交易根”“收据根”通过Merkle树计算得出,确保数据不可篡改——任何节点的数据修改都会导致根哈希变化,从而被网络拒绝。

  2. 状态层(账户模型)
    以太坊采用账户模型(Account Model),而非比特币的UTXO模型,账户分为两类:

    • 外部账户(EOA, Externally Owned Account):由用户私钥控制,用于发起交易(如普通钱包账户),其状态包括 nonce(交易计数器,防止重放攻击)、余额(ETH数量)、代码(空,因EOA无智能合约逻辑)。
    • 合约账户(Contract Account):由智能代码控制,无法主动发起交易,只能被其他账户调用触发,其状态包括 nonce(用于合约创建)、余额、代码(智能合约字节码)、存储(合约持久化数据)。
      所有账户的状态共同构成“全局状态树”(Global State Tree),每完成一笔交易,状态树就会更新一次。
  3. 执行层(EVM)
    以太坊虚拟机(Ethereum Virtual Machine, EVM)是状态转移的“引擎”,负责执行智能合约代码和交易,EVM是一个基于栈的虚拟机,支持256位整数运算,其“确定性”(相同输入必然产生相同输出)保证了全网节点对状态转移结果的一致性,无论节点位于何处,只要输入交易和当前状态相同,EVM的执行结果必然一致,这是分布式系统达成共识的基础。

核心组件:交易、区块与数据结构

以太坊的运作围绕“交易-区块-链”展开,三者通过密码学紧密绑定。

  1. 交易(Transaction)
    交易是状态转移的“指令”,由EOA或合约账户发起,结构包括:

    • 接收者地址:目标账户(EOA或合约地址,若为空则表示创建合约);
    • 签名:发送者用私钥对交易签名,证明所有权;
    • Nonce:发送者账户的交易计数器,防止重放攻击;
    • Gas Limit:发送者愿意为交易支付的最大Gas量,限制交易计算量;
    • Gas Price:单位Gas的价格,决定交易优先级(PoS机制下已替换为“优先费”);
    • 数据(Data):交易附加数据,如调用合约时的函数参数和值。
  2. 区块(Block)
    区块是交易的“容器”,由验证者(Validator)打包生成,每个区块包含:

    • 区块头:如前所述,包含父区块哈希、状态根等元数据;
    • 交易列表:当前区块包含的所有交易(按Gas Price排序,优先处理高Gas交易);
    • 叔块(Uncle)(已逐渐淘汰):为避免分叉导致算力浪费,将孤立区块作为“叔块”包含进主链,给予少量奖励。
  3. Merkle树(Merkle Tree)
    以太坊使用Merkle树(特别是Patricia Merkle Tree,一种前缀树优化版)高效验证数据完整性,交易列表生成“交易根”,状态数据生成“状态根”,执行结果生成“收据根”,三者均写入区块头,节点只需下载区块头和少量Merkle分支,即可验证交易是否存在于区块中(轻节点验证的核心原理)。

共识机制:从PoW到PoS的演进

共识机制是公链的“灵魂”,用于解决“分布式系统的一致性问题”——即所有节点对“哪个区块是合法的”达成一致,以太坊的共识机制经历了从工作量证明(PoW)权益证明(PoS)的重大升级(2022年“合并”升级完成)。

  1. PoW(已淘汰)
    早期以太坊通过PoW共识,依赖矿工(Miner)竞争打包区块,矿工通过计算随机数(Nonce)寻找满足难度目标的哈希值,第一个找到的矿工获得区块奖励 交易Gas费,PoW的安全性依赖算力,但能耗高、效率低(出块时间约15秒)。

  2. PoS(当前机制)
    “合并”升级后,以太坊转向PoS,核心是验证者(Validator)机制:

    • 质押(Staking):用户质押至少32个ETH成为验证者,进入验证者池;
    • 出块与投票:系统通过随机算法(RANDAO)选择验证者打包区块(Proposer)和验证区块(Attester),打包者创建区块,验证者对区块投票表示认可,需获得超过2/3验证者的投票才能成为合法区块;
    • 惩罚机制:验证者若作恶(如双签、离线),质押的ETH将被扣除(Slashing),确保诚实行为;
    • 权益与收益:验证者根据质押份额获得区块奖励和交易费,收益与质押时长和数量相关。
      PoS的安全性依赖“质押权益”而非算力,能耗降低99%以上,且支持更快的出块时间(约12秒)和更高的吞吐量。

交易执行:Gas机制与状态转移

以太坊通过Gas机制防止恶意交易消耗网络资源,确保系统的可持续运行。

  1. Gas的作用
    Gas是交易执行的“燃料”,单位为“Gwei”(1 ETH = 10^9 Gwei),每笔交易执行都需要消耗Gas,包括:

    • Gas Limit:发送者设置的最多可消耗Gas量,若执行完Gas未用完,剩余Gas退还;若执行中Gas耗尽,交易失败,已消耗Gas不退还(惩罚机制)。
    • Gas Price:单位Gas的价格,发送者通过调整Gas Price竞争打包优先级(PoS下改为“优先费”,直接支付给验证者)。
  2. EVM执行流程

    • 交易打包:验证者从交易池中按优先级选择交易,打包进区块;
    • 状态读取:EVM从全局状态树中读取发送者、接收者等账户状态;
    • 指令执行:根据交易类型(转账/合约调用),执行EVM指令(如ADD、SLOAD等);
    • 状态更新:执行完成后,更新全局状态树(如账户余额、合约存储),并生成收据(Receipt,记录交易结果、日志等);
    • Gas结算:扣除发送者Gas(Gas Limit × Gas Price),将剩余Gas退还,并将Gas费支付给验证者。
  3. 智能合约的生命周期
    合约账户通过“创建交易”(接收者地址为空)部署,生成合约地址(基于发送者地址和Nonce计算),调用合约时,交易数据包含函数选择器(函数签名的哈希前4字节)和参数,EVM根据这些指令执行合约代码,修改状态树中的存储(Storage)。

生态协同:跨链、Layer2与未来演进

以太坊的公链运作不仅依赖底层技术,更通过生态组件实现扩展与互操作。

  1. 跨链技术
    为解决以太坊主网的可扩展性限制,跨链桥(如Chainlink CCIP、Multichain)实现以太坊与其他区块链(如比特币、Polygon)的资产转移,通过预言机(Oracle)获取外部数据,确保跨链交易的安全性。

  2. Layer2扩容方案
    主网(Layer1)负责最终结算,Layer2通过状态通道、Rollup(Optimistic Rollup/ZK-Rollup)等技术将计算和存储移至链下,仅将结果提交到主网,Optimistic Rollup假设交易