什麼樣的公式能讓預言機報價更加精準,爲做市商和用戶最小化風險?

原文標題:《分佈式課堂:關於可計算金融應用於 DeFi 預言機的分享》
撰文:James,NEST 社區 CoFi 研究員

預言機一般被認爲是去中心化協議和區塊鏈外部數據之間的橋樑,而預言機在 DeFi 領域主要承擔的是報價功能。那麼,目前的 DeFi 預言機真的能實現精準報價嘛?

此次,分佈式課堂第二期請來了 NEST 社區 CoFi 研究員 James,爲大家講述可計算金融技術:究竟什麼樣的公式能讓預言機報價更加精準,爲做市商和用戶最小化風險?

James, 堅定的區塊鏈信仰者,專注去中心化原生資產及計算金融的研究,以區塊鏈世界觀看待外部世界,堅信未來人類社會財富將逐漸轉移到去中心化資產上來。


CoFi 是什麼?深入探討「可計算金融」在 DeFi 預言機領域應用

去中心化資產跟我們現實世界的資產有什麼區別呢?區別是形成的去中心化資產是現實世界的大類資產複製不了的。你不可能用已有的大類資產複製出去中心化資產的風險收益結構。

那麼從金融學的角度來講,金融學要乾的是什麼?總的來說,就是應對人類的各種不確定性。每一個不確定性對應的一種風險收益結構。每當你發現了一種新的風險收益結構,並且把所對應的資產或者是產品做出來,一定會消除全人類在資產配置上面的風險。

最簡單易懂的就是在波動率風險。比如馬科維茨資產組合理論,如果把兩種相互不關聯的資產放在一起,在不改變收益結構情況下,就可以降低他們的波動率,達到改善投資風險的目的。去中心化資產的目標就是消除全人類的不確定性。

可信性和可用性

這裏面有兩個變量,一個叫可信性,一個叫可用性。可用性是消除普通人的不確定性。可信性是消除人類的不確定性。BTC 沒有在可用性上花錢,而是每年花兩百億的電費在解決可信性問題。那麼,可用性誰來解決呢?可能是比特幣持有者來解決的,他們向普通人宣傳比特幣是怎麼回事,讓這些不懂比特幣的人懂比特幣。中本聰創造出比特幣的目的就是提出全新的風險收益結構,來消除整個人類的不確定性。

在整個去中心化的市場裏,只要引入了一箇中心化機構,你的風險收益結構某種程度上是跟股權差不多了。這相當於複製一個「比特幣+股權」,並沒有創造出全新的東西來。這就是我爲什麼要將項目做到如此去中心化的原因。這裏我們也要提到最近特別火的 DeFi。

DeFi 目前的問題:第一,項目的風險是不可量化和不可計算的;第二,DeFi 很難在鏈上沉澱出去中心化資產。如果不能在鏈上沉澱出去中心化資產,這個 DeFi 項目最終可能就是一張計算合約。計算合約指的是,你不管怎麼計算,信息量也不會增加。計算的意義只是讓雜亂的信息編碼成爲通俗易懂的東西。這過程中,它並沒有消除人類的不確定性,當然它可能消除了某些特定人羣的不確定性。

如果說 DeFi 項目無法沉澱出去中心化資產,指的是大家競爭到極致的時候,都收不到費。比特幣實現了一種 transfer 函數的可信,實現了轉賬的功能。以太坊把這個 transfer 函數進行拓展,變成了邏輯函數。目前這個邏輯函數一個特點是,所有的計算是在多項式時間和資源之內完成。因爲它要消耗資源,所以必須要在給定時間內終止。

CoFi 是什麼?深入探討「可計算金融」在 DeFi 預言機領域應用

資產定價

類似於我們現實世界裏面的很多問題,資產定價也是很難的問題。比如說:紅綠燈怎麼設計?最優交通網絡問題?最優社交網絡的問題?最優商業網絡問題?這些涉及到網絡的問題都是複雜問題。

資產定價就是一個最優價格的計算問題。這個問題不是 P 計算能解決的。以太坊不能夠用智能合約就給資產定價。因此沒有預言機,以太坊只能做這三件事:交易(Uniswap)、穩定幣(USDT)以及 ETH-wETH 互相轉換。這是 p 函數的侷限決定的。

考慮到資產定價這麼複雜的計算很難在鏈上完成,那麼就要形成一種新的機制,讓它逼近這個結果。於是我們就構建了這樣一種方案:假設沒有外部市場的情況下,如何逼近這個價格;或者有外部市場的情況下,如何把這個鏈下價格傳遞上去。

如果鏈上有個 NP 問題的計算結果,對於整個生態系統而言,它增加了信息量,提供了全新的信息。重要之處在於它不斷地拓展區塊鏈的邊界,只有邊界得到拓展,才能真正成爲實質性的進步。如果整個網絡只是往橫向進步,例如編程速度更快點,區塊再大點,這都稱不上是實質性進步。其實我們對區塊鏈很多認知是需要調整的。

如果從消除人類的不確定來說,沒有必要人人都要驗證賬本。我們只要開放,讓人人都可以具備驗證賬本的權力就行了。類比到 Layer1 和 Layer2,Layer 2 是消除普通人的不確定性,而 Layer1 是創造出新的價值,開發者可以討論如何提升區塊大小、改善打包時間等。

CoFi 是什麼?深入探討「可計算金融」在 DeFi 預言機領域應用

那麼,在這個背景之下,NEST 要做什麼?第一個是 NEST 要形成更多更新的去中心化風險收益結構。第二個是它要拓展區塊鏈功能,使得原來區塊鏈上不能完成的事情現在可以完成了,當然這一切必須保持去中心化。

在引用 NEST 的預言機時,就產生了一系列的副產品。第一個非常重要的副產品就是在引用價格時,讓風險變得可計算。在信用風險被剝離後,整個計算結果是相對較爲準確的。這裏的信用風險主要指的是,在排除項目風險以後的主體風險。主體風險一般是很難通過計算得出。比如說,這個項目最終能夠產生多少現金流,失敗的概率是多少這些都可以計算分析,但問題是主體捲款潛逃了怎麼辦?其實這體現了系統的不完備性。

區塊鏈將信用風險剝離掉以後(通過去中心化的方式),只剩下流動性風險和波動性風險。由於流動性是區塊鏈所具備的天然有優勢,所以這裏暫且不去說它。波動率風險是可以計算的,它有很強的理論依據。實際上在 70 年代,薩繆爾森、布萊克、默頓、法瑪等人就將相關的金融思想提出來:歷史上的模型對這個風險研究得那麼透徹,而這些風險都可以定價。難道不能自動化地管理這些風險嘛?

然後這些思想都被對沖基金學去了,並形成了很多全新的投資模型和風險管理模型。最典型的就是當時的長期資本管理公司。雖然他們建立了很精妙的模型,但最終輸在了主體風險不可計算上面:俄羅斯違約了。

現在我們都談論 Alpha Go 戰勝圍棋等等人工智能的話題。其實這個夢想在圖靈時代就有了。儘管人工智能的發展斷斷續續,然而夢想卻依然存在。儘管可計算的模型會受制於主體風險,但在去中心化的區塊鏈領域卻不用擔心這種風險(至少邏輯上如此)。在沒有信用主體風險且不考慮市場無效的情況下,讓風險管理算法化真正變得可能,顯然比長期資比本管理公司所面臨的那個時代要好很多。

風險管理可計算是不是能在鏈上去完成?

其實,DeFi 簡單的說就是交易、利率、正證券 / 負證券,就這三個結構非常粗糙地對金融做的一個劃分。

一個學科最重要的東西有兩個:一是基本概念。每一個基本概念的討論可能就要花上百年。且每一個概念的形成都要經過千錘百煉。第二個是這個概念必須推動形成這個領域的理論制高點。如果這個理論等於常識,這個學科就沒有意義了。

中本聰在設計區塊鏈架構的時候,計算 / 存儲 / 通信這些功能及相關技術都有。當時,數字貨幣要解決雙花問題,即「錢用了一次,不能用第二次」。其實,零知識證明 / 同態加密這些方案都討論過,卻解決不了雙花問題。去中心化不光是分佈式,不是說我把活分配給你們,而是讓你們自覺地上傳些東西並自動組合起來。

現在來看,比特幣這個結構有點低效:無論在計算、信息存儲還是通信方面都做得非常冗餘。冗餘指的是多臺計算機重複執行相同的計算,並重復存儲相同的數據。冗餘的架構會導致很難完成撮合交易(即資產定價非常困難),因爲它很難靠函數或者投票來解決。

CoFi 是什麼?深入探討「可計算金融」在 DeFi 預言機領域應用

從市場的角度來看,撮合交易是現代經濟裏信息交互的極致。交易並不適合在鏈上去進行撮合。換而言之,一旦撮合交易在鏈上可行了,那鏈下交易所的優勢會更大。這是一個相對優勢的問題。

撮合交易的微觀市場結構究竟有哪幾類交易者?第一級叫做內幕交易者,二是信息交易者,三是做市商,四是價值交易者,五是噪音交易者。這裏着重講一下信息交易者。信息交易者指的是,擁有者所獲取的信息佔有優勢,他每時每刻都要基於自己掌握的信息對這個資產的價格進行折現。比如說,他每收到新信息,就會告訴你這個價格變化是多少。這些信息擁有者對於交易的渴望和對計算存儲通信的要求都是最極致的,而且也是交易所成交量和流動性的主要提供者。

比如說,美國交易所的高頻交易者,都精確到納秒級別,而且在交易所閉市封盤的情況下,也要在外面繼續交易。因爲他們覺得信息不斷在變化,而自己具備信息優勢,必須每時每刻對資產進行定價。對於這類人,具有計算、存儲、通信優勢的交易所更加適合他們。比如說,有哪種資產在 uniswap 上具備價值了,也會被移到中心化交易所,因爲信息交易者要以此獲利,他們在這裏具備更大的優勢,也更願意提供更多的交易和流動性。

假設鏈下有個價格序列,如何在鏈上形成?

既然定價放在區塊鏈上並沒有什麼優勢,我們覺得價格計算應該在鏈下形成。區塊鏈這個系統不是爲了讓你更有效率,而是爲了讓你更可信。假設鏈下有個價格序列,如何在鏈上生成這個價格序列並保真?

  • 第一是數據的驗證和生成都要去中心化。
  • 第二是要確保這兩個價格不出現偏差。
  • 第三是生成機制不能被別人影響。
  • 第四是所有價格序列的生成都會有一個延時,除非你每個區塊都有價格,這裏延時是指最新的一個生效價格和調用價格並完成交易的區塊間隔。

在你調用鏈下數據去鏈上時,首先會有的就是價格偏差。而這個偏差就是被鏈下可複製交易套利的可能性。同時延時會間接影響着價格偏差,因爲不同時間對應的價格必然不同。目前 DeFi 的預言機都未就這兩點作風險管理。其實你在 uniswap 上操作的時候,做市商就承擔着價格波動的風險以及被其他人套利的風險。問題是這個風險有多大以及做市商收取的費用能不能覆蓋這個風險?目前,這類預言機的模型還停留在較爲粗糙的階段。

外部均衡價格的形成是一個 NP 問題(非多項式時間問題)。而 Uniswap 做的是一個 P 計算(這類指的是多項式時間問題:給我一個 X,我輸出一個 Y 給你)。所以在這種情況下,在市場價格波動的時候,就一定會被別人套利。如果你保證收益能覆蓋損失,就可以形成一個均衡;然後你還需要保證均衡是穩定的,不能因爲被擾動就開始偏離,就無法覆蓋損失,否則做市商就撤出了。

當鏈下信息上傳至鏈上時,肯定會有價格偏差,那麼如何優化這個價格偏差?因爲最小化價格偏差是非常困難的事情,於是我們想到價格偏差肯定小於等於套利成本。因此 NEST 預言機的機制包括了雙向期權 / 價格鏈 /Beta 係數。Beta 係數就是爲了對抗自成交攻擊,價格鏈是指能夠讓信息流永遠存在,雙向期權是一種報價機制,這其中有一個驗證週期,主要是用來對抗堵塞攻擊,否則理論上可以儘可能短,並收斂到均衡價格。

有兩個成本是預言機一定會包含的,一個是 gas 費用,二是對沖成本。Chainlink 是先使用再驗證,Nest 是先驗證再使用。先使用再驗證有有幾個問題?第一個問題是,它到時候一定會出現一個不對等節點。它一定會碰到中心化問題,你抵押資產在這裏,一定會有一箇中心化對象來做處罰執行者。第二個是下游的風險抵押資產規模不匹配。100 萬美金不可能支撐出一個 1 萬億美金的項目。即便是沒有作惡的動機,下游使用者也會擔心作惡風險。

我們社會是要求完備的,比如說法律是支持先使用再驗證(處罰)機制。但是區塊鏈無法按照我們傳統的方式來出處理。我們得先驗證再使用,把錯誤風險把控制在你使用之前。在 NEST 裏,驗證機制成本是什麼?就是驗證者被套利之後,他要提供一個兩倍的報價,即驗證成本就是 Beta 係數 * 雙向期權(這裏 beta =2)套利的成本就等於 gas 費用 + 對沖成本 + Beta 係數*雙向期權

那麼,套利的成本是多少?在我們對 NEST 的價格偏差做的統計以後,發現套利成本大概在千分之 4 左右。這個統計套利並不是絕對套利,而是市場價格波動下對於價格固定的計算的概率。按照現在以太網的波動率,被套利的概率大概是 7% 左右。也就是 100 筆報價,大概有 7 筆被套利,實際檢測下來大概 2-3 筆的樣子。

堵塞攻擊是第一個變量。(所謂堵塞攻擊,是用交易佔據區塊,使其他人的交易無法打包。)預言機在防止堵塞攻擊時需要驗證 25 個區塊。整個以太坊礦工社區慢慢都自覺的開始,凡是發起粉塵攻擊和堵塞攻擊,礦工知道你是惡意的會選擇不給你打包。礦工選擇打不打包是對系統不完美的修正,因爲這是屬於協議未定義的。

其次,驗證週期波動率決定了雙向期權的成本。任何驗證機制繞不開的驗證週期和波動率。在這個波動率上升的時候,NEST 的價格偏差就會變得很大。比如,3 月 2 日那天達到了千分之三的波動率。千分之三的波動率相當於 A 股的四五十倍。在這個波動率下,正常投資人不知道如何預測掌控它,往往束手無策,這個時候金融產品的設計應該以鏈上信息流爲基礎,而不是盯着鏈下。

其實,雙向期權+價格鏈+Beta 係數這套機制可以用到傳統金融,它是把最聰明的信息交易者和套利者放在一起進定價。如果你把最聰明的人集中在一起,就不需要那麼多人蔘與定價。

第二個變量就是延時。延時在 NEST 系統裏是靠激勵機制來降低,如果 NEST 價格不變,每過一個區塊報價變成過兩個區塊報價的話,那就意味着你的收益翻了一倍。不管如何堵塞,只要 NEST 價格不怎麼跌的話,總會有人報,因爲收益率太高了。

在做市商引用 NEST 的價格進行交易,會有一層風險保護。這個風險保護能夠保證做市商在交易過程中,最終預期收益不虧損。因爲這個價格會浮動,不管如何浮動,做市商都可能被別人套利。如果預言機把這個價格補償放進來,然後在雙方進行長期交易的時候自己不虧損,那麼雙方就是合適的。如果做市商不用這個風險函數進行保護,交易價格偏差很大,會一直虧錢直到退出。

以上就是我們對可計算金融和 DeFi 預言機的探討。