注,原文作者为 Tesa Ho
以下为全文翻译:
1
什么是预言机?
预言机是现实世界(链下)服务和区块链(链上)协议之间架起桥梁的中间方。预言机检索链下数据,并将这些数据发布到区块链上供智能合约使用。它们还将智能合约中的信息和指令转发给链下的外部系统。此外,预言机还必须确保提供准确的数据,并能抵抗操纵。
理想的预言机应有以下几种特质:
1. 高水平的准确性——价格预言机应准确反映当前数据。
2. 抗操纵性——预言机应能抵抗操纵。
3. 及时性——来自价格预言机的数据应该及时提供,且最好是每个区块的数据。
4. 去中心化——预言机价格要在去中心化且无准入的系统中进行验证。
2
链上预言机 VS 链下预言机
DeFi 预言机可分为链上链下两种,前者的价格来自链上源(如 Uniswap),而后者的价格则来自链下源。除此之外,预言机还可以进一步分为中心化和去中心化的,前者的数据由单一运营商验证(如 Compound),而后者的数据则由独立运营商验证(如 MakerDAO)。
链下或链上预言机有着各自的优点和缺点。链上预言机的主要问题是容易被操纵。比如,链上预言机可以与闪电贷结合来利用协议,例如发生在 Harvest Finance (2020 年 10 月),yVault (2020 年 7 月),以及 bZx (2020 年 2 月)上的安全事件。这些漏洞导致了许多协议在其智能合约中整合了链下或混合价格预言机,以减少预言机被操纵的可能。
3
顶级以太坊 DeFi 预言机的分类
此分类涵盖了 DeFi 中最广泛使用的协议和预言机。Linda Xie 在其 Github 上有更深入的关于 DeFi 预言机的分类。点击此处查看。
Chainlink 预言机(混合去中心化)
Chainlink 使用的是一个至少由 7 个独立节点运营商所组成的去中心化预言机网络。节点运营商负责检索链下数据并反馈给请求的智能合约。节点运营商通过两种方式提供数据。第一种是,当节点运营商是一个独立于数据源的实体时,将通过 Chainlink 标准 API 模型提供数据。节点运营商提供的价格由 FluxAggregator 在链上汇总成一个单一的响应,并用于更新链上的价格参考源。当价格与链下的偏差超过合约偏差阈值或伴随基于时间的最小更新,即心跳阈值(the heartbeat threshold),这些更新就会发生。第二种模式是原点签名数据模式(Origin Signed Data Model ),当数据提供者(例如 Kaiko)操作自身节点时,就会发生这种情况。所提供的数据将用唯一的私钥签名,并直接交付给智能合约,使数据馈送可抵抗女巫攻击。此外,每个节点运营商都从一个公共地址提交数据,节点便可以根据其声誉进行评估,有时这也被称为是 " 通过透明度来实现安全 "。
MakerDAO v2 预言机(链下去中心化)
Maker 协议使用价格预言机 Medianizer,以确定何时清算资金库,并计算特定的资金库可以产生多少 Dai。每个预言机为单一资产产生参考价格。预言机从个人和组织提供的独立馈送中接收数据。
MakerDAO V2 版本使用了一些白名单地址作为数据馈送(Feed)。每个 Feed 会使用一个叫 Setzer 的工具从一组交易所中拉出中位数价格。中位数价格会被推送到安全的 Scuttlebutt 网络,随后,该网络将汇总价格数据并将报告的中位数价格发送到 Medianizer。如果新的参考价格大于源价格的 1%,或最后一次价格更新是在 6 小时之前,Medianizer 便会将报告的中位数价格作为参考价格发布。参考价格在被其他 Maker 智能合约使用之前会被预言机安全模块延迟。
此外,Medianizer 还控制着增加或删除白名单 Feeds,这些 Feeds 由 MKR 持有人投票决定。每个 Feed 都可以配置 Setzer,并从其选择的任何交易所拉出数据。Medianizer 合约还设定了参考价格验证所需的有效 Feeds 的最低数量。由于 MKR 对 Medianizer 的投票控制,理论上存在 51% 攻击来操纵预言机的可能。
此前,MakerDAO 的价格预言机就在 2020 年 3 月 12 日的黑色星期四期间宕机了,因为高 Gas 费使得 Medianizer 无法及时更新价格。当天,ETH 下跌了 43%,而当 MakerDAO 的价格预言机终于能够更新价格时,巨大的价格变化已经导致了大规模的清算,整个资金库都被清空了。具体细节可查看 GlassNode 的详细报道。
Uniswap v3 预言机(链上去中心化)
Uniswap v2 试图通过使用时间加权平均价格(TWAP)来消除 v2 价格预言机的操纵。在任何交易发生之前,上一个区块最后一笔的交易价格被记录在区块的开始。区块结束时的累积价格,即每秒钟的 Uniswap 价格之和,会被添加到区块的末尾,从而使用户能够计算出准确的 TWAP。TWAPs 增加了操纵的成本,因为该成本会随着 Uniswap 的流动性和 TWAP 的时间长度而线性增长。
Uniswap v3 预计将于 5 月 5 日针对以太坊推出,并于 5 月 12 日针对 Optimism 推出。团队声称,它将利用与 v2 相同的时间加权平均定价(TWAP)预言机,并进行以下升级:
累积器检查点是内部的,允许外部合约计算最近一段时间的链上 TWAP,而不需要存储之前的累积器值。
V3 将跟踪用户计算几何平均 TWAP 的对数价格总和,而 V2 跟踪的则是用户计算算术平均 TWAP 的价格累积总和。
流动性累积器也将被跟踪,因此用户便可以决定哪个池子的 TWAP 最为可靠。
Uniswap v3 用户可以调用累积器,并取 t1、t2 的值,通过以下公式计算出加权几何平均价格。
TWAP 的新改进使移动平均线的计算更加便宜,并可进行离群点分析。此外,流动性累积器还允许智能合约根据其流动性来确定哪些预言机是值得信赖的。这将减少 Uniswap 价格预言机的波动性,并减少错误定价。
Compound 预言机 (混合中心化)
Compound 使用混合的链下和链上价格源作为其预言机。授权的价格来源(" 报告者 ")可以是中心化交易所、DeFi 协议、应用程序和场外交易平台。聚合器合约从报告者那里接收价格,并在计算中值之前对其进行验证。然后,中值会被发布到 Compound 市场。聚合器的验证逻辑是检查新价格是否在锚定合约提供的上下限锚定价格之内。如果新的价格在这些界限之外,那么新的价格就会被丢弃,参考价格也不会被更新。Compound 持有者是控制着设置,也可以改变聚合器参数,他们可以更新价格所需的最小报告人数量、锚定合约的地址以及确定上下限的容忍率。Compound 持有人还可以决定抵押品系数、预言机来源以及任何利率模型的调整。
Synthetix 预言机(链上中心化)
截至 2020 年 9 月,Synthetix 已经将其所有的价格预言机迁移到了链上。Synthetix 的产品包括外汇,商品,指数和加密货币。反向 Synth 合约的价格是通过 " 做多 " 合约计算的。指数的价格则由 Chainlink 在链外计算,然后在链上公布。由于 Chainlink 的更新只在价格变动 1% 或每 6 小时发生一次,所以 Synthetix 合约在其预言机更新上会受到潜在的超前影响。为解决这一问题,Synthetix 创建了排队机制,只有在预言机更新价格后才会发生 Synth 交换。Syth 交换与当前 blockHeight 一起被放在队列中,任何人都可以在任何时候处理。然而,队列中的交换只有在其源头和目的地被预言机首先更新时才会运行,从而消除任何提前运行的可能性。
Coinbase 预言机 (链下去中心化)
Coinbase 价格预言机使用 Coinbase Pro API 作为价格数据的来源。任何人都可以在链上发布价格,因为数据是用 Coinbase 的私钥签名的。用户能够使用 Coinbase 的公钥来验证数据的真实性。此外,Coinbase 还实施了一个链外过滤器来过滤掉偏离价格预期波动范围的极端数据点。它还使用了 Compound 开放式预言机的 ' 锚 ' 合约作为链上检查。如果预言机的价格与锚定价格相差太远,就会被拒绝,且不会推送到区块链上。
Compound 在其 View Contract 中使用了 Coinbase 的价格预言机作为报告者。而 Coinbase 的价格则由 Uniswap 锚定,以产生强大的数据源。
4
DeFi 中如何使用预言机?
虽然 DeFi 中预言机的主要用途是与借贷协议的清算有关,但价格预言机还有其他几种用途:
1. 抵押品不足的贷款清算--借贷协议(即 Maker、Compound、Cream 和 Aave)依靠价格预言机来决定何时清算用户的贷款。如果一个用户的抵押品下降到某个阈值以下,该账户就可以被清算。
2. 衍生品定价--衍生品平台(即 Synthetix、Perpetual、Hegic)使用预言机来计算加密资产,包括期权、期货、合成资产的价值。
3. 指数定价--指数平台(如 Set)使用预言机来检索指数成分的价格。
4. 保险协议--保险协议(如 Nexus Mutual)在向区块链报告和发布索赔之前利用预言机来验证索赔。
5. 预测市场--去中心化的预测市场(即 August 和 Gnosis)依靠预言机进行链下事件结算。
5
以太坊预言机之外
在上述以太坊解决方案之外,还存在其他的预言机解决方案。Julien Thevenard 和 Nikolaos Kostopoulos都在各自的文章中回顾了其他几个区块链预言机。下面是对本报告范围之外的其他区块链预言机的快速概述。
结论
每个预言机,无论链上或链下,都有自己的优势和弱点。以太坊价格预言机是否会遭受另一个黑色星期四的崩溃,仍有待确定。在评估预言机时,牢记以下攻击载体或许会有所帮助:
1. 51% 攻击:如果一个实体拥有或一个团体勾结控制了大多数节点?届时,这部分实体便可以控制哪些价格信息被使用,将哪些数据认作是绝对真理。
2. 镜像攻击:一个预言机节点能否将其数据分享给它所控制的其他节点呢?虚假的信息可以像电话游戏一样轻松传播。
3. 数据篡改:预言机是否从可信的来源接收数据?外部数据提供者可能会发送被操纵的或错误的数据。
4. 活跃度问题:预言机或节点是否及时向链上推送数据?预言机或节点的更新可能会有意或无意地停止,从而对依赖它们的智能合约造成破坏性影响。
随着加密协议的不断发展,准确的链上和链下数据的重要性也在不断增加。此外,随着这些无准入协议与外部系统、物联网设备和其他软件的进一步整合,将外部数据准确传达给区块链网络的需求将获得极大关注。不同的用例可能需要特定的预言机设计,协议或公司也需要根据上述的权衡选择特定的解决方案。
声明:本内容为作者独立观点,不代表 CoinVoice 立场,且不构成投资建议,请谨慎对待,如需报道或加入交流群,请联系微信:VOICE-V。
简介:专业性+洞察力的中文区块链媒体,致力于探索Web 3.0前瞻内容和深度解读。
评论0条