Vitalik:实施跨分片交易的一种新方式
10月29日,以太坊联合创始人Vitalik Buterin发布了一份关于跨分片交易的新提案,所谓跨分片交易,是以太坊2.0平台需要实现的一种功能。
以下是提案译文:
以太坊2.0 阶段2 (phase 2)的要求之一,是能够快速地将ETH从一个分片移动到另一个分片。尽管通过常用接收机制的跨分片交易是可能的,因为协议本身只需提供对彼此分片的每个分片的状态根的访问,但跨分片ETH需要在协议活动中实现更安全的目的。原因是我们需要跟踪每个分片中有多少ETH,并且我们需要一个重要的机制来防止跨分片传输的重放(replay)问题。
一般来说,基于收据(receipt)的机制确实解决了这一问题,但它是通过具有“已消耗收据ID”的状态树来实现的,这将相当复杂地添加到当前名义上的无状态系统中。之所以需要此收据ID树,是因为我们允许收据(receipt)无序使用。也就是说,如果爱丽丝(Alice)从分片A向分片B发送一笔交易,然后Applebaum也从分片A向分片B发送一笔交易,那么有可能会出现Appelbaum的交易更早在分片B中被接受的情况。这是必要的,因为系统使用的是gas方法来处理收据消耗交易,爱丽丝(Alice)可能会决定不为这笔传输交易支付费用。
因此,这里就出现了一个问题: 我们是否可用一个按顺序处理收据的机制,来代替处理收据的机制 ,这样对于“上次从分片A收到的分片B的收据ID” ,我们只需一个变量可递增?
也就是说,每个分片A保持其状态,对于每个其他分片B而言,则是两个值:(i)将从分片A发送到分片B的下一个收据的nonce,以及(ii)将从分片B接收到分片A的下一个收据的nonce。
至于“谁来买单”问题的答案很简单:区块生产者需处理每个区块来自其他分片一定数量的收据,通过对收据的源分片收费来限制费率。然而,这里有一个主要问题:如果一个人通过从所有分片向特定分片发送收据(可能是意外的,也可能是故意的),对其进行了拒绝服务攻击时,会发生什么呢?
N个分片分别都发送N个收据,会对目标分片产生
的负载。
这确保了在极端情况下,DoS攻击最终无法增加接受分片队列的长度,因此,每则消息都会得到处理,但这始终可发送一笔执行最小数量跨分片活动的交易。或者,分片需要将其EIP 1559 gasprice发布到信标链来处理区块费用;该费用也可用于此项功能。
如果我们有这种发送ETH跨分片的机制,我们还可以将其用于通用收据发送功能,从而创建一个有强大保证的跨分片交易系统。
这里存在的主要挑战是,为了计算收据的效果,我们需要有人自愿提供状态的Merkle验证内容。如果未写入完整状态,则无法在协议级别强制执行此操作;但可以做的是添加表单要求:“为了包含你自己的一笔交易,你还必须为队列中的跨分片收据提供验证内容。”
Qubetics Secures 23000 Holders Among the Top Cryptos to Buy This Month, Monero’s Privacy, and Chainlink’s Smart Contracts
Explore top cryptos to buy this month, including Qubetics, Monero, and Chainlink. Discover why these...
MetaHub to Foster Blockchain Innovation and Accessibility in Partnership with FIST
As per MetaHub Global, by partnering with FIST, it intends to make landmark advancements in the dece...
House of Doge and Dogecoin Foundation Unveil Board-Elect, Advisors and Global Dogecoin Adoption Plans
Miami, FL, 17th March 2025, Chainwire...