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