什么是以太坊原始交易?
以太坊原始交易是钱包签名时生成的 RLP 编码字节串:对于类型化交易,先是一个字节的类型前缀(0x01 到 0x04),随后是由 nonce、费用字段、gas 上限、to、value、data 和 ECDSA 签名(v、r、s)组成的 RLP 列表。发送方地址并不存储在其中;节点从签名中恢复它,交易哈希则是这些字节的 Keccak-256。
从哪里获取原始交易
- MetaMask 和大多数钱包:不直接显示,但调用
eth_signTransaction的 dApp 和库会收到它;ethers.js 提供tx.serialized和tx.unsignedSerialized。 - 节点:Geth、Erigon 和大多数 RPC 提供商支持
eth_getRawTransactionByHash;Etherscan 在“Get raw tx data”下显示。 - 硬件钱包流程:要求你确认的十六进制正是这种格式。
字段说明
最大总费用是 gas 上限 × 每单位 gas 最高费用:交易可能花费的最大值;实际费用通常更低。未签名哈希是私钥签署的摘要。访问列表预先声明存储键以降低 gas。对于 blob 交易,blob 数据本身不属于这里显示的 RLP,只包含其版本化哈希。
交易类型一览
| 类型 | EIP | 费用字段 | 额外字段 |
|---|---|---|---|
| 0(legacy) | EIP-155,链 ID 编码在 v 中 | gasPrice | 无 |
| 1 | EIP-2930 | gasPrice | accessList |
| 2 | EIP-1559 | maxPriorityFeePerGas、maxFeePerGas | accessList |
| 3 | EIP-4844 | 同类型 2,另加 maxFeePerBlobGas | blobVersionedHashes |
| 4 | EIP-7702 | 同类型 2 | authorizationList |
实例演示
一笔类型 2 的交易,gas 上限 21,000,maxFeePerGas 30 gwei,maxPriorityFeePerGas 2 gwei,显示的最大总费用为 21,000 × 30 gwei = 630,000 gwei = 0.00063 ETH。如果区块基础费用为 12 gwei,则有效价格为 12 + 2 = 14 gwei,实际费用为 294,000 gwei = 0.000294 ETH;剩余的 0.000336 ETH 不会被收取。若 to 等于 USDT 合约且 calldata 以 a9059cbb 开头,则这是一笔代币转账,其 value 字段为 0。
需要编码 calldata 或解码未知函数?请使用 ABI 编码 / 解码器和选择器查询。