深入研究 MakerDAO、Compound、Synthetix 等明星 DeFi 平台部署的预言机后,我们发现预言机报告价格经常偏离当前汇率。

原文标题:《深探 DeFi 预言机》
作者:Bowen Liu & Pawel Szalachowski
翻译:Anthony

新兴的去中心化金融(DeFi)智能合约推动加密货币的进一步发展,利用去中心化的链上网络将传统金融产品转变成为一个无中央机构运行的无需许可的透明协议。然而,这些 DeFi 智能合约通常需要关键的外部信息,如货币或商品汇率,依赖于特殊 DeFi Oracle/ 预言机的喂价。在这篇论文中,我们深入研究了实践中部署的 DeFi Oracle/ 预言机。首先,我们研究了依赖于预言机喂价的主流 DeFi 智能合约的设计。令人惊讶的是我们发现,预言机在这些设计中并没得到重视。然后,我们大规模测量的实践部署预言机的链上数据。我们发现,预言机报告的价格经常偏离当前的汇率,预言机运营也存在问题并造成报告异常的情况。最后,我们比较了 DeFi Oracle/ 预言机的设计并提出了潜在的改进。

简介

去中心化的加密货币是在不需要中心信任实体下运行,使得资金和支付变得普遍可用。去中心化金融(DeFi)是在加密货币的一个拓展,建立在区块链的智能合约平台之上的新颖金融工具。与传统金融相比,DeFi 具有多种优势。首先,它继承了区块链的特性,如去中心、开放性、无需许可和抗审查等。其次,DeFi 具有高度的灵活性,允许通过组合、堆叠或连接不同的金融工具进行快速迭代创新。最后,DeFi 提供了可互操作的服务。新的 DeFi 项目无需从零开始,可以通过分叉或组合其他 DeFi 平台来构建或组合,像搭乐高积木。

DeFi 生态系统中的一个日益增长的趋势是混合协议,它试图吸取不同 DeFi 项目的优势,来消除了密码数字资产的高波动性 [24],高波动性阻碍了 DeFi 的广泛应用。通过将加密资产与传统金融工具相连接来试图解决这一点。一个突出的例子是 DeFi 发展最快的分类,去中心化借贷协议。MakerDAO[11] 是一种抵押品支持的去中心化借贷协议,任何人都能够利用其抵押品资产,通过一个动态的抵押债务合约 CDP 生成新的稳定代币 DAI[12]。一旦产生新的 DAI,它们就可以像其他任何加密货币一样使用而且 DAI 相对美元是稳定的。用户在付清债务和费用后,可以提取抵押物并结清贷款。在 MakerDAO 成功之后,其他 DeFi 贷款平台,如 Compound[7] 也相继推出。通过取消传统的信贷审检,并自动化合约执行降低成本,Compound 市场实际上是一个资产池,其算法是根据特定资产的供求关系得出利率。这些资产的贷款人和借款人直接与协议进行互动,以便分别赚取和支付浮动利率,而无需就到期日或利率等任何条款进行谈判。截至 2020 年 3 月,DeFi Pulse 报告称,四个去中心化贷款协议(Fulcrum[23]、dYdX[8]、MakerDAO 和 Compound)的活跃未偿贷款超过 2 亿美元 [16]。

所有这些系统都要求实时了解用作抵押品和赎回的资产的市场价格。由于加密资产抵押物的价值(以法定货币表示)是不稳定的,我们如何获得安全的市场价格呢?为了实现这一功能,DeFi 协议引入 Oracle/ 预言机,报告来自真实世界(链外)的市场资产价格。Oracle/ 预言机充当数据源,这些数据将被输入到智能合约中。尽管预言机在 DeFi 生态系统中起着至关重要的作用,但它的基本机制是模糊和未经验证的。首先,它们的部署实践,包括价格更新的频率、如何从多个节点聚合价格值等,既不透明,也不负责,为各种不当行为留下了空间。第二,预言机中的信任程度不清楚,即使是生态系统的许多参与者很可能也不知道。最后,一个潜在的恶意预言机(或一组)对 DeFi 生态系统的影响程度也没有被审查过。

在本文中,我们会阐明这些问题,提出了预言机的研究报告。首先,我们将解释实际部署的预言机设计。其次,我们系统地研究了四个流行的 DeFi 合约平台(MakerDAO、Compound、AmpleForth 和 Synthetix)的预言机部署,它们依赖外部预言机来获取价格信息。我们对外部预言者提供的信息与实际价格之间的偏差进行了详细的测量。此外,我们还通过事务图分析来衡量预言机的健壮性和部署实践。最后,我们比较了部署的平台,并对潜在的改进提出建议。

背景

DeFi 协议是通过部署在区块链上的智能合约来实现的,但无法获取任何外部链下资源(如当前资产价格)。因此,在这种设计中,price oracle/ 预言机是一个基本组件,它将加密资产与外部链下信息连接起来。在本节中,我们将介绍主要的 DeFi 协议及其 oracle 设计的背景。目前绝大多数 DeFi 平台,都建立在以太坊之上 [20]。

MakerDAO

MakerDAO 是最为流行的去中心化借贷协议,其中每个代币 SAI 都与美元挂钩,并由加密资产形式的抵押品支持。由于处理加密资产的波动性是一个问题,MakerDAO 提供了加密的可编程性,而不会带来传统加密货币(如比特币或以太坊)波动性的负面影响。通过将他们的加密资产作为抵押品纳入债务抵押头寸(CDP)合同,用户能够生成 SAI 代币,这些代币可以以与任何其他加密货币相同的方式进行交易。作为回报,CDP 根据抵押比率计算出被称为超额抵押贷款的债务 (即,抵押比)。目前的抵押比率设定为 150%,这有助于对冲借款人的风险。当用户想要取回他们的抵押品时,他们必须支付 CDP 中的债务,加上债务随时间持续累积的稳定费用,这些费用只能用 MakerDAO 的本地代币(MKR)支付。除了支付稳定费外,MKR 代币还可以对平台的迭代治理演进进行投票,并根据拥有的 MKR 数量比例投票,在 MakerDAO 的治理中发挥重要作用。SAI 作为 stablecoin 和 MKR 作为治理标记的结合确保了系统的平衡。MKR 持有人直接受益于 SAI 的使用,SAI 的使用由能够保护系统的持有人管理。

万字深探 Maker、Compound 等 DeFi 项目预言机实践现状与改进

MakerDAO 引入了预言机模块来获取资产的实时价格。该信息的准确性至关重要,因为它决定了 CDP 是否锁定了足够的抵押资产,以及何时触发清算。预言机模块由许多白名单上的预言机节点地址和一个聚合器契约组成。预言机节点定期向聚合器发送更新市场价格,聚合器聚合它们,计算中间价格作为参考价格,并以此参考价格更新平台。每种资产类型都有一个独立的聚合器合同,用于从授权的 oracle 节点收集信息。我们在图 1 中对这个体系结构进行了概述。聚合器合约实现访问控制逻辑,允许添加和删除喂价的预言机节点地址。此操作由管理者-MKR 持有者决定,他们投票并更新预言机地址上的更改。此外,逻辑允许设置控制聚合器行为的其他参数,例如,接受新中值所需的最小预言机节点数。因此,在这种治理机制中,预言机可以被 MKR 持有者操纵。实施类似于 51% 的攻击,一个联盟可以通过操纵治理来「窃取」系统抵押品而获利 [9]。

Compound

Compound 是一个基于区块链的 DeFi 借贷平台,参与者可以将他们的加密资产借出并从中赚取利息。参与者将其加密资产作为抵押品存入 Compound 智能合约,并以此为抵押借款。该合同自动匹配借款人和贷款人,并根据供求动态调整利率。与 MakerDAO 类似,Compound 使用 oracle 作为 price feed,并由 Compound 的 COMP 令牌的持有者管理和控制。Compound 平台对任何变更的提出、投票和实施合规持有人管理和升级进行管理。可以包括调整利率模型或担保因素、管理聚合器合同和选择 oracle 的来源等更改。

Compound 合约中价格更新的逻辑如图 2 所示,在开始时,管理员部署一个锚定合约,然后创建一个包含 min、锚定和公差集的聚合器合约,其中 min 是计算默认设置为 1 的新中值所需的最小报告数,锚定表示锚定的合同地址和公差设为 10%。Compound 中的 oracle 系统允许多个授权来源(称为 reporters)向聚合器合同报告价格数据。reporters 可以是交易所、其他 DeFi 项目、应用程序、场外(OTC)交易台等。聚合器从 reporters 那里接收参考价格,对其进行验证并计算中间值,然后将其存储起来,以便被 Compound 市场访问。更新资产参考价格的机制是基于锚定价格(由锚定地址报告)以及检查聚合器计算的中值价格的上下限。如果新的中间价格和锚定价格之间的比率超出界限,则不会更新资产的官方参考价格。

万字深探 Maker、Compound 等 DeFi 项目预言机实践现状与改进

AmpleForth

由于比特币等加密资产因其固定的供应及生产时间无法有效应对需求变化,使它们价格的稳定性容易受到经济冲击和通货紧缩的破坏。为了解决这一缺点,AmpleForth 创建 AMPL 令牌来自动将资产价格信息传播到 supply 中。根据 AMPL 和美元之间的价格汇率,通过按比例地扩大或收缩每个持有者的代币数量,这种反周期的,非稀释性的自动价格供应平衡。AMPL 最初与美元挂钩,但并非永久挂钩,因为该平台考虑到消费者价格指数,以平衡未来美元通胀。因此,AmpleForth 的目标是通过根据对 AMPL 代币的需求改变供应来稳定购买力。更具体地说,当需求大于供给时,平台会自动增加 AMPL 的总量,以防止商品的相对价格上涨。同样,当总需求小于供给时,数量也相应减少。

万字深探 Maker、Compound 等 DeFi 项目预言机实践现状与改进

对于以价格-供应均衡为目标的协议来说,有一个可靠和准确的市场价格信息来源是至关重要的。AmpleForth 的核心功能如图 3 所示。平台管理员在聚合器合约初始化期间设置其 min、delay 和 expire 参数,其中 min (默认为一个)指有效报告的的最小预言机节点数目,以认为聚合报表有效。delay 是自报告可用之前必须通过等待的秒数(设置默认情况下为 1 小时)。而 expire 表示报告被视为过期的秒数,在 AmpleForth 中,该值默认为 12 小时。有效报告必须在链上公开至少 1 小时,然后才能被使用,如果在 12 小时后未提供新报告,则该报告将在链上过期。这意味着只有在有效时间戳内提交的报告才被视为有效报告。我们在图 4 中描述了这个逻辑,并假设聚合器在 T0 检索价格信息。正确的 AMPL/USD 价格是聚合器根据授权 oracles 提交的报告计算得出的中间价。T0 − expire ≤ valid timestamp ≤ T0 − delay

Chainlink。像以太坊这样的智能合约平台,本身就缺乏将智能合约与非链上资源(如 web)连接起来的能力。Chainlink[4] 的目标是通过充当一个去中心化的 oracle 网络来解决这个问题,该网络是连接链上智能合约和链下环境的桥梁。(在第 5 节中,我们讨论了与 Chainlink 竞争的设计。)它通过提供智能合约 api 来实现这一点,允许 DeFi 合约请求链外资源,如市场数据、银行支付、零售支付、后端系统、事件数据或 web 内容。Chainlink 由多个分散的、独立的 oracle 和聚合器组成的网络,这些 oracle 和聚合器收集和处理链外数据,并根据请求将其传递(处理)到智能合约。AmpleForth 是与 Chainlink 集成的平台的一个例子 [4]。

万字深探 Maker、Compound 等 DeFi 项目预言机实践现状与改进

Synthetix

Synthetix[15] 平台允许用户创建和交换黄金、白银、加密货币和传统货币等资产的合成版本。Synthetix 的目的是允许创建「合成资产」,其价格可以跟踪货币、加密货币和大宗商品。Synthetix 涉及两种不同类型的令牌。用户首先购买 Synthetix 的本地令牌 SNX 并将其锁定到 Synthetix 合同中,该合同作为支持其他 synth 令牌的抵押品。2 这些 synth 是通过 Synthetix 平台创建的合成资产。请注意,Synthetix 平台总是将合成资产之一 sUSD 的价值定为 1 美元。synth 的价格也是通过 oracles 来确定,oracles 将资产的外部真实价格报告给聚合器,然后进行中值计算。如图 5 所示,当前的 oracle 和聚合器是通过 Chainlink 提供。每种资产类型都提供一个独立的 Chainlink 聚合器,它由许多 oracle 节点源维护。为了确保准确的数据输入,oracles 会在短时间内(比如 5 或 10 分钟)更新链上价格。

测量 /MEASUREMENTS

在本节中,我们将详细介绍我们的测量研究。我们对 AmpleForth、Synthetix、MakerDAO 和 Compound 平台,进行详细测量并报告以下内容:a)平台资产的市场价格波动(第 3.1 节),b)市场价格与预言机报告价格之间的偏差(第 3.2 节),c) 预言机的故障和异常行为(第 3.3 节),d)预言机与生态系统交互的交易图(第 3.4 节)。

价格波动

在这一部分中,我们将演示旨在消除波动性的 DeFi 资产的价格波动性。我们总结了市场价格的每日变化(以美元为单位,由 https://coinmarketcap.com 网站) 对于表 1 中讨论的每个平台,其中 Obs。是观测次数(即平台运行的天数)。可以观察到,尽管目标是稳定,但所有平台在一天内都经历了 1% 或 5% 的价格变化。此外,在调查的 30% 左右的时间里,AMPL 的市场价格每天变化超过 10%。价格随时间的波动如图 6 所示,价格的快速变化主要是由交易量的变化、外部事件(如各国禁止加密货币)或投机行为引起的。所有的结果表明,这些 DeFi 协议和依赖于其资产的协议需要实时准确的参考价格数据来对冲高波动性的风险。

万字深探 Maker、Compound 等 DeFi 项目预言机实践现状与改进

价格偏差

在本节中,我们将测量市场实时价格与这四个主要 DeFi 平台的 oracles 报告的价格之间的偏差。我们还调查了「异常值」的可能原因—oracle 报告的偏差比其他报告高得多。为了进行这项研究,我们从 MakerDAO、Compound 和 Synthetix 中选择了报告最频繁的 ETH/USD 汇率。对于 AmpleForth,我们调查其官方市场预言机,该预言机每 12 小时报告一次 AMPL/USD 汇率。我们使用以太坊的 BigQuery 数据库 [22] 来获取有关预言机与其 DeFi 平台交互的数据。对于每个预言机,我们通过提取其数据和元数据、将数据解析为可读的价格格式并将其与预言机应该遵循的真实价格源(oracle 可能使用不同的价格源)进行比较来分析其所有交易事务。在我们的实验中,我们将预言机的数据源视为给定资产价格的基准。此外,由于 oracle 的价格报告方法没有严格规定,对于每个基准源,我们还显示了其实时「原始」价格和超过 1、5、10 和 60 分钟的中值。

万字深探 Maker、Compound 等 DeFi 项目预言机实践现状与改进

结果。我们首先调查了 Synthetix oracle,通过分析其 3,308 价格公告,并将其与来自不同交易所的数据进行比较。由于 Synthetix 与 Chainlink 集成,我们发现他们 oracle 的 ETH 价格来源是 Coinmarketcap、Bitfinex[2] 和 Bittrex[3]。因此,在图 7 中,我们显示了 oracle 报表与其价格来源之间的 ETH/USD 价格偏差。如我们所见,偏差数量很大,大多数偏差在±2% 范围内。

万字深探 Maker、Compound 等 DeFi 项目预言机实践现状与改进

类似地,在图 8 中,我们展示了 MakerDAO ETH/USD oracle 的价格偏差。由于 oracle 没有指定其来源,我们使用与 Synthetix 中相同的基线进行评估,除了 Bittrex,它仅提供自 2018 年 6 月以来的 ETH/USD 价格信息 [18](我们从 2018 年 1 月开始测量 oracle 交互)。如我们所见,存在大量的偏差,其中大多数偏差都在 5% 的范围内,这表明 MakerDAO oracle 不如以前的 Synthetix oracle 有效。此外,还有一些异常值报告,偏差超过 10%(我们在表 3 中进一步调查它们)。

万字深探 Maker、Compound 等 DeFi 项目预言机实践现状与改进

在 AmpleForth 中,oracle 的声明来源是 Anylock-analytics[17,19],但是,它不提供公共 API 来检索的实时价格。因此,我们考虑与 Synthetix 中相同的基线,但 Bittrex 不跟踪 AMPL/USD 汇率。我们为 AmpleForth oracle 分析了 980 笔交易,并将结果与 Coinmarketcap 和 Bitfinex 进行对比。如图 9 所示,大多数偏差都在 5% 的范围内,与 Synthetix oracle 类似。有趣的是,有一个异常值报告具有非常大的偏差值(即 273.7%),我们将在本节中进一步讨论。

万字深探 Maker、Compound 等 DeFi 项目预言机实践现状与改进

Compound 的预言机使用 Kraken[10] 和 CoinbasePro[6] 作为其 ETH/USD 来源 [5]。我们对 Compound oracle 进行评估,总共分析了 2,144 个事务,并将得到的结果显示在图 10 中。如我们所见,大多数偏差在 4% 以下,只有少数偏差在 5% 以上。

万字深探 Maker、Compound 等 DeFi 项目预言机实践现状与改进

比较。在图 11 中,我们显示了所有平台的每个源的平均偏差。在大多数情况下,考虑到加密资产的波动性,平均偏差小于 2%

万字深探 Maker、Compound 等 DeFi 项目预言机实践现状与改进

比较。在图 11 中,我们显示了所有平台的每个源的平均偏差。在大多数情况下,平均偏差在 2% 以下,考虑到加密资产的波动性,可以看作是相对精确的信息。从图 11a 到图 11c,我们可以看到平均偏差从原始数据增加到 60 分钟中值。在 Synthetix 中,Bittrex 比 Coinmarketcap 和 Bitfinex 更精确。在 MakerDAO 中,Bitfinex 对于实时价格、1 分钟和 5 分钟中间值更为准确,而 Coinmarketcap 对于 10 分钟和 60 分钟中间值更为准确。对于 Compound,观察到 CoinbasePro 比 Kraken 精确得多。此外,AmpleForth oracle 的结果表明,与其他三个平台的趋势相反。这很可能是由 oracle 在向聚合器报告之前处理较长时间内的平均价格引起的 .

万字深探 Maker、Compound 等 DeFi 项目预言机实践现状与改进

为了更好地说明 oracles/ 预言机之间的差异,我们还给出了表 2 中的具体数字。我们可以观察到,除了 AmpleForth,相对较高的偏差之外,大多数的发布行为的偏差都是≤1% 和≤5%。一个可能的原因可能是我们测量的基准线与他们使用的基准线不同(如前所述,AmpleForth oracles 不透露其价格来源)。然而,我们测量的平均偏差约为 2.5%,与其他平台相比似乎是可以容忍的。

异常值。由于实时价格的突然变化或 Oracles/ 预言机本身的错误,每个 oracle 可能会面临一些不可避免的异常值,因此在表 3 中,我们提供了一些在第 3.1 节中观察到的较大偏差值的选定报告。在 AmpleForth,市场 oracle 在 2007 年 3 月 5 日有一个明显的发布错误,当时 oracle 以十六进制格式提交的价格为 0x5667f2bb31e073c7,与当时的汇率偏差 273.7%。我们没有发现任何原因导致这种异常,我们怀疑是输入错误。另一个有趣的异常报告有 50.2% 的偏差。这种不一致的输入很可能是由于汇率突然下降,达到了过去四个月的最低价格。由于加密资产汇率在过去三个月内突然下降,MakerDAO 的 oracle 有两个异常报告,分别偏离 12.8% 和 12.2%。在 Synthetix 和 Compound 中,前两个异常值报告的百分比远小于前两个平台,只有 5% 左右。Synthetix 中最大的异常值也来自于实际价格的突然下跌,而第二大异常值很可能是由于最近美国股市的波动。

万字深探 Maker、Compound 等 DeFi 项目预言机实践现状与改进

故障

在本节中,我们将研究 oracle 故障。对于 MakerDAO、Compound 和 AmpleForth,我们检查了它们的 oracle 提交但由于 Ethereum 网络处理失败的所有事务(要么被网络拒绝,要么被 oracle 本身还原)。对于 Synthetix,由于与 Chainlink 的集成,我们检查所有受支持资产的 oracle 节点,找出它们从中收集的真实来源,然后测量这些 oracle。

MakerDAO。MakerDAO 中的参考价格 ETH/USD 由聚合器更新,聚合器整理来自多个外部来源的价格数据。如表 4 所示,在总共 7042 个事务中,有 54 个失败的事务是由于 ETH oracle 中的 GAS 错误而发生的,失败率为 0.77%。另外三个 oracles 的故障率分别为 2.17%、1.39% 和 0.53%,也存在类似的问题。

AmpleForth。接下来,我们调查所有源自 AmpleForth 预言机的交易。在表 4 中,我们发现,到 2020 年 4 月,在 AmpleForth 的两个市场仓中发生了 3015 和 3416 笔逆转交易。

Synthetix。Synthetix 与 feed 服务的 Chainlink 完全集成。Synthetix 中支持的每种资产类型都有一个对应的 Chainlink 节点集合,用于完成类似于 oracle 的作业。我们进一步检查所有交换对的节点-ETH/USD、BTC/USD、AUD/USD、EUR/USD、CHF/USD、GBP/USD、JPY/USD、XAG/USD 和 XUG/USD,以找出潜在故障。

万字深探 Maker、Compound 等 DeFi 项目预言机实践现状与改进

在表 5 中,我们给出了有关预言机节点的详细信息、它们各自的来源以及遇到的问题。我们发现一些问题,如 Anyblock 和 Simply VC 提交的事务随后被以太坊网络还原。到 2020 年 2 月 14 日,Alpha Vantage 收到了来自 Chainlink 的 17 个请求,但都忽略了它们,没有提交任何成功的响应。LinkPool 采用两种外部资源,即 CryptoCompare 和 Alpha Vantage,用于 ETH、BTC、AUD 和 XAG 汇率。然而,Alpha 的优势是不可靠的,这使得 LinkPool 也不可靠。Fiews, Cosmostation, Validation 等,是稳定的节点,没有发现异常,而 stake.fish 鱼池和 Chainlayer 不是公开的,因此不能被公开审计。

万字深探 Maker、Compound 等 DeFi 项目预言机实践现状与改进

预言机的活动分析

oracle 地址可以与大量以太坊地址交互,这些地址可以是 ERC-20 令牌合约、onchain 服务、来自其他协议的实体或外部帐户地址等。在本节中,我们将重点分析 DeFi 平台的 oracle 的事务活动。我们使用 BigQuery 对 oracle 的整个事务历史进行爬行,然后构建事务图,找出 oracle 与哪些最常见的地址进行交互,它们与哪些实体或外部帐户进行通信,以及它们涉及哪些有趣的活动。

AmpleForth。我们从 AmpleForth 的 oracle 收集了 132119 笔交易,发现有 47 个不同的地址与 oracle 交互。如图 12a 所示,整个事务的很大一部分是与 Chainlink 的聚合器的交互,颜色为绿色。红色节点表示预言机有 161 笔交易需要升级 AmpleForth 的代理合约来设置或更新某些参数。蓝色和橙色的是外部账户地址,涉及 48 笔和 1 笔交易。oracle 在 2020 年 3 月 13 日连续向 blue node 发送了 48 个没有输入数据的事务(很可能是测试活动)。

万字深探 Maker、Compound 等 DeFi 项目预言机实践现状与改进

MakerDAO。类似地,我们使用 ETH/USD MakerDAO oracle 作为度量目标,提取 4,914 个事务,对它们进行分析,并在图 12b 中显示结果。如图所示,oracle 与来自七个不同地址的四种类型的实体进行交互。大多数交易都是关于价格过账行为的,但是,有两个失败的交易是由于 GAS 不足错误造成的。它有四个代理活动(红色节点),只有三个 SAI 和 DAI 的令牌传输(蓝色节点)。此外,当平台决定进行 SAI 和 DAI 转换时,还有一个迁移活动。

Compound。我们在 Compound 中选择 ETH/USD 预言机,并分析其所有 11,458 笔交易。所有事务都是关于价格报告操作与三个 onchain 聚合器交互。与其他平台的预言相反,事务历史不包含与其他参与者或服务的交互。

Synthetix。Synthetix oracle 的 142,422 事务图如图 12d 所示,与其他平台类似,该 ETH/USD oracle 主要与绿色标记的活动聚合器契约交互。一个例外是聚合器(橙色节点) 18 之一,该聚合器在没有明确原因的情况下自毁。除此之外,oracle 还参与了与 Synthetix 网络合约的 2,056 笔交易,大部分是从平台获取参数值。一个有趣的活动(红色)是总共 667 个事务在没有输入数据的情况下发送给自己(很可能是为了测试目的)。

讨论

去中心化

在这部分,我们讨论不同的 DeFi oracles 设计。其中一些依赖于中心化的聚合器来检索参考价格,而另一些依赖于与 Chainlink 的 feed 提供者建立合作关系。在本节中,我们将研究 oracles 系统在实践中是如何实现的,以及它如何影响平台的去中心化。

表 6 描述了影响 oracles 去中心化的属性。MakerDAO 和 Compound 有相似的架构——它们使用一个聚合器定期从外部白名单 oracle 节点检索价格信息。即使这些系统的其他组件部署在去中心化的智能合约平台上,这种设计由于预言机喂价的中心化而引入了固有的中心化缺陷。AmpleForth 部分使用 Chainlink 来提供 oracle 功能,这也减轻了(由于 Chainlink 的设计)单个聚合器的中心化风险。然而,它仍然依赖一个聚合器合约从四个 oracle 节点收集数据。因此,我们将其归类为半去中心化的设计。Synthetix 已经宣布 Synthetix 与 Chainlink 集成到以太坊上运行 [25],提供完全去中心化的喂价。数据馈送将被转到由 Chainlink 组成的去中心化 oracle 节点网络中,参考价格由多个独立节点在经济激励的支持下而不是由任何中心第三方在链上传输。因此,就目前而言,它的设计最接近于去中心化。

万字深探 Maker、Compound 等 DeFi 项目预言机实践现状与改进

建议

我们的研究,初步看来 oracle/ 预言机生态系统并不成熟。因此,在本节中,我们试图从我们的观察中学习并洞察未来 oracle 平台的潜在改进。

Transparency/ 透明度。如第 3.2 节所述,oracles 报价的处理方法没有明确说明。甚至 oracle 检索来源对于平台用户来说也是不明确的。这导致 oracle 平台缺乏透明度和潜在的不可察觉的错误行为,因为目前没有实体能够证明 oracles 报告的价格的准确性。我们对未来 oracle 设计的第一个建议是要求 oracles 显式声明其清单。这样的清单将包含 oracle 元数据(如 oracle 联系人信息)、部署的数据源、oracle 更新的预期频率以及价格推导的精确描述。

Accountability/ 问责。我们认为,oracles,成为关键的信任方,应该为他们的行动负责。在区块链生态系统中,我们可以预见实现责任的一种可行方式是加密激励。因此,为了激励 oracles 以承诺的频率报告准确的价格,我们可以想象,平台实施的机制将惩罚 oracles 违反其清单或平台策略的行为,例如,延迟或丢失报告等事件,或高价格偏差等可证明的不当行为。这种机制可以通过智能合约部分实现,但它需要 oracles 存储大量的加密资产作保证。

Operational Robustness/ 操作稳健性。我们发现,令人惊讶的是,尽管 oracle 的交互相对简单,但它们并没有摆脱基本的操作问题(例如,导致出故障)。由于 oracle 报告在 DeFi 生态系统中起着至关重要的作用,我们鼓励运营商通过提高 GAS 和 GAS 价格来过度供应。前者必须保证在整个交易执行过程中有足够的 GAS 消耗。后一个参数对于报告的延迟很重要,当以太坊网络拥塞时,这一参数可能特别重要 [21]。高昂的 GAS 价格将使 oracle 的报告能够更快地广播到区块链中。

相关工作

我们目前并不知道是否还有其他测量或分析 DeFi oracles 的工作,但是,下面我们讨论下最相关主题的工作。

Oracle Designs/ 预言机设计。Town Crier (TC)[37] 是一个经过认证的智能合约数据喂送系统。实体 TC 充当智能合约和现有网站之间的桥梁,这些网站已经被非区块链应用程序普遍信任。它将区块链前端与受信任的硬件(即英特尔 SGX 技术 [27])后端结合起来,以抓取支持 HTTPS 的网站,并根据智能合约提供源认证数据。由于 SGX enclave 的集成,在 TC 中有可能执行正确代码的远程证明。TC 建立与网站的安全 TLS 连接并解析其内容,然后可以将其用作智能合约的输入。然而,TC 的一个潜在限制是它将 Intel 定位为执行远程认证所需的可信方。

TLS-N[35] 是一个通用的 TLS 扩展,它为 TLS 协议提供了安全的不可否认性。TLS-N 修改 TLS 堆栈,以便对服务器发送的 TLS 记录进行身份验证(成批)。因此,TLS-N 客户端可以将接收到的 TLS-N 记录呈现给第三方,第三方可以验证它,只需信任服务器(没有任何其他第三方信任)。一般来说,TLS-N 生成关于 TLS 会话内容的非交互式证明,这些证明可由第三方和基于区块链的智能合约有效验证。因此,TLS-N 增加了对 web 上提供的内容的责任,并使 web 内容成为一个实用且分散的区块链 oracle。然而,它的主要缺点是可部署性。它需要对 TLS 协议进行重大更改,采用过程相当缓慢。

实用数据馈送服务(PDFS)[29] 是一个扩展内容提供商的系统,它包含了数据透明性和一致性验证的新功能。它允许内容提供商将其 web 实体与区块链实体链接起来。在 PDF 中,数据通过区块链进行身份验证,但不会破坏 TLS 信任链或修改 TLS 堆栈。

此外,内容提供商可以指定他们想自由使用的数据格式,因此数据可以很容易地被解析和定制为智能合约。PDFS 使内容提供商保持可审计性,并减轻其恶意活动(例如,数据修改或审查)并允许他们创建新的业务模型。缺点是,智能合约中的验证逻辑不太轻量级或高效,而且证明更短的设计可能是 PDF 的潜在改进。

DeFi Surveys/DeFi 调查。[26] 提供了一个关于主流 DeFi 协议的调查,主要集中在 stablecoins 的设计上。[32] 和 [33] 系统地讨论了现有 DeFi 平台的总体设计。通过将这些设计分解为各种组成部分,即挂钩资产、抵押品数量、价格信息和治理机制,这些调查旨在探索 DeFi 平台的优缺点,以确定未来的发展方向。

Attacking DeFi。[34] 详细探讨了 DeFi 生态系统以太坊网络上的闪贷款机制。分析了两个已有的 ROI 大于 500k% 的攻击向量,并将基于闪贷款的攻击参数作为优化问题进行求解。它还显示了如何「提升」两个先前执行的攻击,从而分别获得 829500 美元和 110 万美元的利润,分别提升了 2.37 倍和 1.73 倍。刘易斯等人。[30] 探索设计的弱点如何导致 DeFi 危机。本文讨论了 MakerDAO 的过度抵押和治理攻击,提出了一种新的金融传染病。

对于加密货币中的拉高出货(pump-and-dump scheme)的问题,[36] 通过建立一个模型来预测拉高出货之前在加密交易所上市的所有资产的拉高出货可能性,来调查 412 个拉高出货活动,并发现与拉高出货方案相关联的加密市场中的模式。Josh 等人。[31] 从经典的经济文献中检查关于拉高出货方案的现有信息,将其与加密货币进行综合,并提出可用于定义加密货币拉高出货的标准。这些模式可以显示异常行为,用于定位异常交易活动的点,以标记潜在的拉高出货活动。

Philip 等人 [28] 提出了去中心化交易所的套利策略,这些交易所由支付高额交易费用并优化其网络延迟以提前处理普通用户交易的机器人执行。通过对 bot 盈利和区块链特定策略的实证研究,[28] 正式模拟了在 GAS 优先拍卖中,bot 为争夺矿商提供的交易优先权而相互竞争的行为,表明在许多情况下,bot 从纯收入套利中获得的收入远远超过以太坊区块奖励,并且交易费用。

结论

在这篇文章中,我们提出了第一个 DeFi oracles 的研究。通过对 MakerDAO、Compound、AmpleForth 和 Synthetix 四个著名的开放 DeFi 平台上部署的 oracle 进行大规模测量,我们研究了实时 price 和 oracle 节点提供的价格信息之间的差异引起的价格偏差的细节。我们比较了部署平台的价格偏差,对 oracles 的稳定性、责任性和部署模式进行了详细的度量。我们发现,与声称来源的偏差以及操作故障相当频繁。最后,我们讨论了这类平台可能面临的潜在安全漏洞,并提出了一些建议,可以改进发现的一些缺陷。

[1] 2019. Ampleforth.
https://www.ampleforth.org.

[2] 2019. Bitfinex.
https://www.bitfinex.com.

[3] 2019. Bittrex.
https://global.bittrex.com.

[4] 2019. ChainLink.
https://chain.link/.

[5] 2019. The claimed sources of Compound’s oracles.
https://bit.ly/ 3bNiuh5.

[6] 2019. Coinbasepro.
https://pro.coinbase.com.

[7] 2019. Compound.
https://compound.finance.

[8] 2019. dYdY.
https://dydx.exchange.

[9] 2019. How to turn $20M into $340M in 15 seconds.
https://bit.ly/ 2VNilEM.

[10] 2019. Kraken.
https://www.kraken.com.

[11] 2019. MakerDAO.
https://makerdao.com.

[12] 2019. SAI.
https://sai.makerdao.com.

[13] 2019. The sources of Chainlink ETH/USD.
https://feeds.chain.link/ethusd.

[14] 2019. Synthetix.
https://www.synthetix.io.

[15] 2019. Synthetix whitepaper.
https://www.synthetix.io/uploads/ synthetix_litepaper.pdf.

[16] 2020. The active outstanding loans from open lending protocols reported by DeFi Pulse.
https://defipulse.com/defi-lending.

[17] 2020. Anylockanalytics.
https://www.anyblockanalytics.com.

[18] 2020. Bittrex ETH/USD rate.
https://bit.ly/2VQHTRv.

[19] 2020. The claimed sources of AmpleForth’s oracles.
https://bit.ly/ 3aMaqfc.

[20] 2020. Ethereum DeFi ecosystem.
https://defiprime.com/ethereum.

[21] 2020. Ethereum gas price shot up.
https://bit.ly/2y15AgR.

[22] 2020. Ethereum in BigQuery: a Public Dataset for smart contract analytics.
https://bit.ly/3aNU8lU.

[23] 2020. Fulcrum.
https://fulcrum.trade.

[24] 2020. Most volatile cryptos.
https://yhoo.it/2YhINbg.

[25] 2020. Synthetix integrates with Chainlink.
https://bit.ly/3bJfLFc.

[26] Jeremy Clark, Didem Demirag, and Seyedehmahsa Moosavi. 2019. SoK: Demystifying Stablecoins. Available at SSRN 3466371 (2019).

[27] Victor Costan and Srinivas Devadas. 2016. Intel SGX Explained. IACR Cryptology ePrint Archive (2016).

[28] Philip Daian, Steven Goldfeder, Tyler Kell, Yunqi Li, Xueyuan Zhao, Iddo Bentov, Lorenz Breidenbach, and Ari Juels. 2020. Flash Boys 2.0: Frontrunning in Decentralized Exchanges, Miner Extractable Value, and Consensus Instability. In 41st IEEE Symposium on Security and Privacy.

[29] Juan Guarnizo and Pawel Szalachowski. 2019. PDFS: practical data feed service for smart contracts. In 24th European Symposium on Research in Computer Security.

[30] Lewis Gudgeon, Daniel Perez, Dominik Harz, Arthur Gervais, and Benjamin Livshits. 2020. The Decentralized Financial Crisis: Attacking DeFi. arXiv preprint: 2002.08099.

[31] Josh Kamps and Bennett Kleinberg. 2018. To the moon: defining and detecting cryptocurrency pump-and-dumps. Crime Science (2018).

[32] Amani Moin, Emin Gün Sirer, and Kevin Sekniqi. 2019. A Classification Framework for Stablecoin Designs. In 24th Financial Cryptography and Data Security.

[33] Ingolf Gunnar Anton Pernice, Sebastian Henningsen, Roman Proskalovich, Martin Florian, Hermann Elendner, and Björn Scheuermann. 2019. Monetary Stabilization in Cryptocurrencies-Design Approaches and Open Questions. In 2nd IEEE Crypto Valley Conference on Blockchain Technology.

[34] Kaihua Qin, Liyi Zhou, Benjamin Livshits, and Arthur Gervais. 2020. Attacking the DeFi Ecosystem with Flash Loans for Fun and Profit. In arXiv preprint: 2003.03810.

[35] Hubert Ritzdorf, Karl Wüst, Arthur Gervais, Guillaume Felley, and Srdjan Capkun. 2017. TLS-N: Non-repudiation over TLS EnablingUbiquitous Content Signing for Disintermediation. IACR Cryptology ePrint Archive (2017).

[36] Jiahua Xu and Benjamin Livshits. 2019. The anatomy of a cryptocurrency pump-and-dump scheme. In 28th USENIX Security Symposium.

[37] Fan Zhang, Ethan Cecchetti, Kyle Croman, Ari Juels, and Elaine Shi. 2016. Town crier: An authenticated data feed for smart contracts. In 23rd ACM SIGSAC conference on computer and communications security

来源链接:mp.weixin.qq.com