eth/68 - 在交易公告中添加交易类型

该EIP(以太坊改进提案)扩展了以太坊线协议中的NewPooledTransactionHashes消息,使其除了交易哈希外,还能发送交易类型和大小。这主要是为了解决EIP-4844引入的Blob交易等大型交易在网络传播中可能带来的带宽和DoS攻击风险,允许节点更智能地选择和管理交易的获取。

摘要

以太坊线协议定义了客户端之间用于数据交换的请求和响应消息。NewPooledTransactionHashes 消息宣布节点中可用的交易。本 EIP 扩展了此公告消息,使得除了交易哈希之外,节点还会发送交易类型及其大小(如 EIP-2718 中所定义)。

动机

NewPooledTransactionHashes 消息宣布交易哈希,允许对等节点选择性地获取其尚未拥有的交易。

EIP-4844 引入了一种新的 blob 交易类型。由于这些 blob 交易很大,盲目地将其广播给 sqrt(节点数) 个对等节点可能会显著增加带宽需求。在公告消息中添加交易类型和大小将允许节点选择他们想要获取的交易,并允许他们根据过去的行为进行负载均衡或节流对等节点。

添加的元数据字段还将使未来的——无需升级的——协议调整成为可能,以防止某些交易类型(例如 blob 交易)或某些交易大小(例如 128KB+)被盲目地广播给许多对等节点。仅强制公告并按需检索将确保网络行为更具可预测性,限制交易传播 DoS 攻击的放大效应。

规范

修改 NewPooledTransactionHashes (0x08) 消息:

  • (eth/67): [hash_0: B_32, hash_1: B_32, ...]
  • (eth/68): [types: B, [size_0: P, size_1: P, ...], [hash_0: B_32, hash_1: B_32, ...]]

新的 types 元素指的是已公告哈希的交易类型。请注意,交易类型被打包成一个“字节数组”而不是列表。

size_0size_1 等元素指的是已公告哈希的交易大小。

原理

这项改变将使 eth 协议面向未来,以适应可能与所有节点无关的新交易类型。它赋予接收节点更好地控制从对等节点获取的数据的能力,并允许节流特定类型的下载。

types 消息元素是一个字节数组,因为本 EIP 的早期实现错误地以这种方式实现了它。后来决定保留这种行为以最小化工作量。

向后兼容性

本 EIP 改变了 eth 协议,需要推出一个新版本 eth/68。支持多个版本的网络协议是可能的。推出新版本不会立即破坏旧客户端,因为它们可以继续使用协议版本 eth/67

本 EIP 不改变 EVM 的共识规则,也不需要硬分叉。

安全考虑

版权

通过 CC0 放弃版权及相关权利。

  • 原文链接: github.com/nerolation/EI...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Nerolation
Nerolation
江湖只有他的大名,没有他的介绍。