原文标题:《基于委员会的累积终结性模型》
作者:VitalikButerin
本文提出了一种以太坊信标链的拟议替代设计,在未来长期内可以切换到该设计。该替代设计旨在提供一些关键属性:
在正常情况下提供有意义的单槽经济终结性:使单槽重组的成本高得多,即使是多数人串通的情况下也能执行,从而降低共识可提取价值(CEV)摆脱对LMDGHOST分叉选择的严重依赖,避免已知的缺陷以及需要引入复杂的混合分叉选择规则来修复这些缺陷。可能允许更低的最小存款大小和更高的验证器数量保存经济终结性最终接近一个非常大的数字的属性
V神:希望以太坊同时实现“功能性和简单性”两个愿景:3月30日消息,V神(Vitalik Buterin)发文表示,以太坊最大的挑战来自于两种愿景之间的平衡:一个重视安全性和简单性的纯粹而简单的区块链,以及一个用于构建高级应用程序的高性能和功能性平台。
V神称其个人梦想是尝试同时实现这两个愿景:一个基本层,其中规范每年都比前一年更小;一个以第二层协议为中心的强大的开发人员友好型高级应用生态系统。实现这样一个理想的世界需要很长时间,而更明确地认识到这需要时间,我们需要一步一步地思考路线图,这可能会对我们有很大帮助。
V神认为,有路径实现改善功能性和简单性,尽管可能会比较曲折。[2022/3/30 14:27:32]
准备工作
让CONSENSUS成为一种异步安全的共识算法。我们假设这种共识算法有一些槽或视图的概念,它在每个固定时间段尝试达成共识。我们还假设它将一种加权验证器集作为输入。
V神:希望Twitter旗下Bluesky项目改进其去中心化属性:V神发推称:“在过去的两个月里,Twitter给我留下了深刻的印象。它一直在提供准确的信息,而且速度非常快,我很少看到假新闻,通常都人们在推特上转发假新闻都是为了反驳它。我知道它在架构上是中心化的(希望Bluesky项目可以改进这一点),但是决定您所看到的内容的信息来源和输入机制是去中心化的,而这种去中心化被证明是一种优势。”注:Bluesky项目是由Twitter组建的研究团队,旨在开发去中心化的社交网络。[2020/4/5]
在下面的设计中,我们修改了CONSENSUS,以便在每个视图中,需要最终性的集合是不同的。也就是说,CONSENSUS将一个函数get_validator_set(view_number:int)->Map作为输入,而不是验证器集,它可以为新视图生成验证器集。get_validator_set应该具有以下属性:验证器集根据从一个视图到下一个视图的最大1/r值进行更改,其中r是恢复期长度。更正式地说,我们想要:
声音 | V神:宁静的理论设计文档一直存在并保持更新:V神在推特中称,宁静(Serenity)的理论设计文档一直存在并保持更新。查看V神转发的“宁静”设计文档发现,其文档在1天前有所更新。[2019/8/8]
其中丨x丨返回x中值的绝对值之和,diff返回每个键值的差值。
在实践中,两个相邻验证器集之间的差异将包括现有验证器泄漏余额,以及以与泄漏余额相等的速率引入新验证器。
请注意,这意味着如果两个终结性的视图数量相差足够远,则这时候可以在不削减的情况下进行双重终结性确定;这是有意为之,并且该协议以与当今CasperFFG处理不活动泄漏的方式相同的方式围绕它工作。
声音 | V神:对股东治理更加悲观 在想给创始人股份10倍投票权的规则:V神Vitalik Buterin在推特回复网友表示,我对股东治理更加悲观!似乎它需要大量的法规来保护小股东免受51%的攻击等等。此外,许多SV科技公司选择退出股东治理,转而支持创始人独裁。我不是说他们不是IPO,我想的是给创始人的股份10倍投票权的规则,也就是说事实上51%以上的控制权。[2019/7/21]
机制
我们使用两级分叉选择:
选择LATEST_FINALIZED_BLOCK
从LATEST_FINALIZED_BLOCK,应用一些其他叉选择来选择head
共识算法的视图在每个插槽都会被尝试,将基于get_post_state(LATEST_FINALIZED_BLOCK)数据的验证器集生成函数作为输入传入。在视图i中,一个有效的提案必须包含从LATEST_FINALIZED_BLOCK到插槽LATEST_FINALIZED_BLOCK.slot+i处的区块的链。如果提示的父级是分叉选择的赢家,这时验证者才需要准备并提交提案。
声音 | 眼镜蛇Cobra评论V神:筹资制造量子计算机挖掘比特币是子行为:比特币官方论坛Bitcoin.org持有人Cobra评论V神称,你的预估能力没有问题,你只是在说谎,你一直就知道制造出挖掘比特币的量子计算机的可能性为0%,但你为了钱了大家。此前,Cobra评论V神称,你和Craig Wright的共同点在于你们都是子和技术人员。你正在筹钱建造一台挖掘比特币的量子计算机,但这几乎是不可能完成的。稍后V神回复,我认为这个项目有大约1-10%的成功机会,所以并不是没有成功的可能,如果成功,它将产生的巨大的影响是值得投入资源的。后来我意识到我对该项目的估计过高了,我被了。[2018/11/13]
如果CONSENSUS在某个视图中成功,则该视图中的提案将成为新的LATEST_FINALIZED_BLOCK,更改未来轮次的验证器集。如果失败,它将在下一个槽/视图中进行下一次尝试。
注意:插槽应始终等于当前视图编号加上每个先前验证器集中成功完成的视图编号的总和。
我们有以下处罚:
由共识算法确定的定期削减处罚不活跃惩罚:如果这条链未能实现终结性,所有未参与的人都会受到惩罚。此惩罚旨在将r/2个插槽后的余额削减一半。
属性
如果一个区块获得终结性,那么要终结确定一个竞争区块,需要发生以下情况之一:
某些委员会被破坏,其中他们中≥1/3会被削减以对不同的区块实现双重终结性
最近的委员会离线,在r/3个插槽之后,委员会轮换足够多,以便能够在不削减的情况下使一个不同的区块获得终结性。然而,这是以严重的不活跃惩罚为代价的
在任何一种情况下,即使还原一个终结区块也至少需要销毁DEPOSIT_SIZE*COMMITTEE_SIZE/3个ETH。如果我们设置COMMITTEE_SIZE=131,072,则该值为1,398,101个ETH。
该方案的其他一些重要属性包括:
验证器的负载将非常稳定,无论存入多少验证器,处理每个插槽的COMMITTEE_SIZE交易验证者的负载会更低,因为当他们没有被要求加入委员会时,他们可以休眠在不牺牲安全性的情况下,可以允许休眠的验证器快速退出+撤回
扩展:具有较小委员会的链终结性
如果出于效率原因,我们必须减小COMMITTEE_SIZE,我们可以进行以下调整:
我们没有选择最新的终结性区块,而是选择作为最长终结性区块链末端的终结区块
get_validator_set应该只使用来自状态超过COMMITTEE_LOOKAHEAD之前的信息
视图编号应该只是插槽编号
这保留了上述所有属性,但它也引入了一个新属性:如果一个区块获得多个终结性,然后恢复该区块需要违反多个委员会的终结性保证。这允许多个委员会的安全级别叠加:一个人需要COMMITTEE_SIZE*DEPOSIT_SIZE*k/3ETH来恢复k个终结性,最多k=COMMITTEE_LOOKAHEAD,此时委员会分歧。
还要注意,出于p2p子网安全的原因,先行机制无论如何都值得做,所以用它来设计系统可能是一个好主意,如果需要的话,让客户端来决定他们如何处理终极性反转。
具体值的例子
请注意,“打破终结性所需的ETH”数量假设攻击者控制的验证器数量远远超过质押总量的一半;这个数量是攻击者将失去的。并不是任何拥有2,730-174,762ETH的人都可以进入并销毁该ETH以逆转单一插槽的终结性。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。