Polaris 是一个以 Uniswap 为基础,旨在使价格更加准确、防止价格操纵以及自主维持价格的链上预言机。

原文标题:《DeFi 世界缺失的拼图,一个链上价格信息的预言机》
作者:Mykel Pereira
翻译:Eric

一个真正公平和可自我运营的 DeFi 世界需要一个准确、快速、无偏的且能抵抗价格操纵的价格预言机。Uniswap 所采用的自动定价机制曾让我们眼前一亮,利用产生价差时投机者的套利心理又可以让 Uniswap 上的价格始终保持和主流交易所价格的同步。但如果你拥有足够的筹码,想要在短时间内操纵 Uniswap 的价格来为自己谋利还是有很大几率可以成功的。那么,有没有一种同样无需中间主体干预的稳定价格信息的机制呢?

对于智能合约而言,来源于链上的资产价格是否可信非常重要。例如需要评估抵押品的贷款协议或需要重新平衡投资组合的资产管理协议,他们首先都需要获得准确的价格信息。可惜目前市场上的价格要么被单一方面控制,要么缺乏适当的激励机制来保持价格准确。

Polaris 是一个以 Uniswap 为基础,旨在使价格更加准确、防止价格操纵以及自主维持价格的链上预言机。

防止价格操纵,提供准确价格:神奇的 DeFi 新星 Polaris

一、Uniswap

Uniswap 是一个去中心化的交易所以及一个自动化的做市商,这片文章《在 Uniswap 上做市,如何谋取最大利润?》详解了 Uniswap 的做市商机制。它并不是将买卖双方通过订单簿匹配,而是从做市商那里收集流动性,并使用算法来设定价格。像 Uniswap 这样的自动做市商的价格是接近市场价格,因为只要存在价差,就会创造套利的机会,随后价格就会迅速被修正。

可惜,因为在一个区块内操纵 Uniswap 中某些 token 价格的攻击成本非常之低,我们还不能盲目认为 Uniswap 的现货价格就是真正的价格。

我们来考虑一种叫三明治攻击「sandwich attack」的情况:

  • 1、攻击者在 Uniswap 上出售 token 以操纵价格;
  • 2、此时价格已经偏离准确价格了,攻击者会依据一个贷款协议来清偿贷款,该份协议使用 Uniswap 上的价格来评估抵押品的价值;
  • 3、攻击者回购之前出售的所有 token。

也就是说攻击者通过出售 token 来使抵押品价值被低估,并在此时清偿之前以该 token 为抵押品的贷款,再通过回购抵消出售 token 时的损失。贷款协议一般也是通过以太坊上的智能合约完成的。整个攻击过程必须在短时间内完成,只要操作的速度够快,就不会过多受到别人通过价差套利的影响。

防止价格操纵,提供准确价格:神奇的 DeFi 新星 Polaris

由于攻击者只需要支付交易费用,而不需要维持被操纵的价格,因此这样的攻击非常有利可图。同样的事情也可以通过智能合约在单个交易中发生。当年,索罗斯也曾用类似的方法做空泰铢

二、Polaris

为了提高攻击的成本,Polaris 从 Uniswap 上选取一些价格「监测点」来算出价格的中位数。通过提高操纵价格所需要进行的交易次数,来提高操纵价格的时间和经济成本。这个解决方案为了抵抗操纵价格的行为,在价格的活跃性上做了一个小小的妥协。

Polaris 的设计使得维持准确价格的成本更低,而攻击的成本则更高。那么,Polaris 是如何来确定价格的呢 ?

Polaris 的定价主要依据两条规则:

  • 返回前 15 个「监测点」价格的中位数作为实际价格;
  • 如果在 3.5 分钟也就是 15 个区块内出现了多个被记录的「监测点」,则选取它们的中位数。

当 Uniswap 价格发生正常变化时,预言机将在最多 8 个「监测点」之后反映新价格,每 3.5 分钟会记录一个「监测点」。在攻击场景中,如果存在诚实的「监测点」来防御攻击,攻击者就必须在单个时间段内多次交易来使得异常价格被记录。攻击者在每次价格操纵中都会损失数千美元的交易费用,成功的机会不确定,而记录诚实「监测点」的价格却并不贵。

此外,Polaris 不允许智能合约本身账户被登记为「监测点」,以防止「sandwich attack」。

三、激励机制

Polaris 利用一系列激励措施鼓励第三方参与者定期监测价格并保持准确的价格反馈。为了奖励这些用户,Polaris 会每月向智能合约开发者收取订阅费,来让他们可以获得预言机给出的价格。因为我们将会把预言机用于担保贷款协议,目前 Marble 是第一个订阅 ETH-DAI 交易对价格的付费用户。

第三方被鼓励在以下条件下修正预言机产生的价格:

  • Uniswap 上当前的价格与前 15 个「监测点」价格的中位数相差 1% 以上;
  • Uniswap 上当前的价格与过去 3.5 分钟内所有「监测点」价格的中位数相差 1% 以上;
  • Uniswap 上的当前价格与上一个「监测点」的价格相差 1% 以上;
  • 上次「监测点」价格被记录已超过 3 小时。

预言机会发行 token 来奖励满足上述条件时对价格进行修正的用户,用户可以使用获得的 token 兑换该系统的收入。

四、效果分析

我们用自 2019 年 1 月 1 日起 Uniswap 上 DAI/ETH 价格对预言机的表现进行了回溯测试。我们发现,仅通过「监测点」被奖励的修正行为,预言机就可以密切跟踪 Uniswap 的价格。

防止价格操纵,提供准确价格:神奇的 DeFi 新星 Polaris上图为 Uniswap 现货价格、OasisDEX 交易所价格以及预言机给出的价格的对比

正如预期的那样,当价格快速下跌时,预言机的价格变动落后于 Uniswap 的现货价格:

防止价格操纵,提供准确价格:神奇的 DeFi 新星 Polaris上图为预言机在 ETH2 月 24 日大跌 12% 时的表现

然而,在仅仅 10 分钟后,它就很快被修正到市场价格。

根据平均每次修正约需要 20 万 gas、5Gwei 的 gas 价格以及历史上的 ETH/DAI 在 Uniswap 上的波动率,被奖励的修正价格的参与者共同维护预言机的预计年成本为 20 ETH。

一个真正公平和可自我运营的 DeFi 需要一个准确、快速、无偏的且能抵抗价格操纵的价格预言机。Polaris 这是实现这一目标的第一次尝试,正如 Polaris 的中文含义「北极星」:它希望成为一颗指引道路的明星。

来源链接:medium.com