主页 > imtoken钱包ios下载 > 以太坊创始人 Vitalik Buterin 发布了跨分片交易的新提案

以太坊创始人 Vitalik Buterin 发布了跨分片交易的新提案

imtoken钱包ios下载 2023-10-20 05:11:08

10 月 29 日,以太坊联合创始人 Vitalik Buterin 发布了一项关于跨分片交易的新提案。 所谓跨分片交易是以太坊2.0平台需要实现的功能。

以下是提案的翻译:

以太坊 2.0 第 2 阶段(phase 2)的要求之一是能够将 ETH 从一个分片快速移动到另一个分片。 虽然通过通常的接收机制可以实现跨分片交易,但由于协议本身只需要提供对与另一个分片的每个分片的状态根的访问以太坊分片什么时候实现,因此跨分片 ETH 需要在协议中实现更安全的目的活动 。 原因是我们需要跟踪每个分片中有多少 ETH,我们需要一个重要的机制来防止跨分片传输的重放问题。

一般来说,基于收据的机制确实解决了这个问题,但它是通过一个带有“消费收据 ID”的状态树来解决的,这对于添加到当前名义上的无状态系统中间件来说会非常复杂。 收据 ID 树是必需的,因为我们允许乱序使用收据。 也就是说,如果 Alice 从分片 A 向分片 B 发送了一笔交易,然后 Applebaum 也从分片 A 向分片 B 发送了一笔交易以太坊分片什么时候实现,那么 Appelbaum 的交易有可能更早发生在分片 B 的接受情况中。这是必要的,因为系统使用gas方式进行receipt消费交易,Alice可能会决定不为这笔转账交易付费。

因此,这里就产生了一个问题:是否可以将处理收据的机制换成按顺序处理收据的机制,这样对于“最后从分片A收到的分片B的收据ID”,我们只需要A变量自增就可以了?

也就是说,每个分片 A 保持其状态,并且对于每个其他分片 B,两个值:(i)将从分片 A 发送到分片 B 的下一个收据的随机数,以及(ii)将接收分片的随机数A 从分片 B 收到的下一张收据。

“谁买单”这个问题的答案很简单:区块生产者每个区块需要处理一定数量的来自其他分片的收据,并通过向收据的源分片收费来限制费率。 然而,这里有一个主要问题:如果有人通过从所有分片向它发送收据(无意或故意)对特定分片进行拒绝服务攻击,会发生什么情况?

N个分片分别发送N个收据,会在目标分片上产生o(N2)个负载。

为了解决这个问题,我们可以采用如下机制:每个分片最多需要处理一个区块中的N个收据(比如N=64); 如果其他分片处理的收据少于 N 个,它可以使用其他分片。 一张纸的 Merkle 证明来证明这一点。 每个分片持续将其已处理的收据总数转发到信标链,该信标链用于提供更新的“gas price”以将收据发送到该分片。 比如每个区块分片的receipt处理队列满了,gas price可以提高10%,最多N个。

这确保在极端情况下,DoS 攻击不会最终增加接受分片队列的长度,因此每条消息都将得到处理,但这将始终发送执行最少跨分片活动的事务。 或者,分片需要将其 EIP 1559 gasprice 发布到信标链以处理区块费用; 此费用也可用于此功能。

如果我们有这种跨分片发送ETH的机制,我们也可以将其用于一般的收据发送功能,从而创建一个具有强保障的跨分片交易系统。

这里的主要挑战是,为了计算收据的效果,我们需要有人自愿提供 Merkle 验证的状态内容。 如果不编写完整状态,就无法在协议级别强制执行此操作; 但可以做的是增加一个形式的要求:“为了包含你自己的交易,你还必须在队列中提供跨分片收据的验证内容。”