LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 币圈百科 > V神:绝对反对基础层价格预言机,以太坊L1层的功能要明确限制

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

2020-05-15 区块律动BlockBeat 来源:区块链网络

原文标题:《Vitalik:绝对反对基础层价格预言机,以太坊 L1 层的功能要明确限制》

原文来源:巴比特


针对以太坊 2.0 研究者 Justin Drake 最新提出的基础层价格预言机提案,以太坊联合创始人 Vitalik Buterin 撰文表示坚决反对,并提出了六大反对理由,此外他还表示,以太坊生态系统得益于强大的应用层代币生态系统,而不是通过 L1 层垄断所有重要功能。这场以太坊 2.0 核心人物之间的 battle,你支持谁呢?



(图左:Justin Drake 图右:Vitalik Buterin)


以下提案由 Justin Drake 提出:


简单地说,我们建议在信标链(beacon chain)中添加一个简单的喂价服务,以跟踪一小部分关键资产。该服务允许建立完全去中心化的预言机(oracle),在每个 epoch 周期边界(即 6.4 分钟)为每个跟踪资产产生一个价格。


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


PRICES_PER_ASSET = 8

# Type aliases Price = uint64 AssetPrices = Vector[Price, PRICES_PER_ASSET]

class PriceData(Container): # Currencies in the IMF SDR basket usd: AssetPrices # 0.01 USD price denomination eur: AssetPrices # 0.01 EUR price denomination cny: AssetPrices # 0.01 CNY price denomination jpy: AssetPrices # 1.00 JPY price denomination gbp: AssetPrices # 0.01 GBP price denomination


从以太坊 2.0 的共识观点来看,price_data对象的处理方式类似于 graffiti 字符串。也就是说,price_data 可以是任意数据,其值被信标链状态转移函数和分叉选择规则忽略。


诚实的信标区块提出者,必须为 PriceData 中的每个跟踪资产,填充尽量最好的价格,而这些价格必须:


1. 基线——代表跟踪资产的 1 ETH;

2. 快照——以最近的 PRICES_PER_ASSETepoch 界限进行快照(在 AssetPrices vector 中按年龄顺序递增);

3. 面值——以最小的 ISO 4217 货币单位计价(例如,如果 1 ETH 为 213.09 美元,则设定为 Price(21309));

4. 四舍五入——用半下舍入法舍入(例如,如何 1 ETH 为 22,732.66 日元,则设定为 Price(22733));

5. 上溢(overflow)——如果 uint64 溢出,则设置为 Price(2**64 - 1);

6. 下溢(underflow)——价格为负时,设置为 Price(0);

示例:诚实多数 ETH-USD 预言机我们可以在每个 epoch 周期边界建立一个多数诚实的 ETH-USD 预言机。


考虑一个智能合约,它取与给定 epoch 边界相对应的所有价格的中值(最高为 SLOTS_PER_epoch*prices_PER_ASSET=256价格点)。


如果超过一半的相应信标区块是由诚实的验证者生成的,则中间价格就是安全的,即不可由不诚实的验证者操纵。


基本特征


以下是该喂价服务的基本功能:


1. 共识极简主义——通过将 price_data 视为与 graffiti 同等,实现对信标链状态转移函数和分叉选择规则影响的最小化。


2. 补贴交付——每个信标区块都包含一个专用的 PriceData 对象,绕过应用层区块空间限制和 gas 市场;


3. 原价——喂价是提供关于原价的一种低 level 服务,它们可与其他价格来源混合和匹配,以创建具有自定义逻辑的混合预言机;


4. 带宽效率——每个被跟踪的资产,为每个 BeaconBlock 的 320 字节开销,序列化为 type_byte_length(uint64) * PRICES_PER_ASSET = 64字节。区块传播的带宽开销很小,特别是在网络压缩的情况下。


5. 可被其他链使用——这种服务不仅可供以太坊 1.0 和以太坊 2.0 使用,也可以供其他区块链使用。它也可以用于链外,例如通过完全去中心化的钱包来估算法币计价的 gas 成本。


6. 初始部署——这种喂价服务是可选的以太坊 2.0 基础设施,当其准备就绪时就可以进行部署。以太坊 1.0 的 DeFi 生态系统将从中受益,比如在 phase 1 阶段。


喂价治理


跟踪资产集的维护是一个治理问题,我们建议遵循以下社区规范:


1. 最低可行性——跟踪资产集应保持在最低可行水平,即仅纳入对以太坊的长期健康和成功至关重要的资产。5 项初始资产(美元、欧元、人民币、日元、英镑)反映了三项关键原则:(1、可信中立;2 高流动性;3、广泛的应用)


2. 粗共识——新资产(例如黄金、石油、比特币)可以通过粗共识驱动的硬分叉加入到跟踪集合中。


3. 向后兼容性——添加资产后的向后兼容性不能从跟踪集中移除,以保持向后兼容性。


验证运行者行为


我们讨论各种类型验证运行者的预期行为:


1. 诚实运行者——根据定义,诚实的运行者运行符合共识规则的验证节点,并报告正确的价格数据。


2. 懒惰的运行者——懒惰运行者(例如一个忙碌的业余质押者),其最懒惰的行为是运行默认的验证者客户端设置。因此,懒惰的运行者应该运行报告正确价格数据的验证节点。(由于贷款、CPU 时间、RAM、磁盘等方面的计算开销很小,因此不需要考虑计算延迟。)


3. 理性的运行者——理性运行者寻求最大化的收入,并将考虑价格数据操纵,以实现验证的最大化可提取价值(VEV,类似矿工可提取价值的概念)。然而,由于 PriceData 对象是公共和加密签名的,所以不诚实的验证者可以被社区识别出来。潜在的处罚包括:(1、失去声誉;2、验证余额遭到罚没;3、被孤立)验证者客户端指南验证客户端必须能够查询外部源以在 epoch 边界处导出价格。以下是客户端实施指南:


4. 差异性——必须查询各种价格来源以获得稳健性,包括链上来源(如 Uniswap V2、MakerDAO、Chainlink,请参阅 oracles.club)以及链外来源(如 Coinbase、CoinMarketCap);


5. 安全性——查询不受信任的 api 时产生的攻击向量,必须要仔细处理;


6. 清楚外部问题——必须充分处理异常源(例如,使用健全性检查和加权中位数);


7. 可定制性——客户端运行者应该能够轻松更改默认价格推导逻辑,并自定义其价格来源;


8. 去相关——实现应努力使价格推导逻辑最大化去相关(例如,跨实现、版本、slot);


dApp 指南


1. 历史累加器——每个 PriceData 对象,都可以根据 BeaconState 中的 historical_roots 进行验证。为了提高 gas 效率,可以有效地将 SHA256 Merkle 验证数据(witnesses)压缩成一个 SNARK(通过 plookup 等技术进行优化);


2. 风险分析——dApp 必须仔细评估非诚实验证者的价格操纵风险,并作出知情的安全假设(例如验证者诚实假设);


3. 混合预言机——dAppp 应该考虑将重要的喂价服务与其他价格来源相结合。喂价服务是一个基础设施,旨在增加以太坊生态系统的选择和健壮性;


下面,则是来自以太坊联合创始人 Vitalik buterin 发表的 battle 意见:




「我持绝对反对意见!首先,这是对区块链技术特性的一个根本性改变。现在,我们有了一个特性,即区块链进度的正确性可通过编程方式完全验证。有效性是一个确定性功能,可用性(即非审查)可以由在线节点进行验证,甚至还有针对低延迟在线节点的技术,以就区块链是否审查交易达成共识。


另一方面,这个提议的目的是引入一个链属性,即使在原则上也不能在任何假设下通过编程进行验证。甚至在未来的世界里,人们对投入的正确价值也没有明显的共识(例如,上述一个国家发生内战,双方都声称自己的货币是「真正」的 USD/CNY/JPY)。


第二,该提案依赖于诚实多数,但我们在以太坊 2.0 上面所做的很多事情,从根本上讲是要摆脱诚实多数的假设,并试图在诚实多数失败的情况下创建「第二道防线」,例如:托管证明,试图将聚合的安全性假设从「必须诚实」更改为同时涵盖不邪恶,但懒惰的参与者;数据可用性证明和欺诈证明(fraud proof),允许 51% 攻击链拒绝无效或不可用的区块;用户可运行全节点,而不仅仅是轻节点;上面提到的审查检测技术;无活动泄露机制,及其在>1/3 离线攻击发生的情况下进行恢复操作;而做出一个依赖于诚实多数的设计,与所有以上这些进步的方向是相反的。


第三,它损害了协议的中立性,并为进一步的中立性妥协开辟了一条滑向深渊的道路。该提案(1)将「defi」提升为特权应用类,并(ii)提升一组特定的资产/价格指数。它还会引入底层治理的政治风险,比如必须要判断哪些货币是足够重要的,哪些应用类是足够重要的,如何判断紧急情况,等等。


第四,它关闭了预言机设计创新的大门,例如,这种设计的一个自然替代方案是,时间 T 时的价格,只应在时间 T+1 天时商定,以便为链上攻击、交易所在较长时间内停止工作的情况,以及通常功能性 api 意外出错的情况提供空间。有很多种方法可以设计预言机,而用 L1 的方法统治生态系统,似乎并不是正确的答案。


第五,它增加了 staking 验证者中心化的风险,因为客户端需要更多的自动更新来维护他们的预言机,这增加了验证者盲目遵循客户端开发者指示的风险(或者人们会彻底放弃自己当验证节点,而切换到验证池当中);


第六,与基于应用层 token 的预言机(例如 Augur 等)相比,它实际上并没有提供更多的安全性。MKR 的市值约为 200 万 ETH,因此应用层代币显然可以获得显著的市值。我们预计,以太坊 2.0 初始的 staking 币数,大约在 200 万 ETH 范围内(长期值可能达到 1000 万 ETH)。因此,基础层预言机的安全级别,并没有比应用层的预言机高多少,似乎充其量只是一个数量级的差异。


我实际上认为,我们应该朝相反的方向发展,明确限制底层的功能,以便故意为应用层生态系统留下空间,让应用层开发其他的工具。Augur 一直在很好地运行,其他预言机(UMA, MKR, Chainlink…)也同时存在着。


以太坊生态系统得益于强大的应用层代币生态系统,而不是 L1 层/ETH 垄断所有重要功能。这是因为以太坊生态系统对公共产品有很大的需求,而准备提供这些公共产品的以太坊供应却有限(以太坊基金会持有的 59 万 ETH,以及一些鲸鱼持有的币),因此修改以太坊协议,以印刷更多以太坊用于这些目的,在政治上是困难的(出于正当理由)。然而,应用层 token 可以提供这些公共产品,例如 Gnosis 在智能合约钱包中做了很多工作,现在已经在其中维护了 openesom 等等。应用层 token 甚至可以直接用二次方融资方式来资助公共产品。因此,我们应刻意寻找并设计与此类应用层 token 的共生关系,而不是将它们视为基础层可吸收的一个试验地。」


目前来看,大多数以太坊参与者似乎更支持 Vitalik 的观点,你的看法又是什么呢?


原文地址:https://www.8btc.com/article/595058



—-

编译者/作者:区块律动BlockBeat

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...