ETH2.0

编程入门 行业动态 更新时间:2024-10-24 23:25:06

Sharding Consensus

原文链接:Validated, staking on eth2: #3 - Sharding Consensus

分片(sharding) 是Eth1过渡到Eth2中最重要的提升。分片这一术语是从数据库研究(一个分片就是整体的一片)中引入的。在数据库和Eth2的背景下,分片就意味着将整体的存储和计算划分到分片中,分片再进行各自的处理,在需要的时候将计算的结果进行结合。Eth2实行了大量的分片链,每个分片链相似于Eth1主链,这导致了巨大的性能提升。
然后很少有人知道分片链的类型。从协议设计的角度来看,这可能更令人兴奋。

Sharding Consensus

在集群工作环境中,我们能够知道,单个节点的计算速度可能会影响到整个集群的计算速度,因此计算最慢的那个节点不会参与集群工作中。(拖后腿)。而Eth2为了避免单个分片的共识对整体共识产生影响。采用的是一种分片共识(sharding consensus).

Breaking it down

Eth2将时间划分成Slots、Epochs。
一个Slot是12秒,在这12秒内会生产一个区块,添加到链上。区块和交易是通过验证者的投票才能上链。
一个Epoch由32个Slots组成,即6.4分钟,在这段时间里,信标链要完成所有的计算,包括:确定(justifying)和最终化 *(finalising) 新区块, 以及 奖励、惩罚验证者。

正如我们在本系列的第一个文章中提到的,验证者会被组织成委员会,来进行他们的工作。在任何时候,每个验证者都是一个信标链和一个分片链委员会的成员,并被要求在每个Epoch提供证明(attestation),即对一个Slot提出的信标链块进行投票(vote)。

分片链共识的安全模型是基于以下思想:委员会或多或少是全体验证者的准确统计代表。(mittees are more or less an aurate statistical representation of the overall validator set.)

举例:假如所有验证者中有33%是恶意的,同时他们会被分派到一个委员会中,这将对于我们的安全模式是灾难性的打击。因此我们需要保证这些恶意验证者不能聚集在一个委员会里,及一个委员会里只要不到33%的验证者是恶意的。我们的做法是:

确保委员会里成员的分配是随机的委员会里的验证者数量有最小限制
举例。如果每个委员会里有128名验证者,那么一个攻击者控制1/3的验证者的几率微乎其微。[参考阅读:Sharding]

上图我们可以看到如果验证者没有被混洗(shuffliing),那么很容易出现恶意验证者扎堆现象,为了防止这种情况,采用混洗算法,使得每个委员会里的恶意验证者不超过1/3

Building it up

验证者投票(vote)被称为证明(attestation),一个证明是由一下部分组成,特别的:

为当前信标链头投票当信标需要被确定和最终化 (justified/finalised)时,也要投票为分片链的当前状态投票所有同意该投票的验证人签名

将上述四点以及其他组成一份证明,提高了系统的整体效率。这样做是可行的,因为节点不必分别检查信标块和分片块的投票和签名,只需要对证明进行数学运算,即可了解信标链和每个分片链的状态。

如果每个验证者都生成了自己的证明,并且每个证明都需要由所有其他验证者进行验证,那么成为eth2节点将非常昂贵,因此需要对证明进行聚合。

证明要被设计地易于组合,以便如果两个或多个验证者具有相同投票,则可以通过在一个证明中一起添加签名字段,来组合这些相同的投票。这就是我们所说的聚合。

从结构上看,一个委员会内验证者的投票很容易被聚合,因为验证者被分配到同一分片链上,因此应该对分片状态和信标链具有相同的投票。这是 eth2 缩放验证器数量的机制。通过将验证者组合成一个个委员会,验证者只需要关心他们自己所在委员会里的其他成员,只需要检查来自其他每个委员会的少量的聚合证明。

Signature aggregation

Eth2使用的是BLS签名算法 - 一种在几条椭圆曲线上定义的签名方案,对聚合很友好。在选择具体的曲线上时,每个签名都是96 bytes

如果ETH币中有10%被质押,那么Eth2上将有大约350000验证者。这就意味着一个Epoch的所有验证者生成的签名数据大小是33.6MB,一天大约在7.6G。之前有传言说Eth1在2018数据量会达到1TB,如果Eth2不采用聚合签名,只要最多113天就会达到1TB。

减少如此的数据量方法是聚合BLS签名。举例:如果Alice和Bob 在同一份数据上生成签名A和签名B,那么可以通过聚合将A和B聚合成C。通过使用聚合签名可以使得一个委员会只存储一份签名,同时被其他所有的委员会验证。这将减少每天的存储不到2M

In summary,

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

如果一个验证者想要验证信标链和所有分片链,它只需要查看来自每个委员会的聚合证明。通过这种方式,它可以知道每个分片的状态,以及每个验证者对于哪个区块的投票

因此,委员会机制帮助Eth2实现了第一篇文章中确定的两个设计目标:即普通的消费级笔记本电脑即可参与Eth2网络,并且让可能多的验证者参与进来,来实现去中心化。

为了说明这一点,虽然大多数拜占庭容错权益证明协议只可以扩展到数十个(在极端情况下才能达到百个验证者),但Eth2能够拥有数十万个验证器,所有这些验证器都有助于安全性,而不会影响延迟或吞吐量。

更多推荐

本文发布于:2023-05-28 12:29:11,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/320904.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!