以太坊作为全球第二大加密货币和最具智能合约功能的平台,其“交易”概念远比比特币等简单转账要丰富和复杂,理解以太坊交易是掌握以太坊生态、进行DApp交互、参与DeFi、NFT交易等一切活动的基础,本文将详细拆解以太坊交易的构成、原理、类型、费用以及实践中的注意事项。

以太坊交易的本质:状态转换

在以太坊网络中,交易本质上是一次状态转换,以太坊可以看作一个全球共享的、巨大的状态机,而“状态”则是一个包含了所有账户余额、智能合约代码和存储数据的数据库,一笔交易就是指令,促使这个状态机从当前状态转换到下一个新状态。

与比特币主要记录UTXO(未花费交易输出)不同,以太坊的核心账户模型分为两类:

  1. 外部账户 (Externally Owned Account, EOA):由用户通过私钥控制,如我们的钱包账户,能发起交易。
  2. 合约账户 (Contract Account):由智能代码控制,不能主动发起交易,只能响应来自EOA或其他合约的交易。

绝大多数交易都是由EOA发起的,旨在改变以太坊的全局状态。

以太坊交易的核心构成(交易结构)

一笔标准的以太坊交易(由RLP编码)包含以下关键字段:

  1. nonce (序列号):

    • 发送方账户(EOA)发出的交易计数器。
    • 作用:防止重放攻击(重复发送同一笔交易),并确保交易的顺序性,每成功发送一笔交易,nonce值加1,如果nonce不连续(当前nonce为3,却发送了nonce为5的交易),该交易将暂时无法被打包,直到nonce为4的交易被发送并确认。
  2. gasPrice ( gas价格 ):

    • 发送方愿意为每单位gas支付的以太坊数量(单位:Gwei,1 ETH = 10^9 Gwei)。
    • 作用:决定交易费用的优先级,gasPrice越高,矿工(或验证者)打包该交易的意愿越强,交易确认速度越快,在EIP-1559之后,这更多是“优先费”的概念。
  3. gasLimit ( gas限制 ):

    • 发送方愿意为这笔交易支付的最大gas数量。
    • 作用:限制交易执行所需的计算量和存储量,防止恶意或错误代码消耗过多网络资源,如果交易执行实际消耗的gas小于gasLimit,未使用的gas会退还给发送方;如果实际消耗gas超过gasLimit,交易会失败,但已消耗的gas不会退还。
  4. recipient (接收方地址):

    • 交易接收方的地址。
    • 如果是普通转账,接收方是EOA地址。
    • 如果是调用智能合约,接收方是合约地址。
  5. value (转账金额):

    • 发送给接收方的以太坊数量(单位:wei,1 ETH = 10^18 wei)。随机配图