原文标题:《Vitalik:为什么我不担心 EIP-1559 中的松弛区块容量》 对 EIP-1559 的一种批评是:区块大小是可变的,在 [0,25M] 的范围内浮动而不再是固定的 12.5M gas limit,这使得客户端需要处理加倍的负载。这个论点进一步演绎为,如果我们认为客户端是可以处理这么高的负载,那么他们应该可以任何时候都处理这么高的负荷,这样我们倒不如放弃 EIP-1559 而直接做更有用的事——把区块大小限制提升一倍。 这个想法背后的核心观点是,大区块的首要危害来自经由客户端的那些最大区块,而不是平均区块大小。我认为这个想法是错的 (因此 EIP-1559 对客户端产生的风险并不会比固定 gas limit 的机制更高),以下是我的理由。 重温:不马上把 gas limit 提高到 100M 的理由有哪些?三个理由: 1. 正常情况下的区块处理时间会增加 从当前大约 400 ms 增加到约 3.2s,这会带来很多负面后果:
2. 由于 DoS 攻击,最坏情况下区块处理时间会延长,从现在的 20~80 秒延长到可能 160~640 秒。 3. 存储增长率会升高 从现在大约 50 GB/ 月上升到大约 400 GB/ 月,这会导致
论据 1:EIP-2929 已经弥补了 EIP-1559 的不足EIP-2929 对存储访问操作的 gas 成本进行了提升,已经把最坏情况 DoS 攻击所需的 gas 消耗增加了 3 倍。这意味着 EIP-2929 与 EIP-1559 配合起来实际上是比现在在最坏情况下处理区块所需消耗净减少了 1.5 倍。 这里很自然会问一个问题:“如果 EIP-2929 那么好,为什么不直接把 gas limit 调高到 25M 或 37.5M”?这个回答很简单:理由 2 不是避免 gas 消耗提高的唯一原因。即使 DoS 问题可以被完全解决,理由 1 和理由 3 下的问题在可见的未来还会存在。因此,EIP-2929 给的额外松弛部分是不可以用以对区块容量进行大幅提升。 论据 2:对于相同程度的 DoS 攻击,短时间攻击引起的峰值带来的弊端远比长时间攻击带来的要少如果攻击者对链发起攻击,用区块容量最大值(目标容量的 2 倍)的垃圾数据填充区块,每个区块的 gas 价格上涨 1.125 倍。这个涨幅是呈指数上升的:持续生成 5 个满区块(大约 65 秒)会使得 gas 价格上升 1.8 倍,而在 5 分钟之后,gas 价格会上升 15 倍 (10 分钟后是 225 倍)。为了维持攻击,攻击者必须按照这些疯狂上涨的价格支付所有的交易费。因此,一次现实的攻击可持续的时间大概是 5 分钟。 (责任编辑:admin) |