Eth2 Staking系列:分片共识

栏目: IT技术 · 发布时间: 4年前

内容简介:特别感谢Sacha Yves Saint-Leger和Joseph Schweitzer的审校。分片 (Sharding) 是eth2相较于eth1的诸多改进之一。“分片”是从数据库研究中借用而来,意味着整体数据的一部分。与数据库语境相同,在eth2中,分片意味着将整个系统的存储和计算分割为分片,并独立处理各分片,然后根据需求组合结果。确切来说,eth2将实现许多分片链,其中每个分片具有与eth1链相似的功能,这对于扩展性来说是巨大的提升。然而,eth2中存在一种鲜为人知的分片类型。从协议设计的角度来看,这

特别感谢Sacha Yves Saint-Leger和Joseph Schweitzer的审校。

分片 (Sharding) 是eth2相较于eth1的诸多改进之一。“分片”是从数据库研究中借用而来,意味着整体数据的一部分。与数据库语境相同,在eth2中,分片意味着将整个系统的存储和计算分割为分片,并独立处理各分片,然后根据需求组合结果。确切来说,eth2将实现许多分片链,其中每个分片具有与eth1链相似的功能,这对于扩展性来说是巨大的提升。

然而,eth2中存在一种鲜为人知的分片类型。从协议设计的角度来看,这可能更加令人兴奋—— 输入分片共识。

分片共识

就像速度最慢的节点处理能力有限,整个网络吞吐量都会受限,单个验证者的计算资源也限制了可以参与共识的验证者总数。由于每个新加入的验证者都会为系统中所有其他的验证者带来额外的工作量,因此资源最少的验证者将无法继续参与(因为无法再跟踪其他验证者的投票) 。为此,eth2的解决方案是分片共识 (sharding consensus)。

“拆分式”设计

在eth2中,时间被分为两种期间,即时隙 (slots) 和时段 (epochs)。

一个时隙 (slot) 指12秒的时间范围,期间理想状态下一个新区块会被添加到链上。区块是一种机制,除了打包交易,还将包含验证者的投票。

一个时段 (epoch) 由32个时隙(6.4分钟)组成,在此期间,信标链将执行维护该链所需的所有计算,包括证明并最终确定新区块,以及对验证者实施奖惩措施。

正如在本系列第一篇文章中讨论到的,验证者会被组织成委员会 (committees) 的形式来执行工作。无论何时,每个验证者都同时是一个信标链和一个分片链委员会的成员,并被要求每个时段 (epoch) 进行一次证明 (attestation),其中证明是针对已经被提议了一个时隙 (slot) 的信标区块的投票。

Eth2分片共识的安全模型是基于一个思想,即委员会或多或少是整个验证者集的准确统计表示。

例如我们遇到这样一种情况:集合中有33%的恶意验证者,那么他们最终很有可能会进入同一委员会。这对于安全模型来说简直惨不忍睹。

Eth2 Staking系列:分片共识

因此我们需要寻求一种方法来杜绝这种情况。换句话说,我们需要确保假如33%的验证者是恶意的,那么一个委员会里最多只能分配到大约33%的恶意验证者。

我们可以通过以下两种方式达到该目的:

  1. 保证委员会成员随机分配

  2. 每个委员会中要有验证者数量最低限制

举个例子:每个委员会有128个随机抽样的验证者,1/3的恶意验证者控制2/3委员会的可能性非常小( 概率小于2 ^ -40 )。

“合并式”设计

验证者的投票即证明 (attestations)。一个证明由许多部分组成:

  • 针对目前信标链头的投票
  • 针对哪个信标区块应当被证明/最终确定的投票
  • 针对分片链当前状态的投票
  • 投票同意的所有验证者签名

通过将尽可能多的元素聚合成一个证明 (attestation),可以提高系统的整体效率。之所以能有这种效果,是因为节点只需要针对证明 (attestations) 进行计算就可以获知信标链和每个分片链的状态,而无需对信标区块和分片区块的投票和签名进行独立检查。

如果每个验证者都产生自己的证明 (attestation),并且每个证明都需要由所有其他节点进行验证,那么作为一个eth2节点的成本将会非常高。这就是 聚合 (aggregation) 要解决的问题。

证明 (attestations) 在设计时就遵循了易组合的理念,如果两个及以上验证者都有针对相同投票的证明,那么就可以将这些证明的签名字段添加进一个证明中,从而对这些证明进行组合。这就是证明聚合 (aggregation)。

就其结构而言,委员会内部的投票都是易聚合的,因为被分配在同一个分片中的验证者针对该分片状态和信标链的投票应该是相同的。这就是eth2扩展验证者规模的机制。通过将验证者分配到委员会中,验证者只需要关注同一委员会中的其他验证者,并且仅需验证来自其他委员会的非常少的聚合证明 (aggregated attestations)。

签名聚合

Eth2将使用BLS签名,这是一种在多条椭圆曲线上定义的、聚合友好的签名方案。在特定的曲线上,每个签名是 96字节

如果ETH总量的10%被质押到eth2中,那么将大约有 35万验证者。这就意味着一个时段 (epoch) 的签名大小将是 33.6 MB ,每天就是大约 7.6 GB 。如果按照这种趋势,那么 2018年有关eth1状态大小达到1TB的谬论 ,将会在eth2实现之后的133天之内就成为现实 (且仅基于签名而言)。

BLS签名的妙处在于它是可以聚合的:假如Alice产生了签名 A ,Bob对同一个数据进行签名为 B ,那么Alice和Bob的签名可以聚合成为签名 C (C=A+B) ),由此来进行存储和检查。通过使用签名聚合,每个委员会只需存储并检查一个签名。这样一来,每天的存储需求就降低至 2MB 以下。

结语

通过将验证者分配到委员会中,验证eth2所需的工作量减少了几个数量级。

对于信标链和所有分片链的验证节点来说,他们只需要查看每个委员会的聚合证明 (aggregated attestations) 即可。如此一来,节点既可以获知每个分片的状态,同时还能获知验证者对于哪些区块是否被添加到链上的意见。

总的来说,委员会机制帮助eth2达成了两个设计目标(在本系列首篇文章中提及过):即在消费级笔记本电脑上就可以参与eth2网络,且eth2必须支持尽可能多的验证者以实现最大程度的去中心化。

数字也许更具象,虽然大多数拜占庭容错式的PoS协议都可以扩张至数十个验证者 (在个别情况下,甚至可以扩展到数百个),但 eth2能够支撑数十万个验证者,并且不需要在网络延迟和吞吐量方面折衷就能保证安全性。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

光线跟踪算法技术

光线跟踪算法技术

萨芬 / 刘天慧 / 清华大学出版社 / 2011-3 / 98.00元

《光线跟踪算法技术》详细阐述了与光线跟踪问题相关的高效解决方案及相应的数据结构和算法,主要包括采样技术、投影视图、视见系统、景深、非线性投影、立体视觉、光照与材质、镜面反射、光泽反射、全局光照、透明度、阴影、环境遮挡、区域光照、光线与对象间的相交计算、对象变换、栅格技术以及纹理映射技术等内容。此外,《光线跟踪算法技术》还提供了相应的算法、代码以及伪代码,以帮助读者进一步理解计算方案的实现过程。 ......一起来看看 《光线跟踪算法技术》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具