Vitalik:实施跨分片交易的一种新方式_TALI:Italian Lira

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

以下是提案译文:

以太坊2.0阶段2的要求之一,是能够快速地将ETH从一个分片移动到另一个分片。尽管通过常用收据机制的跨分片交易是可能的,因为协议本身只需提供对彼此分片的每个分片的状态根的访问,但跨分片ETH需要在协议活动中实现更安全的目的。原因是我们需要跟踪每个分片中有多少ETH,并且我们需要一个重要的机制来防止跨分片传输的重放问题。

与Vitalik Buterin相关的地址向0x9e92开头地址转入3500枚以太坊:5月10日消息,据Lookonchain监测,与Vitalik Buterin相关的0xD04d开头地址向0x9e92开头地址转入3500枚以太坊,Vitalik Buterin从2022年12月30日至今已向0x9e92开头地址转入17800枚以太坊,价值约3300万美元。[2023/5/11 14:55:48]

一般来说,基于收据的机制确实解决了这一问题,但它是通过具有“已消耗收据ID”的状态树来实现的,这将相当复杂地添加到当前名义上的无状态系统中。之所以需要此收据ID树,是因为我们允许收据无序使用。也就是说,如果爱丽丝从分片A向分片B发送一笔交易,然后Applebaum也从分片A向分片B发送一笔交易,那么有可能会出现Appelbaum的交易更早在分片B中被接受的情况。这是必要的,因为系统使用的是gas方法来处理收据消耗交易,爱丽丝可能会决定不为这笔传输交易支付费用。

Vitalik:以太坊2.0或需多年才能解决扩容问题:以太坊联合创始人Vitalik Buterin表示,以太坊基础层可扩展性还有很长路要走,很可能在很多年之后都无法实现区块链基础层扩容。按照Vitalik说法,基于应用程序基础层扩容或许会在以太坊2.0最后一个主要阶段完成之后才会出现,所以可能需要等待几年。Vitalik表示,他鉴于当前情况建议将以太坊扩容工作全部放在二层Layer 2解决方案上,同时他建议一旦「以太坊1.5阶段」完全通过权益证明,那么基本上就不会关注扩容问题了。如果用户不确信「以太坊1.5阶段」能够解决容量问题,那么还可以采取折衷方法,即:拥有少量执行分片(比如4-8个)和更多数据分片。Vitalik建议在钱包中直接构建二层协议,比如MetaMask或Status,他也强调在「跨二层协议传输」方面需要做更多工作,二层解决方案可以某种方式成为协议本身一部分,而以太坊1.0则可以用作为Optimistic Rollup客户端。[2020/10/3]

因此,这里就出现了一个问题:我们是否可用一个按顺序处理收据的机制,来代替处理收据的机制,这样对于“上次从分片A收到的分片B的收据ID”,我们只需一个变量可递增?

Vitalik Buterin推特发布五个以太坊扩展策略:\tVitalik Buterin在推特上发布了5个扩展策略:1、多条独立链; 2、超大区块; 3、不改变安全模型的逐步升级(例如、用压缩的delta+STARKs替换txs+sigs);4、双层网络(主区链和Plasma);5、分片技术。此前Vitalik Buterin推特上称,分片即将到来[2018/6/9]

也就是说,每个分片A保持其状态,对于每个其他分片B而言,则是两个值:将从分片A发送到分片B的下一个收据的nonce,以及将从分片B接收到分片A的下一个收据的nonce。

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

N个分片分别都发送N个收据,会对目标分片产生

的负载。

为了解决这个问题,我们可以采用以下机制:每个分片都需在一个区块中处理最高N个收据;如果其他分片处理的收据少于N,它可使用其它分片的Merkle证明来证明这一点。每个分片不断地向信标链转发它已处理的收据总数,这用于提供更新的“gas价格”,以便将收据发送到该分片。例如,每一区块分片的收据处理队列是满的,gas价格可增加10%,最多可达到N。

这确保了在极端情况下,DoS攻击最终无法增加接受分片队列的长度,因此,每则消息都会得到处理,但这始终可发送一笔执行最小数量跨分片活动的交易。或者,分片需要将其EIP1559gasprice发布到信标链来处理区块费用;该费用也可用于此项功能。

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

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

?

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

[0:0ms0-5:209ms