以太坊2.0将加速落地,简化分片方案新鲜出炉_LAVA:tera币放弃

昨天在日本大阪举办的Devcon5大会上,ConsenSys创始人透露称以太坊2.0的phase1-2阶段将大大提前,可能在2020年底就可以推出,而这比原计划要提前近两年的时间。

那这究竟是怎么一回事呢?是开发者们实在太给力,以至于团队能超前完成任务了?

当然不是这个原因,真正的原因是:以太坊2.0原分片方案实施难度太高,为了加快落地,研发团队对其进行了简化。

为此,以太坊创始人Vitalik刚发布了还热乎的“减少分片数量,加快跨分片通信”的提议。

那这个新提议的具体内容有哪些呢?

原文在这里:https://notes.ethereum.org/@vbuterin/HkiULaluS

太懒不看?给你核心要点:

不再有持续分片链的概念,相反,每个分片区块都是直接的交联。提议人发出提议,交联委员会负责批准,然后完成任务;

分片数从之前的1024减少到64,分片区块大小从kB增加到kB,总分片容量为1.3-2.7MB/s,具体取决于slot时间。如果需要的话,分片数量和区块大小可随时间的推移而增加,比方说10年后最终达到1024个分片,以及1MB区块。

L1和L2层进行了诸多简化:所需的分片逻辑更少,不需要layer-2跨分片加速,因为“本地”跨分片通信是在1个slot时间内发生的,(iii)不需要DEX来促进支付跨分片txfee,(iv)EE可以变得更简单,(v)无需混合序列化和哈希;

以太坊Layer2总锁仓量上涨至59.8亿美元:金色财经消息,据L2BEAT数据显示,当前以太坊Layer2总锁仓量上涨至59.8亿美元,7日涨幅9.73%。其中,锁仓量前五分别为Arbitrum(26.1亿美元,7日涨幅1.66%)、Optimism(21.7亿美元,7日涨幅28.91%)、dYdX(5.24亿美元,7日跌幅7.25%)、Loopring(2.04亿美元,7日涨幅1.85%)、MetisAndromeda(1.76亿美元,7日涨幅25.26%)。[2022/8/6 12:06:34]

主要缺点:(i)信标链开销会较大,分片区块时间会变长,较高的“突发性”带宽需求,但“平均”带宽需求会是较低的。

序言/根本原因

当前的以太坊2.0体系结构过于复杂,特别是在费用市场层面,这是由针对eth2基础层的主要故障所创建的layer-2解决方案引起的:虽然分片内的区块时间是非常低的,但分片之间的底层通信时间却是非常高的,这需要1-16个epoch周期,而如果超过1/3的验证者离线,这个时间甚至会更多。这使得“乐观”解决方案成为了必要前提:一个分片内的子系统“假装”提前知道其它分片的状态根,通过某种中等安全的机制来学习它们,并通过使用这些状态根处理交易来计算自己的状态。一段时间后,一个“后卫”进程会遍历所有的分片,检查哪些计算使用了有关其他分片状态的“正确”信息,并丢出所有未使用这些“正确”信息的计算。

而这个过程是有问题的,这是因为,虽然它可有效地模拟很多情况下的超高速通信时间,但是复杂的情况,是由“乐观的”ETH和“真实的”ETH之间的差距引起的。具体而言,我们无法合理地期望区块提议者“知道”乐观ETH,因此,如果分片A上的用户向分片B上的用户发送ETH,则在分片B上的用户拥有协议层ETH之前,会存在一个时间延迟。而要想绕过这一点,要么需要去中心化交易所,要么需要中继市场。

Ares Protocol开放贡献者Keric:波卡正在成为以太坊2.0强有力的竞争对手:金色财经现场报道,在今日金色财经主办的金色沙龙活动现场,Keric发言指出:目前波卡平行链插槽拍卖需要先接入Rococo测试网进行测试,只有接入Rococo的项目未来才会有竞拍到插槽的可能,目前波卡生态内众多项目大多是拿到了Web3 Grant的项目,本身有一定的技术面,通过技术创新迭代能让波卡更具竞争力。

EOS超级节点竞选只需要拉票,本地运行一个节点服务器就可以参与,而波卡平行链插槽拍卖,平行链需要部署多个区块链节点来运行独立的区块链网络,再通过XCMP的方式接入到波卡网络中,可以说每一个平行链都是一个EOS网络,都可以做类似EOS的超级节点选举,从软件架构上来说,波卡是更复杂的区块链协议,正在构建一个万链互联的网络,一步步实现ETH2.0的规划,波卡的NPOS比DPOS更加的去中心化。而且波卡上面可以有合约,Runtime,转接桥,Layer2等项目,生态多样性比以太坊更大,波卡中的链上升级,链上治理和万链互联正在成为以太坊2.0强有力的竞争对手。[2021/2/3 18:49:20]

此外,目前的交联机制增加了大量的复杂性,实际上它需要一整套区块链逻辑,包括奖惩计算、分叉选择规则等,它们需要被纳入分片链中,并作为Phase1的一部分。

本文档提出了一个彻底的替代方案,它消除了所有这些问题,从而使以太坊2.0能够更快地使用,另外还降低了风险。

方案细节

我们把SHARD_COUNT从1024减少到64,并将每个slot的最大分片数从16增加到64。这意味着“最优”工作流现在是在每个信标链区块之间,而之前每个分片会发布一个交联。

波场孙宇晨:2021仍将是DeFi大年,预计明年还会有大量以太坊需求外溢至波场:12月23日,“瞰见未来—国际区块链技术创新峰会暨Cointelegraph中文一周年”大会在三亚湾海居铂尔曼酒店拉开序幕,本次大会由Cointelegraph中文主办、Nova联合主办,汇聚重磅嘉宾、聚焦行业热门议题,共讨2020年区块链技术发展、落地应用场景,展望区块链行业的未来发展趋势。

会上,Cointelegraph中文CEO Vadim Krekotin与波场创始人孙宇晨围绕加密货币采用、比特币市场变化、DeFi发展趋势等话题展开线上炉边对话。

孙宇晨在对话中表示,“2021仍将是DeFi大年。我认为明年还会有大量以太坊需求外溢至波场,其实我们看到的波场版USDT就是一个很明显的例子。目前,波场一天转帐量大概在40万至50万笔,这其实已经远远大于以太坊本身的需求”。[2020/12/23 16:17:06]

注意一个关键的细节:现在有一条路径,任何分片的slot-N+1区块都可以知道所有分片的所有slot-N区块。因此,我们现在有一类的单slot跨分片通信。

现状

以太坊上的锚定比特币流通量突破14万枚:据欧科云链OKLink数据显示,截至今日11时30分,以太坊上的锚定比特币流通量约合14.01万枚。其中排名前三的分别是WBTC 105131枚,占比75.03%;renBTC 26891 枚,占比19.19%以及HBTC 6010枚,占比4.29%。[2020/10/15]

新提议

我们改变了证明链接的结构:它不再包含“crosslink”,而只包含单个区块内容的数据根,其内容完全由“提议者”决定。分片区块还将包括来自提议者的签名。提议者的计算方法与以前相同,都是基于persistent-committee的算法,而这是为了鼓励p2p网络的稳定性。如果没有可用的提案,交联委员会成员可投票赞成一个空的“零提案”。

在该状态下,我们像以前一样存储一个maplatest_shard_blocks:shard->(block,slot),不同之处在于存储的周期变成了epoch,而不是之前的slot。在“乐观情况下”,我们希望这个map能够更新每个slot。

将online_validators定义为活跃验证者的子集。如果2/3的online_validators同意给定分片的同一新区块,则map会进行更新。

如果当前slot是n,但对于给定分片i,latest_shard_blocks.slot<n-1区块),我们需要该分片的证明,以提供范围.slot+1....min(latest_shard_blocks.slot+8,n-1)]内所有slot的数据根。分片区块仍需指向“先前分片区块”,并且我们仍要强制一致性,因此该协议要求这样的多slot证明是一致的。我们希望委员会使用以下“分叉选择规则”:

“矿工之战”不会发生在以太坊经典:在家庭矿工与工业矿工的竞争中,包括ETH、XMR和SC在内的加密货币均采取积极措施来限制某些硬件的有效性。开发人员Cody Burns发布了一项改变以太坊经典基础算法的提议以适应这项技术。提议试图消除为减少矿机ASIC有效性而设置的代码,并删除以太坊经典中的“DAG”功能。虽然这个提案鼓励ASIC开发有一定风险,但Burns表示,从长远来看ASIC比GPU更高效,是能满足系统需要更多节能采矿设备要求的长期解决方案。如果接受这一举措将需要全系统的升级以及硬分叉,为了激活它,它需要得到采矿界的一致支持以防止分裂。[2018/4/24]

对于每个有效+可用的分片区块B,计算最近消息支持B或B后代的验证者的总权重,我们称之为B的“得分”,空分片区块也可以有得分。

为latest_shard_blocks.slot+1选择拥有最高得分的分片区块;

latest_shard_blocks.slot+k选择拥有最高得分的分片区块;

概述

发布信标区块N和信标区块N+1之间的过程如下:

信标区块N被发布;

对于任何给定的分片i,分片i的提议者提出一个分片区块。此区块的执行可看到信标区块N和旧区块的根;

映射到分片i的证明者进行证明,其中包括对分片i上的slotN信标区块和slotN分片区块的意见;

信标区块N+1发布,其中包括所有分片的证明,区块N+1的状态转换函数会处理这些证明,并更新所有分片的“最新状态”;

开销分析

注意,不需要有参与者不断积极地下载分片区块区块数据,相反,提议者在发布提案时,只需在小于3秒的时间内上传最高512kB的数据,然后委员会只需在小于3秒的时间内下载最高512kB的数据,即可验证提案。

请注意,这低于当前每个验证者的平均负载。但是,“突发性”负载会是更高的:之前为3秒内最高64KB,现在改为3秒内最高512KB。

从证明加载的信标链数据更改如下:每个证明大约300字节的固定数据,外加一个位字段,即每个epoch周期400万bit,或每个slot8192byte。因此,当前方案的最大负载为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字节。这为运行节点的系统提供了一个需求基础,因此使区块数据变得比这小得多也没有什么价值。

从计算上讲,唯一显著增加的开销,是更多的配对,而具体数据是从每个区块最多128增加到最多192,而这将增加大约200ms的区块处理时间。

分片“基本操作系统”

每个分片都有一个状态,即映射ExecEnvID->(state_hash,balance)。一个分片区块被分成一组块,其中每个块指定一个执行环境。块的执行以状态根和块的内容作为输入,并输出一个元组列表,每个分片最多只能有一个EE_id。我们还从EE余额中减去value的和。

在分片区块头中,我们放置了一个“receiptroot”,其中包含一个映射shard->...]。

分片i上的分片区块,需包含彼此分片的分片j收据的Merkle分支,该分支位于其它分片的“receiptroot”。接受的值被分配给它的EE,并且EE执行可访问msg_hash。

这允许在分片间的EE之间即时传输ETH,每个区块的开销为(32*log(64)+48)*64=15360字节。msg_hash可用于减少传递跨分片信息所需验证内容的大小,因此在一个高度活跃的系统中,15360字节通常是必不可少的。

主要的好处:更简单的费用市场

我们可按下面的方式修改执行环境:每个分片都有一个状态,其中包含状态根以及执行环境的余额。执行环境将能够发送收据,因而将币直接发送给其它分片上的相同执行环境。这将使用一个Merkle分支处理机制来完成,每个分片EE状态为其它分片存储一个nonce,以此作为重放保护。EE也可以直接向区块提议者支付费用。

而这种方式,除了提供了足够的功能之外,还消除了对中继市场的迫切需求,也消除了执行环境承担乐观实施跨分片状态的负担。

优化证明

为了提高效率,我们还进行了以下优化:如前所述,查阅slotn的证明可完整地包含在slotn+1中。然而,如果这样的证明包含在后面的slot中,则必须以“简化形式”包含它,该“简化形式”仅包含信标区块,而不包含任何交联数据。

这种方法不仅减少了数据,而且重要的是,通过强制“旧证明”保存了相同的数据,它减少了验证证明所需的配对数量:在大多数情况下,来自同一slot的所有旧证明都可通过单个配对进行验证。如果链不分叉,则在最坏情况下,验证旧证明所需的配对数限制为epoch长度的两倍。如果链确实发生了分叉,那么包含所有证明的能力,将取决于更高百分比的提议者是诚实的条件,并且还需要包含更早的证明。

保留对轻客户端的支持

每天,我们随机选择一个由256个验证者组成的委员会,这些验证者可以在每个区块上签名,其签名可包含在区块n+1中以获得奖励。这样做是为了让低权利的轻客户端也能够工作。

其它可能的扩展

slotn的分片区块须查询slotn-1的信标链区块。这将允许每个slot并行而非串联发生,从而减少slot时间,而其代价是将跨分片通信时间从1个slot时间增加到2个slot时间;

如果区块提议者希望让区块大于64KB,则其首先要生成64KB的数据,然后让交联委员会对其进行签名,然后,他们可以添加另一部分引用第一个签名的64kB,依此类推。这将鼓励区块生产者每隔几秒发布其区块的部分完成版本,从而创建预确认;

加快秘密leader选举的发展;

而对于这一新的分片方案,也有社区成员发出了自己的疑问,比如RaymondDurk写道:

“如果现在这样做,那以后分片数量要扩展到1024,它的实现会复杂吗?”

对此,Vitalik的回复是“并不复杂”。

你的看法是什么呢?

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

金宝趣谈

[0:31ms0-6:549ms