OKB:Vitalik:绝对反对基础层价格预言机,以太坊L1层的功能要明确限制

编者按:本文来自巴比特资讯,作者:JustinDrake&VitalikButerin,编译:洒脱喜,星球日报经授权发布。写在前面:看完了比特币减半大戏,我们再来关注下以太坊,昨日,针对以太坊2.0研究者JustinDrake最新提出的基础层价格预言机提案,以太坊联合创始人VitalikButerin撰文表示坚决反对,并提出了六大反对理由,此外他还表示,以太坊生态系统得益于强大的应用层代币生态系统,而不是通过L1层垄断所有重要功能。这场以太坊2.0核心人物之间的battle,你支持谁呢?

注:以下提案由JustinDrake提出:

简单地说,我们建议在信标链中添加一个简单的喂价服务,以跟踪一小部分关键资产。该服务允许建立完全去中心化的预言机,在每个epoch周期边界为每个跟踪资产产生一个价格。感谢@albert,@benjaminion,@dankrad,@danrobinson,@DCinvestor,@djrtwo,EricConner,EvanVanNess,@karl,@khovratovich,MehdiZerouali,@mkoeppelmann,@paulhauner,@protolambda,@Robert,@ryanseanadams,@sassal,@scott_lew_is,@vbuterin提供的反馈和讨论。构造

将price_data:PriceData字段添加到BeaconBlockBody,其中:

从以太坊2.0的共识观点来看,price_data对象的处理方式类似于graffiti字符串。也就是说,price_data可以是任意数据,其值被信标链状态转移函数和分叉选择规则忽略。诚实的信标区块提出者,必须为PriceData中的每个跟踪资产,填充尽量最好的价格,而这些价格必须:基线——代表跟踪资产的1ETH;快照——以最近的PRICES_PER_ASSETepoch界限进行快照;面值——以最小的ISO4217货币单位计价;四舍五入——用半下舍入法舍入;上溢——如果uint64溢出,则设置为Price(2**64-1);下溢——价格为负时,设置为Price(0);示例:诚实多数ETH-USD预言机

我们可以在每个epoch周期边界建立一个多数诚实的ETH-USD预言机。考虑一个智能合约,它取与给定epoch边界相对应的所有价格的中值。如果超过一半的相应信标区块是由诚实的验证者生成的,则中间价格就是安全的,即不可由不诚实的验证者操纵。基本特征以下是该喂价服务的基本功能:共识极简主义——通过将price_data视为与graffiti同等,实现对信标链状态转移函数和分叉选择规则影响的最小化。补贴交付——每个信标区块都包含一个专用的PriceData对象,绕过应用层区块空间限制和gas市场;原价——喂价是提供关于原价的一种低level服务,它们可与其他价格来源混合和匹配,以创建具有自定义逻辑的混合预言机;带宽效率——每个被跟踪的资产,为每个BeaconBlock的320字节开销,序列化为type_byte_length(uint64)*PRICES_PER_ASSET=64字节。区块传播的带宽开销很小,特别是在网络压缩的情况下。可被其他链使用——这种服务不仅可供以太坊1.0和以太坊2.0使用,也可以供其他区块链使用。它也可以用于链外,例如通过完全去中心化的钱包来估算法币计价的gas成本。初始部署——这种喂价服务是可选的以太坊2.0基础设施,当其准备就绪时就可以进行部署。以太坊1.0的DeFi生态系统将从中受益,比如在phase1阶段。喂价治理

跟踪资产集的维护是一个治理问题,我们建议遵循以下社区规范:最低可行性——跟踪资产集应保持在最低可行水平,即仅纳入对以太坊的长期健康和成功至关重要的资产。5项初始资产反映了三项关键原则:粗共识——新资产可以通过粗共识驱动的硬分叉加入到跟踪集合中。向后兼容性——添加资产后的向后兼容性不能从跟踪集中移除,以保持向后兼容性。验证运行者行为

我们讨论各种类型验证运行者的预期行为:诚实运行者——根据定义,诚实的运行者运行符合共识规则的验证节点,并报告正确的价格数据。懒惰的运行者——懒惰运行者,其最懒惰的行为是运行默认的验证者客户端设置。因此,懒惰的运行者应该运行报告正确价格数据的验证节点。理性的运行者——理性运行者寻求最大化的收入,并将考虑价格数据操纵,以实现验证的最大化可提取价值。然而,由于PriceData对象是公共和加密签名的,所以不诚实的验证者可以被社区识别出来。潜在的处罚包括:验证者客户端指南

验证客户端必须能够查询外部源以在epoch边界处导出价格。以下是客户端实施指南:差异性——必须查询各种价格来源以获得稳健性,包括链上来源以及链外来源;安全性——查询不受信任的api时产生的攻击向量,必须要仔细处理;清楚外部问题——必须充分处理异常源;可定制性——客户端运行者应该能够轻松更改默认价格推导逻辑,并自定义其价格来源;去相关——实现应努力使价格推导逻辑最大化去相关;dApp指南历史累加器——每个PriceData对象,都可以根据BeaconState中的historical_roots进行验证。为了提高gas效率,可以有效地将SHA256Merkle验证数据压缩成一个SNARK;风险分析——dApp必须仔细评估非诚实验证者的价格操纵风险,并作出知情的安全假设;混合预言机——dAppp应该考虑将重要的喂价服务与其他价格来源相结合。喂价服务是一个基础设施,旨在增加以太坊生态系统的选择和健壮性;下面,则是来自以太坊联合创始人Vitalikbuterin发表的battle意见:

“我持绝对反对意见!首先,这是对区块链技术特性的一个根本性改变。现在,我们有了一个特性,即区块链进度的正确性可通过编程方式完全验证。有效性是一个确定性功能,可用性可以由在线节点进行验证,甚至还有针对低延迟在线节点的技术,以就区块链是否审查交易达成共识。另一方面,这个提议的目的是引入一个链属性,即使在原则上也不能在任何假设下通过编程进行验证。甚至在未来的世界里,人们对投入的正确价值也没有明显的共识。第二,该提案依赖于诚实多数,但我们在以太坊2.0上面所做的很多事情,从根本上讲是要摆脱诚实多数的假设,并试图在诚实多数失败的情况下创建“第二道防线”,例如:托管证明,试图将聚合的安全性假设从“必须诚实”更改为同时涵盖不邪恶,但懒惰的参与者;数据可用性证明和欺诈证明,允许51%攻击链拒绝无效或不可用的区块;用户可运行全节点,而不仅仅是轻节点;上面提到的审查检测技术;无活动泄露机制,及其在>1/3离线攻击发生的情况下进行恢复操作;而做出一个依赖于诚实多数的设计,与所有以上这些进步的方向是相反的。第三,它损害了协议的中立性,并为进一步的中立性妥协开辟了一条滑向深渊的道路。该提案将“defi”提升为特权应用类,并提升一组特定的资产/价格指数。它还会引入底层治理的风险,比如必须要判断哪些货币是足够重要的,哪些应用类是足够重要的,如何判断紧急情况,等等。第四,它关闭了预言机设计创新的大门,例如,这种设计的一个自然替代方案是,时间T时的价格,只应在时间T+1天时商定,以便为链上攻击、交易所在较长时间内停止工作的情况,以及通常功能性api意外出错的情况提供空间。有很多种方法可以设计预言机,而用L1的方法统治生态系统,似乎并不是正确的答案。第五,它增加了staking验证者中心化的风险,因为客户端需要更多的自动更新来维护他们的预言机,这增加了验证者盲目遵循客户端开发者指示的风险;第六,与基于应用层token的预言机相比,它实际上并没有提供更多的安全性。MKR的市值约为200万ETH,因此应用层代币显然可以获得显著的市值。我们预计,以太坊2.0初始的staking币数,大约在200万ETH范围内。因此,基础层预言机的安全级别,并没有比应用层的预言机高多少,似乎充其量只是一个数量级的差异。我实际上认为,我们应该朝相反的方向发展,明确限制底层的功能,以便故意为应用层生态系统留下空间,让应用层开发其他的工具。Augur一直在很好地运行,其他预言机也同时存在着。以太坊生态系统得益于强大的应用层代币生态系统,而不是L1层/ETH垄断所有重要功能。这是因为以太坊生态系统对公共产品有很大的需求,而准备提供这些公共产品的以太坊供应却有限,因此修改以太坊协议,以印刷更多以太坊用于这些目的,在上是困难的。然而,应用层token可以提供这些公共产品,例如Gnosis在智能合约钱包中做了很多工作,现在已经在其中维护了openesom等等。应用层token甚至可以直接用二次方融资方式来资助公共产品。因此,我们应刻意寻找并设计与此类应用层token的共生关系,而不是将它们视为基础层可吸收的一个试验地。”目前来看,大多数以太坊参与者似乎更支持Vitalik的观点,你的看法又是什么呢?

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

链链资讯

[0:15ms0-7:453ms