以太坊交易的核心概念
以太坊作为全球第二大公链,其“可编程性”的核心支撑正是交易(Transaction)——即用户向以太坊网络发送的、要求执行特定操作的指令,无论是转账ETH、与智能合约交互(如DeFi理财、NFT交易),还是部署合约,本质上都是通过交易完成的,理解以太坊交易,需先把握其核心组成部分:
以太坊交易的核心结构
一笔标准以太坊交易包含以下字段(以JSON-RPC标准为例):
发送方(From)
交易的发起地址,需通过私钥签名授权,通常由用户的钱包(如MetaMask、Ledger)生成,用于证明交易的真实性。
接收方(To)
- 普通转账:目标地址,即ETH接收者的钱包地址。
- 合约交互:智能合约地址,此时交易会触发合约中的特定函数(如swap、approve)。
- 合约部署:To”字段为空(或固定值
0x),交易数据中包含合约字节码。
价值(Value)
- ETH转账:发送的ETH数量,单位为
wei(1 ETH = 10¹⁸ wei)。 - 零价值交易:仅调用合约函数但不转移ETH(如查询余额)。
gas 限制(Gas Limit)
用户愿意为交易支付的最大gas量,用于估算交易执行所需的计算资源,设置过低会导致交易因“gas不足”失败,过高则可能浪费资金。
Gas 价格(Gas Price)
单位gas的价格,单位为gwei(1 gwei = 10⁹ wei),gas价格越高,交易被矿工优先打包的概率越大(在PoS时代,由验证者打包机制替代)。
交易数据(Data)
- 合约交互:包含函数选择器(function selector)和参数(如NFT的token ID、DeFi的兑换数量)。
- 合约部署:包含合约的初始化代码和字节码。
- 普通转账:通常为空(或备注信息,但以太坊本身不处理文本)。
Nonce
发送方地址发起的交易序号(从0开始递增),用于防止重放攻击(重复执行同一笔交易)和确保交易顺序。
以太坊交易的生命周期
一笔交易从发送到最终确认,经历以下阶段:
交易构建(Transaction Creation)
用户通过钱包或dApp发起交易,填写接收方地址、金额、gas参数等,钱包会自动填充发送方地址和当前nonce值。
交易签名(Signing)
钱包用发送方的私钥对交易数据进行签名(生成v, r, s三个值),证明交易发送权归属,签名后的交易数据格式为RLP(Nonce, GasPrice, GasLimit, To, Value, Data)。
交易广播(Broadcasting)
签名后的交易通过节点(如Infura、Alchemy)或P2P网络广播到以太坊全网,进入内存池(Mempool)——等待被打包的“交易队列”。
