go-ethereum 交易类型(Transaction Types)

在 go-ethereum (Geth) 中,交易类型(Transaction Types)是根据以太坊协议的不同阶段和升级(如 EIP 引入的改进)来区分的。以下是 LegacyTxDynamicFeeTx 的主要区别以及其他常见的交易类型:


1. LegacyTx(传统交易)

  • 定义:以太坊最初的交易类型,在伦敦升级(EIP-1559)之前的标准格式。

  • 关键字段

    • Nonce:交易序号。

    • GasPrice:用户愿意支付的每单位 Gas 价格(固定值,由用户直接指定)。

    • GasLimit:交易消耗的 Gas 上限。

    • To:接收方地址(如果是合约创建则为空)。

    • Value:转账的 ETH 金额。

    • Data:附加数据(如合约调用参数)。

    • V, R, S:签名数据。

  • 特点

    • 用户必须明确指定 GasPrice,矿工按价格高低优先打包。

    • 不支持 EIP-1559 的动态费用机制。


2. DynamicFeeTx(动态费用交易,EIP-1559 交易)

  • 定义:由 EIP-1559 引入(2021 年伦敦升级),旨在改进费用市场机制。

  • 关键字段

    • ChainID:防止跨链重放攻击。

    • MaxPriorityFeePerGas(小费):用户支付给矿工的优先费用。

    • MaxFeePerGas:用户愿意支付的最大 Gas 价格(含基础费用 + 小费)。

    • GasLimit:Gas 上限。

    • To/Value/Data:同 LegacyTx。

    • AccessList(可选):预访问列表(EIP-2930),优化存储访问成本。

  • 特点

    • 费用分两部分:

      • 基础费用(Base Fee):由协议自动计算并销毁(不归矿工)。

      • 优先费用(Priority Fee):矿工的小费。

    • 更可预测的 Gas 费用,减少用户超额支付的情况。

    • 必须指定 MaxFeePerGasMaxPriorityFeePerGas,而不是固定 GasPrice


3. 其他交易类型

a) AccessListTx(EIP-2930)

  • 定义:伦敦升级前的过渡类型,引入 AccessList 优化存储访问成本。

  • 关键字段

    • 类似 LegacyTx,但增加了 AccessList(预声明要访问的存储槽)。

    • 明确的 ChainIDGasPrice

  • 用途:减少某些复杂合约调用的 Gas 消耗。

b) BlobTx(EIP-4844,Proto-Danksharding)

  • 定义:为支持分片(Danksharding)引入,允许携带大块数据(Blob)。

  • 关键字段

    • MaxFeePerBlobGas:Blob 数据的费用上限。

    • BlobHashes:Blob 数据的哈希列表。

  • 用途:主要用于 Layer2(如 Rollups)数据存储,降低交易成本。


4. 核心区别总结

特性 LegacyTx DynamicFeeTx (EIP-1559) AccessListTx (EIP-2930) BlobTx (EIP-4844)
Gas 费用机制 固定 GasPrice 动态费用(基础费 + 小费) 固定 GasPrice 动态费用 + Blob 费
EIP 标准 - EIP-1559 EIP-2930 EIP-4844
签名兼容性 支持旧钱包 需 EIP-1559 支持 需 EIP-2930 支持 需 EIP-4844 支持
数据扩展 AccessList Blob 数据

5. 如何选择?

  • LegacyTx:兼容旧版节点或工具链(如某些交易所)。

  • DynamicFeeTx:大多数场景的首选(费用更合理)。

  • AccessListTx:需要优化合约存储访问时。

  • BlobTx:Layer2 数据批量提交。


6. 代码中的类型定义

在 Geth 的 core/types 中,交易类型通过枚举区分:

go
 
type TxType uint8

const (
	LegacyTxType TxType = iota
	AccessListTxType
	DynamicFeeTxType
	BlobTxType
)

每种类型有对应的结构体(如 LegacyTxDynamicFeeTx),并通过 tx.Type() 方法获取类型。

posted @ 2025-06-04 14:00  若-飞  阅读(145)  评论(0)    收藏  举报