VITA:Vitalik:Eth2分片链简化提案

作者:VitalikButerin

来源:ECN以太坊中国

要点提炼

持续性分片链的概念将不复存在,相反,每个分片区块都是直接的交联。提议人发出提案,交联委员会负责批准,一锤定音。

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

在L1和L2层实施了诸多简化方案:所需的分片链逻辑更少,由于“本地”跨分片通信发生在1个时隙内,无需通过Layer2进行跨分片加速,(iii)无需通过去中心化交易所来促进跨分片交易费的支付,(iv)执行环境能够进一步简化,(v)无需再混合序列化和哈希。

主要劣势:(i)信标链成本更高,分片区块产生时间更长,对“突增性”带宽需求更高,但对“平均”带宽的需求更低。

介绍/理念

以太坊2.0目前的架构过于复杂,尤其是在费用市场方面。这个问题由layer2解决方案引起:虽然分片内的区块时间是非常短的,然而分片间的基础层通信时间特别长,需要1-16个epoch。这就亟待“乐观”的解决方案:一个分片内的子系统通过某种中等安全的机制,“假装”提前知道其它分片的状态根,并使用这些不确定的状态根来处理交易,以此来计算自己的状态。一段时间后,所有的分片都将经历“后卫”进程,检查哪些计算使用了其他分片状态的“正确”信息,并抛弃未使用“正确”信息的所有计算。

而这个过程是存在问题的,虽然它能够有效地模拟许多情况下的超高速通信时间,但是“乐观”ETH和“真实”ETH之间的差距衍生出了其他复杂情况。具体而言,我们不能假设区块提议者“知道”乐观的ETH,因此,如果分片A上的用户向分片B上的用户发送ETH,则分片B上的用户在拥有协议层ETH之前,会出现时间延迟。如果想避免延迟,要么需要去中心化交易所,要么需要中继市场。

Vitalik Buterin:已向阿桑奇的AssangeDAO捐款:2月7日消息,AssangeDAO是一个以维基解密创始人阿桑奇命名的去中心化自治组织,该组织宣称将筹集资金,帮助阿桑奇支付法律费用,并开展活动,提高公众对司法系统系统性故障的认识。据以太坊生态去中心化基础设施Gnosis联合创始人Martin K?ppelmann在推特透露,他已经向AssangeDAO捐赠了10 ETH,而以太坊联合创始人Vitalik Buterin回应道,「我也捐赠了」。不过,目前尚不清楚Vitalik Buterin的具体捐赠金额。现阶段,AssangeDAO 通过 JuiceBox 平台的第一轮融资已于北京时间 2 月 7 日 6 时 32 分结束,目前共筹集了12630个ETH,超过了ConstitutionDAO(People)筹集的11613枚ETH,第二轮融资将于北京时间2月9日6时32分结束。[2022/2/8 9:36:31]

此外,目前的交联机制大大增加了复杂性,实际上它需要一整套区块链逻辑,包括奖惩计算、单独存储分片内奖励的状态以及分叉选择规则等,这些都需要被纳入分片链中作为阶段1的组成部分。本文档提出了一个大胆的替代方案,用以解决所有这些问题,使以太坊2.0能够更快地投入使用,同时降低风险,其中还有一些折中方案。

方案细节

我们把SHARD_COUNT从1024减少到64,并将每个时隙的分片数上限从16增加到64。这意味着“最优”工作流现在处于每个信标链区块之间,每个分片会产生一个交联一词,因为并没有“连接”到分片链,直接使用“分片区块”更合适)。

Vitalik最推崇作家大为·格雷伯去世:Vitalik Buterin最推崇作家、《债:第一个5000年》作者大为·格雷伯于9月2日去世,大卫?格雷伯认为唯有全面历史地理解了债及其与暴力之间的关系,我们方能开始正确估量我们刚刚到来的新纪元。大为·格雷伯曾深入研究了虚拟货币的历史,认为虚拟信用货币早在农耕帝国时代就是主导货币形式,利息货币的习惯同时也起源于苏美尔,利息率固定为20%,2000年来一直保持稳定。在中世纪(公园600-1500年)虚拟信用货币回归,而当今时代(1971以后)则是债的帝国。值得一提的是,占领华尔街运动也是大为·格雷伯组织的。[2020/9/4]

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

近似现状

新提案

在这个提议中我们改变了证明所连接对象的结构:不再包含“交联”,其中包括以某种复杂序列化形式表示的许多分片区块的“数据根”,而只包含单个区块的数据根,该数据根表示了区块内的内容。分片区块还将包括来自提议者的签名。为了促进p2p网络的稳定性,计算提议者的方式依然使用之前基于常设委员会的算法。如果没有可用提案,交联委员会成员也可以就“零提案”进行投票。

声音 | 以太坊创始人Vitalik Buterin:用异步交易解决跨分片交易:金色财经现场报道,6月29日在2019以太坊技术及应用大会上,以太坊创始人Vitalik Buterin指出,以太坊链被分为1024片,通过cross-link进行分片间的交流,每6分钟每个分片发现其他分片的哈希值。信标链管理共识算法和跨分片的沟通。进一步提出了异步交易,第一步:一个A分片上发出交易,第二步:6分钟片间交流传播交易,第三步:在另一个B分片上记录。[2019/6/29]

我们依然在状态中存储一个映射latest_shard_blocks:shard->(block_hash,slot),不同的是由存储epoch变为时隙。在“乐观情况”下,我们希望这个映射能够更新每个时隙。

将online_validators定义为活跃验证者的子集,活跃验证者即在过去8个epoch中至少有一个epoch包含其证明。如果总数量中2/3的online_validators就给定分片中的新区块达成一致,映射才会进行更新。

假设当前时隙是n?,但对于给定分片i,latest_shard_blocks.slot<n-1,我们则需要该分片的证明来提供范围内所有时隙的数据根。

分片区块仍需指向“先前的分片区块”,我们还是要强制保证一致性,因此该协议就要求多时隙证明是一致的。我们推荐委员会采用以下“分叉选择规则”:

声音 | IOTA爱好者George:Vitalik对IOTA协议的理解并不正确:针对Vitalik评价IOTA Coordicide协议是Avalanche协议的升级克隆,IOTA爱好者George认为Vitalik有些轻浮和草率,并没有认真研究IOTA的新研发成果。他表示:Avalanche协议和IOTA一样是无矿工和第三者验证者的新型加密协议,也称为Leaderless协议。BCH是有矿工的,不是leaderless协议,所以IOTA和BCH丝毫没有关系。IOTA Coordicide协议是第一个Leaderless的协议,所以说IOTA克隆Avalanche协议不现实。[2019/5/31]

对于每个有效且可用的分片区块B,计算其最近消息支持B或B的后代的验证者总权重,暂且将该权重称为分片区快B的“得分”。即使是空白的分片区块也可以有得分。

为slot+1选择得分最高的分片区块。

为slot+k选择得分最高的分片区块,考虑范围内的区块需要指向latest_shard_blocks.slot+(k-1)已经选出的区块。

概述

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

信标区块N发布;

对于任何给定的分片i,分片i的提议者提议一个分片区块。执行该区块可见信标区块N和先前区块的根;

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

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

声音 | Kavita Gupta:风投在加密货币领域的投资方式发生了变化:ConsenSys Ventures创始执行合伙人Kavita Gupta在最近接受采访时表示,风投在加密货币领域的投资方式发生了变化。风投开始适应新的模式,加密货币投资比较独特,其流动性、持续性、风险特征、波动性等因素都与传统的长线投资基金有很大不同。区块链投资者的构成在不断变化,企业家画像也在变化。在这一领域担任CEO的人士从大部分是年期的技术专家变成了很多是经验丰富的工程师和连续创业者。产品的愿景、路线图,尤其是接纳的理由和友好的用户界面已成为了讨论主题之一。一些大型风投公司正在成立加密货币领域专用基金,使世界更加接近Web 2.0和Web 3.0,并验证这一领域的许多早期技术,而这些技术在一年前还看起来可能是不现实的。”[2019/1/30]

成本分析

请注意,参与者不需要随时主动下载分片区块数据。相反地,提议者发布提议时,只需要在3秒内上传上限为512kB的数据,随后委员会验证提议时,只需要在3秒内下载上限为512kB的数据。

请注意,此操作的要求低于目前每个验证者的长期负载要求,即每个epoch约2MB。然而,这对“突增性”负载的要求更高:之前是3秒内上限64KB,现在需要在3秒内达到上限512KB。

证明负载的信标链数据更改如下。

每个证明有大约300字节的固定数据,加上一个位字段,即每个epoch400万bit,每个时隙8192字节。因此,目前方案的最大负载为128*300+8192=46592,平均情况中的负载可能更接近32*300+8192=17792,即使这样还可以通过压缩证明中的冗余信息来降低负载。

在本提议中,我们可以看到两种负载:

时隙n的证明将包含在时隙n+1中。我们可以允许包含两个最受欢迎的分片区块/区块头组合,所以就有了128个未经压缩的证明

时隙n+1之后的时隙n中压缩版证明数量最多为128

因此最大负载计算为128*300+128*200+8192=72192,平均情况负载约为80*300+10*200+8192=34192。

还要注意的是,证明聚合在每个分片中每个时隙的成本为65536*300/64=307200字节。这为运行节点提供了一个自然的系统需求基础,因此要再压缩区块数据的话也没有什么意义。

从计算层面来说,唯一大幅增加的花销是需要更多的配对,每个区块的上限从128增加到192,而这将使得区块处理时间延长200ms。

“基础操作系统”分片

每个分片有一个状态,它映射到ExecEnvID->(state_hash,balance)。一个分片区块被分成一组大块,每个大块指定一个执行环境。一个大块的执行依靠状态根和块的内容作为输入,并输出?元组的一个列表,每个分片最多拥有一个EE_id,并且我们从该EE的余额中减去value的总数。

在分片区块头里,我们放置了一个“收据根”,里面包含了一个映射:shard->…](每个分片最多8个元素;并应该意识到跨分片绝大多数的EE转移是发送到相同的EE,在这种情况下元素的数目甚至更少)。

分片i上的分片区块必须包含一个分片j收据的默克尔分支,而这个分片j是相互分片,该分支位于另一分片的“receiptroot”。接收的值被分配给它的EE,并且msg_hash对于EE执行是可访问的。

这就允许不同分片之中的EE可以即时进行ETH转移,此时每个分片的成本为(32*log(64)+48)*64=15360字节。msg_hash可以被用于减少伴随ETH转移所传递的跨分片信息待验证内容的大小,因此在一个高度活跃的系统里,15360字节数据是必不可少的。

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

我们可以接着修改执行环境(EE)系统:每个分片都有一个状态,该状态包含状态根和执行环境的余额。执行环境将能够发送收据,向其它分片的相同EE直接发送货币。这个过程将使用默克尔分支处理机制来完成,每个分片的EE状态储存着一个其余每个分片的随机数,用以抵御重放(replay)攻击。EEs也可以用来直接向区块提交者支付费用。

这提供了足够强大的功能性,使得EEs能够建立在这样的基础之上:允许用户在分片上存币,并将其用以交易费用开支,跨分片上进行这些币的转移,就如在同一分片内进行操作一样简便,从而消除了对中继市场需求的紧迫性,并让EEs承担实施乐观跨分片状态的负担。

压缩证明

出于对效率问题的考量,我们还进行了以下的优化。如前所述,查阅slotn的证明可完整地包含在slotn+1中。但是,如果此种证明内嵌在后续的时隙中,则必须以“精简形式”进行嵌套,仅包含信标区块,而不包含任何交联数据。

这样既起到裁减数据的效用,更重要的是,通过强制“旧证明”保存相同数据,可以减少用以验证证据所需的配对数:在大多数情况下,所有来自相同时隙的旧证明都可以经由单一配对验证。如果链不分叉,那么在最坏的情况下,用以验证旧证明的所需配对数会被限制在epoch长度的2倍。如果链确实分叉,则要包含所有证明的能力就得依赖于一个更高的诚实提议者比例,并且要将更早的证明也包含进去。

保证轻客户端的参与

每天,我们随机选择一个由大约256个验证者组成的委员会,这个委员会可以在每个区块上进行签名,其中签名被包含的验证者便可以在区块n+1中获得奖励。这样做的目的是允许计算能力不高的轻客户端参与。

题外话:数据可用性根

证明一个128kB数据的可用性的操作是多余的,几乎没有价值。与此相反,有意义的是:要求一个区块能够提供该区块接受并组合在一起的所有分片区块数据的串联根。然后可以根据此数据创建单个数据可用性根。请注意,创建这些根可能要花费比一个时隙更长的时间,因此,最好用于检查一个epoch前的数据的可用性。

其他可能方案

slotn的分片区块必须查阅slot?n-1的信标链区块,而不是slot?n。此种措施将允许每个时隙并行循环发生,而不是串联形式,从而减少时隙时间,这样做的代价是导致跨分片通信时间从1个时隙上升到2个时隙。

如果一个区块提议者试图将区块大小扩大到64KB以上(备注:目标128kB),他需要首先生成64kB的数据,然后让交联委员会对其进行签名,接着,他们可以添加一个引用第一个签名的64kB数据,以此类推。这将鼓励区块创建者在每隔几秒就可以提交他们区块的部分完成版本,从而创建一种预先确认的机制。

加快秘密领导人选举的发展。

与其使用“强制嵌入”机制,我们不如寻求一个更简单的替代方案:每个分片为其余的每个分片维护一个“传入随机数”和一个“传出随机数”,一个分片制造的收据将需要手动进行添加,并由分片接收者按顺序进行处理。收据生成将受限于每个区块每个目标分片的少数收据,以确保一个分片能够处理所有传入的收据,即使是所有分片同时向它分送收据。

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

地球链

[0:15ms0-0:972ms