本文深入剖析以太坊交易中的元数据、缓存和数据三大核心组成部分,手把手教你解读链上交易的真实面貌。
发送了ETH?为AMM提供过流动性?部署过智能合约?所有这些操作都会在世界计算机上留下不可篡改的记录。那么,这些交易数据究竟包含什么信息?让我们一探究竟。
以太坊作为一台世界计算机,是存在于数千台计算机网络中的全球共享基础设施。用户通过钱包与以太坊交互,钱包创建并发送交易至网络,一旦被接收,交易就会被写入区块中。
以太坊交易的三个核心组成部分
每笔以太坊交易都由三个关键部分构成:
- 元数据:包含发送/接收的ETH金额、gas详细信息以及签名数据
- 缓存:交易预计会使用的账户和私钥列表
- 数据:交易的有效载荷(智能合约代码或API调用)
元数据:交易的基础信息
元数据字段包含了交易的基本信息,以下是几个关键字段的解析:
chainid - 由EIP-155提出,用于保护链免受重放攻击
type - 交易类型:新合约创建(0x0)和其他所有类型(0x2)。EIP-2718引入了封装功能(0x2),允许更多不影响以太坊核心规范的交易类型
nonce - 从特定地址发送的交易数量。交易被打包到区块后,钱包的nonce值会增加,有效防止重放攻击
to - 接收交易的地址(钱包或智能合约)
value - 转账的ETH数额(注意:仅计算ETH,不包括其他代币)
gas - 交易使用的gas单位数量
maxFeePerGas - 用户愿意支付的最高费用(每gas单位的WEI价格),包括基础费用和优先费
maxPriorityFeePerGas - 用户在基础费用外愿意支付的最高优先费(每gas单位的WEI价格),直接支付给矿工/验证者作为激励
gasPrice - 交易需支付的每gas单位成本
(r, s, v) - 构成用户交易签名的三个值,用于在EVM执行前验证交易合法性
缓存:优化交易效率的关键
缓存部分包含访问列表(accessList),即交易将使用的地址和私钥列表。虽然交易仍可使用列表外的资源,但成本会更高。
访问列表由EIP-2929提案提出,允许客户端在交易期间获取和缓存数据。目前通过访问列表获取地址和私钥数据可享受9折优惠,未来随着以太坊对轻客户端支持的增强,这一折扣力度可能会进一步扩大。
数据:交易的有效载荷
数据部分以三种方式呈现:
- ETH转账 - 空白数据字段
- 智能合约API调用 - 包含函数和参数名称
- 新智能合约部署 - 包含智能合约代码
输入字段的数据以二进制形式记录,但可以转译为人类可读格式。这些数据存在于链上,但不属于EVM状态的一部分。它们仅在交易期间为合约提供数据,无法被以太坊追踪,也不能在共识层使用。
EVM只能使用当前交易提供的数据,无法查看历史交易。这一特性对于需要将历史数据写入区块链(用于后续手动检索)但不考虑直接访问EVM的应用程序非常有用。
Rollup是最早充分利用这一想法的应用程序类型。Rollup依赖于这样一个事实:将数据写入输入字段比直接写入以太坊EVM状态的成本要低得多。
哈希函数:数据安全的基础
在深入了解交易数据前,需要理解哈希函数的重要作用。
哈希函数是一段将任意数据量转换为压缩、统一数值的代码。无论输入数据长度如何,输出数据的长度都保持一致。最关键的是,哈希函数不可反向运行,这为数据安全提供了坚实基础。
常见问题
什么是以太坊交易的非ce值?
非ce值是从特定地址发送的交易数量计数器。每笔交易成功打包后,钱包的非ce值就会增加。这个机制主要目的是防止重放攻击,确保每笔交易的唯一性。
gas费用和交易手续费有什么关系?
gas是以太坊网络中计算工作的计量单位,而交易手续费是用户为执行交易支付的实际费用。手续费 = gas使用量 × gas价格,其中gas价格由市场供需决定。
为什么访问列表能降低交易成本?
访问列表通过预先声明交易将使用的地址和私钥,让客户端能够提前缓存相关数据,减少实时查询的开销。目前这可以带来10%的成本折扣,未来折扣力度可能进一步扩大。
智能合约调用和数据存储有什么区别?
智能合约调用直接影响EVM状态,而数据存储只是将信息记录在交易输入字段中。后者成本更低,但不能被EVM直接访问,适合需要记录但不需要实时处理的数据。
如何查看自己交易的详细数据?
可以通过以太坊区块链浏览器查询交易哈希值,查看交易的完整详细信息。👉 探索更多交易分析策略
Rollup为什么选择使用数据字段而不是直接写入状态?
因为将数据写入输入字段的成本远低于直接修改EVM状态。Rollup利用这一特性将大量交易数据批量记录在链上,而在链下执行计算,显著降低了整体成本。
现在,你已经掌握了读懂以太坊交易的关键知识。下次查看交易记录时,你将能真正理解这些数据背后的含义和原理。