昨天在日本大阪举办的Devcon 5 大会上,ConsenSys创始人透露称以太坊2.0的phase 1-2将提前落地,可能在2020年底就可以推出,而这比原计划要提前近两年的时间。 那这究竟是怎么一回事呢?是开发者们实在太给力,以至于团队能超前完成任务了? 当然不是这个原因,真正的原因是:以太坊2.0原分片方案实施难度太高,为了加快落地,研发团队对其进行了简化。 为此,以太坊创始人Vitalik 刚发布了还热乎的“减少分片数量,加快跨分片通信”的提议。 那这个新提议的具体内容有哪些呢? 原文在这里:https://notes.ethereum.org/@vbuterin/HkiULaluS 太懒不看?给你核心要点:
(注:下面是具体方案描述) 序言/根本原因当前的以太坊2.0体系结构过于复杂,特别是在费用市场层面,这是由针对eth2基础层的主要故障所创建的layer-2解决方案引起的:虽然分片内的区块时间是非常低的(3-6s),但分片之间的底层通信时间却是非常高的,这需要1-16个epoch周期,而如果超过1/3的验证者离线,这个时间甚至会更多。这使得“乐观”解决方案成为了必要前提:一个分片内的子系统“假装”提前知道其它分片的状态根,通过某种中等安全的机制(如轻客户端)来学习它们,并通过使用这些(可能,但不确定的)状态根处理交易来计算自己的状态。一段时间后,一个“后卫”进程会遍历所有的分片,检查哪些计算使用了有关其他分片状态的“正确”信息,并丢出所有未使用这些“正确”信息的计算。 而这个过程是有问题的,这是因为,虽然它可有效地模拟很多情况下的超高速通信时间,但是复杂的情况,是由“乐观的”ETH和“真实的”ETH之间的差距引起的。具体而言,我们无法合理地期望区块提议者“知道”乐观ETH,因此,如果分片A上的用户向分片B上的用户发送ETH,则在分片B上的用户拥有协议层ETH(这是唯一可用来发送交易费的东西)之前,会存在一个时间延迟。而要想绕过这一点,要么需要去中心化交易所(它们有自身的复杂性和低效率问题),要么需要中继市场(这引起了人们对垄断中继者审查用户的担忧)。 此外,目前的交联(crosslink)机制增加了大量的复杂性,实际上它需要一整套区块链逻辑,包括奖惩计算、分叉选择规则等,它们需要被纳入分片链中,并作为Phase 1(阶段1)的一部分。 本文档提出了一个彻底的替代方案,它消除了所有这些问题,从而使以太坊2.0能够更快地使用,另外还降低了风险(文档中还记录了一些折衷方案)。 方案细节我们把 注意一个关键的细节:现在有一条路径,任何分片的slot-N+1区块都可以知道所有分片的所有slot-N 区块。因此,我们现在有一类的单slot跨分片通信(通过Merkle收据)。 现状(近似图) 新提议 我们改变了证明链接的结构:它不再包含“crosslink”(包括以某种复杂的序列化形式表示许多分片区块的“数据根”),而只包含单个区块内容的数据根,其内容完全由“提议者”决定。分片区块还将包括来自提议者的签名。提议者的计算方法与以前相同,都是基于persistent-committee(常设委员会)的算法,而这是为了鼓励p2p网络的稳定性。如果没有可用的提案,交联委员会成员可投票赞成一个空的“零提案”。 在该状态下,我们像以前一样存储一个map 将 如果当前slot是
为 发布信标区块N和信标区块N+1之间的过程如下:
注意,不需要有参与者不断积极地下载分片区块区块数据,相反,提议者在发布提案时,只需在小于3秒的时间内上传最高512 kB的数据(假设有400万个验证者,每个提议者平均每12.8万个slot周期会上传一次),然后委员会只需在小于3秒的时间内下载最高512 kB的数据,即可验证提案(每个验证者将被要求在每个epoch周期执行一次此操作)。 请注意,这低于当前每个验证者的平均负载(即每个epoch周期约2MB)。但是,“突发性”负载会是更高的:之前为3秒内最高64KB,现在改为3秒内最高512KB。 从证明(来自400万验证者)加载的信标链数据更改如下:每个证明大约300字节的固定数据,外加一个位字段(bitfield),即每个epoch周期400万bit,或每个slot 8192 byte。因此,当前方案的最大负载为128 * 300 + 8192 = 46592,尽管平均负载可能更像32 * 300 + 8192 = 17792,甚至可通过压缩来降低(证明包含冗余信息)。 而在该提议中,我们会看到两种负载: 最大负载为128 * 300 + 128 * 200 + 8192 = 72192,平均负载也许为80 * 300 + 10 * 200 + 8192 = 34192。 还要注意,证明聚合在每个分片中每个slot的开销为65536 * 300 / 64 = 307200 字节。这为运行节点的系统提供了一个需求基础,因此使区块数据变得比这小得多也没有什么价值。 从计算上讲,唯一显著增加的开销,是更多的配对(pairing,更具体的说,是更多的 Miller循环),而具体数据是从每个区块最多128增加到最多192,而这将增加大约200ms的区块处理时间。 分片“基本操作系统”每个分片都有一个状态,即映射 在分片区块头中,我们放置了一个“receipt root”(收据根),其中包含一个映射 分片 这允许在分片间的EE之间即时传输ETH,每个区块的开销为 (32 * log(64) + 48) * 64 = 15360字节。 我们可按下面的方式修改执行环境(EE):每个分片都有一个状态,其中包含状态根以及执行环境(EE)的余额。执行环境将能够发送收据,因而将币直接发送给其它分片上的相同执行环境。这将使用一个Merkle分支处理机制来完成,每个分片EE状态为其它分片存储一个nonce,以此作为重放保护。EE也可以直接向区块提议者支付费用。 而这种方式,除了提供了足够的功能(允许用户将币存放在分片上,使用这些币发送交易费用,并在分片内轻松地移动这些币)之外,还消除了对中继市场的迫切需求,也消除了执行环境(EE)承担乐观实施跨分片状态的负担。 优化证明为了提高效率,我们还进行了以下优化:如前所述,查阅slot n的证明可完整地包含在slot n+1中。然而,如果这样的证明包含在后面的slot中,则必须以“简化形式”包含它,该“简化形式”仅包含信标区块(head, target, source),而不包含任何交联(crosslink)数据。 这种方法不仅减少了数据,而且重要的是,通过强制“旧证明”保存了相同的数据,它减少了验证证明所需的配对(pairing)数量:在大多数情况下,来自同一slot的所有旧证明都可通过单个配对(pairing)进行验证。如果链不分叉,则在最坏情况下,验证旧证明所需的配对数限制为epoch长度的两倍。如果链确实发生了分叉,那么包含所有证明的能力,将取决于更高百分比的提议者(例如是1/32,而不是1/64)是诚实的条件,并且还需要包含更早的证明。 保留对轻客户端的支持每天,我们随机选择一个由256个验证者组成的委员会,这些验证者可以在每个区块上签名,其签名可包含在区块n+1中以获得奖励。这样做是为了让低权利的轻客户端也能够工作。 其它可能的扩展
而对于这一新的分片方案,也有社区成员发出了自己的疑问,比如Raymond Durk写道: “如果现在这样做,那以后(以太坊2.0)分片数量要扩展到1024,它的实现会复杂吗?” 对此,Vitalik的回复是“并不复杂”。 你的看法是什么呢? —- 编译者/作者:巴比特资讯 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
以太坊2.0将加速落地 简化分片方案新鲜出炉
2019-10-11 巴比特资讯 来源:区块链网络
LOADING...
相关阅读:
- 牛市来了准备发车2020-08-02
- 把股市的盈利部分投资币市是明智的2020-08-02
- GICC格林保险受邀参加金色财经区块链周郑州峰会掀开中原地区区块链产2020-08-02
- BTC走势何去何从?2020-08-02
- “大奖章”来了,以太坊2.0还会远吗?2020-08-02