以太坊2.0:“无状态性”的重要性_币世界+ETH中文站

2021-03-28 10:17 栏目:行业动态 来源:网络整理 查看()

为什么以太网2.0需要“无国籍”?看这个翻译之前,可以先了解一下国家膨胀和无国籍的背景知识,推荐一篇文章:《观点 | 状态膨胀和无状态性》

当前Ethereum 1.0链最大的问题在于状态大小。大约是10-100 GB(取决于它的存储方式)。对于很多节点来说,将其存储在工作内存中是不切实际的,所以会选择慢速固定存储。但是硬盘速度太慢,跟不上以太块(或者从创世块开始),就要用更贵的SSD。这么说吧,目前的状态大小不是最大的问题,但是状态的增长成本相对较低,而且会一直增长。即使我们增加了国家增长的成本,也不能让国家占领者为对网络的实际影响买单,这是永恒的。

现有的解决方案主要集中在两个方向:

地租:为了保持状态在活跃的记忆中,持续支付

无国籍状态:区块保留了所有证人,比如默克尔的证明,所以在验证区块的有效性时不再需要状态

在“无国籍”方面,有不同的概念值得探讨:

部分无国籍状态:只需见证一些(陈旧的)状态,减少了验证区块所需的状态数量

弱无状态:验证块不需要状态,但是建议的块需要完整的状态

在本文中,维塔利克提出了如何将这些概念梳理成一个总体框架,并指出部分无国籍状态和国家租金非常相似,因为两者在修改活跃状态时都需要以某种形式进行支付,并且是重新激活旧状态的证明。

如果你是Eth1的用户,你可能会觉得只保留1 GB甚至100 MB的活动状态部分无状态是一个很大的成就,那为什么还要费心去实现完全无状态呢?我认为完全(弱)无国籍释放了很大的潜力,这是部分无国籍无法实现的,所以要尽最大努力实现完全无国籍。

了解Eth2验证程序

过去,Eth1一直被批评硬件要求高。虽然这些谴责是不公平的(选定的中型消费硬件也可以运行Eth1节点),但我们需要注意这些事实,尤其希望在不损害分散的情况下扩展Ethereum。对于Eth2,我们设定了一个非常雄心勃勃的目标:在低成本硬件上运行Eth2节点和验证器,甚至草莓派或智能手机。

这条通往可伸缩性的道路并不容易。其他项目,如EOS和索拉纳,需要更高性能的硬件和网络连接。但是我觉得有必要降低共识节点和P2P节点的门槛,保证去中心化。

在Eth2中,共识节点是验证者。Eth1和Eth2的共识节点有非常重要的区别:

Eth1的共识节点是矿工。要“投票”给区块链,你必须拿出积木。也就是说,共识节点和块生产者密不可分。

在Eth2或当前第一阶段(信标链)中,提出块和形成共识是两种不同的机制:每12秒,随机选择的验证者提出块,而共识是通过证明形成的,每个验证者在每个时期(每6.4分钟)对区块链进行投票。现在每隔几分钟就有10多万验证者投票形成共识。区块生产者对共识没有影响(几乎[1]),他们只能选择区块[2]中包含的内容。

将街区支持者从共识中分离出来打开了一个重要的设计空间。信标链从验证者集合中随机选择块提议者,但是对于片段链,这不是必需的:

碎片化(尤其是Eth1执行的碎片化)的一个有趣的可能性是验证者可以输入生产块的列表。这种验证器可能需要更高性能的硬件,也可能需要具有“完整”状态。

另一种可能性是,我们目前正在实施数据碎片化。任何人都可以被选中提出一个区块,但区块的具体内容不是由提出者决定的。不同的参与者可以通过投标来提出他们的打包块。

在这两种情况下,弱状态验证意味着所有其他验证者(不产生块或决定块内容的验证者)不需要状态。这和Eth1有很大的不同:在Eth1中,对形成共识的节点(即矿工)的要求非常高,所以保持完好似乎没有问题。然而,在Eth2中,我们可能会大幅降低参与门槛,我们应该利用这一点来确保权力下放和安全。

支持者的较高成本是可以理解的

另一个重要的反对意见可能是,如果块提议的成本太高,即使我们降低验证者和P2P节点的阈值,分散化也会受到影响。但事实并非如此。“提议者”和“验证者”之间有重要的区别:

对于核查员来说,我们需要绝大多数是诚实的,也就是承诺的ETH的2/3以上。P2P节点的情况可能类似,但据我所知,并不需要一定比例的P2P节点诚实。但是为了保证他们总能收到有效的链接,每个人都需要连接至少一个诚实的P2P节点,大概是5%左右,实际上可能更高。

对于支持者,我们对他们是否诚实的要求要低得多。与Eth1不同,Eth2的支持者不审核过去的区块(因为他们不投票),而只能决定他们提出的区块的内容。假设你的交易不是特别紧急,如果95%的提议人尝试审核,第20个提议人还是可以安全打包的(但是低延迟反审核制度是另一回事,实践中更难实现)。

这就是为什么我比验证者更不担心提高支持者的硬件要求。如果我们保持正常验证器的低要求,那么支持者需要一台128GB RAM的PC来存储大状态。我担心,如果一部符合这些要求的电脑售价是10万元,但如果我们把售价控制在5,000元以下,一旦发现有检讨,社会人士不尽快引入更多倡议者作出回应,是不合理的。

最后,区块提议者可能需要更好的硬件设备,在获得MEV上更有优势,还有其他原因。

这里我用“proposer”来指包装块的作用,不一定和正式签名验证的作用一致。在汇总中,它们可能是“序列器”。为了简单起见,我在这里称之为提议者,因为如果只在系统中引入一个负责提议块的新角色,我认为系统不会受到根本性的破坏。

认识到无国籍的好处

到目前为止,在这篇文章中,我还没有演示为什么无国籍状态如此强大。在可执行信标链的提议中,似乎将状态从10 GB降低到1 GB或者100 MB可以为验证者节省大量的费用,那么我们为什么需要无国籍状态呢?

如果我们跟风,可执行的Eth1块可以变成碎片。在可执行信标链的建议中,所有验证者必须保持运行完整的Eth1执行(否则将面临签署无效块的风险)。片段不应该有这个属性,一个片段中的一个块只需要一个委员会签名(所以是验证者的1/1024),其他人不需要相信委员会的大多数验证者是诚实的[3],只要有一个诚实的验证者在委员会试图作恶时吹口哨。这只有在Eth1是无状态的情况下才有可能:

我们希望所有验证器的负载大致相等,没有极端峰值。所以,派一个验证者长期(比如一个小时或者一天)成为Eth1委员会的成员,其实是很不好的:这意味着验证者的大小在带宽要求上还是要和完整的Eth1链保持一致。此外,如果您长期使用同一个委员会(例如,通过贿赂攻击),该委员会会变得更具攻击性

我们希望我们可以简单地证明Eth1块中的欺诈,因为其他验证者将无法确定委员会是否正确完成了工作。最简单的方法是,该块成为自己的欺诈证据:如果一个块无效,广播块本身就可以证明欺诈。

所以在Eth1具有完全无国籍的前提下,Eth1可以成为一个片段(维护所需资源较少,比如1/100)。同时,只有这样,才能在数据切片之外引入更多的执行切片。

缓存不总是好的吗?

那么,如果我们完全无状态化,引入10 MB的缓存呢?还是1 MB?即使你只想检查一个块,你也可以很容易地下载它,因为你已经被分配到一个委员会或收到缓存作为欺诈的证据?

您可以这样做,但是很明显,如果大多数验证器只验证单个块,这不太可能是最佳的。假设我们的目标是1 MB的块,我们也有1 MB的缓存,这意味着验证者每次想要验证一个块,就必须下载2 MB的数据(包括块和缓存)。他们必须每次都下载缓存,除非他们下载所有的块来保持缓存最新,这正是我们应该避免的。

这意味着,在与1 MB数据块和1 MB缓存相同的成本下,我们可以将缓存设置为0,并允许数据块大小增加到2 MB。

很明显,对于1 MB的块,2 MB的块至少与1 MB的缓存一样有效。原因是,如果这是最好的选择,那么2 MB的块可能只包含1 MB的缓存,所以我们只需要在每个块上提交缓存,然后在下一个块中重新引入完整的缓存。这可能不是块中1 MB的最佳使用,但您可以这样做。可以更好地利用额外的1 MB来允许引入更多的见证。

二叉树还是verkle trie?

我认为,总的来说,争取完全(弱)无国籍的声音压倒了一些无国籍或国家租金计划。这样对用户的影响会小一些:他们根本不用考虑状态。他们所要做的就是添加见证人(这样P2P网络就可以验证有效的交易)。创建见证的成本如此之低,很多相关服务可想而知。事实上,大多数钱包已经依赖于外部服务,用户不需要运行自己的节点。获得证人只是一个很小的功能。[4]

部分无国籍或地租在完全弱无国籍的道路上给用户体验增加了很大的障碍。但是考虑到只使用二元默克尔树很难尝试实现无国籍,而且需要允许默克尔树证明需要换气,这样会损害用户体验。

因此,在我看来,我们现在应该努力克服困难。这允许我们有一个小于1 MB的可管理的证据,并且只对EIP-2929提出的代码块进行适度的气体收费和收费。其缺点容易控制,对用户实际影响不大:

开发人员需要学习新的加密原语

无抗后加更多量子密码。第二点听起来很可怕,但是我们已经在Eth2中引入了KZG承诺用于数据可用性采样,而且我们无论如何都在使用基于椭圆曲线的签名。合并后的Eth1和Eth2链需要一些后量子升级,目前没有切实可行的后量子替代方案,不能停止前进。就收养而言,未来五年极其重要。前面的路是尽力而为,在5-10年内,当STARK足够强大的时候,我们会彻底升级所有的源语言。

总的来说,verkle的尝试可以在未来五年内解决国家问题。现在,我们将能够实现完全(弱)无国籍状态,而对用户和智能合同开发人员几乎没有影响。我们将能够提高气体的上限(因为验证变得更快)并执行更多的碎片化,所有这些几乎不会影响安全性和分散性。

最难做到的是让每个人都理解KZG的承诺和verkle的工作方式。由于Eth2将使用KZG承诺来确保数据的可用性,大多数以太网开发人员需要做相关的工作。

[1]作用不大,因为已经进行了精细优化,提高了对某些平衡攻击的抵抗能力,而平衡攻击确实能让支持者对分叉选择产生短期影响。

[2]确切地说,如果区块生产者开始串通,大量审查证据,可能会产生影响,但单个区块生产者对共识的影响可以完全忽略。

[3]不诚实佣金的邪恶可能会影响整个网络并造成严重延迟,但它会引入不能无效/不可用的块

[4]想要运行自己节点的用户,仍然可以通过外部服务的方式获取见证。这种操作是不可信的,因为在知道最新状态根的前提下,证人就是自己的证据

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发