1. 程式人生 > 實用技巧 >公允排序服務:建立可驗證的公允DeFi生態

公允排序服務:建立可驗證的公允DeFi生態

在這裡插入圖片描述
Chainlnk Labs的Ari Juels、Lorenz Breidenbach和Florian Tramèr三人展開研究並撰寫本文。

以太坊的發展最初是由通證推動的,之後是去中心化交易所,而現在則是DeFi。隨著以太坊上的交易量越來越大,網路中的gas費也不斷突破新高。這意味著以太坊獲得了巨大的成功,但與此同時也意味著交易成本升高,且挖礦延時增長。記憶體池中交易萎縮,也產生了另一個副作用,那就是出現搶跑交易現象。

使用者交易會通過記憶體池,即使在gas價格較低時,精明的交易者或演算法也可以在挖礦前先檢視交易內容。因此,有經驗的玩家可以有策略地建立交易,並通過這種高階玩法獲利。他們可以支付比當前交易更高的gas價格,以確保自己的交易排在最前面。

這個問題不只存在於想象中。Danian等人近期開展的一項研究(注:其中包括本文的作者)發現DeFi合約每年通過搶跑交易產生的收益高達幾百萬美元。
在這裡插入圖片描述

現如今,搶跑交易的收益肯定要高於研究中顯示的資料。目前大部分交易仍來自中心化交易所,而中心化交易所的運營商或其他參與方可能會搶跑,因此研究中的發現很可能只是冰山一角。[1]華爾街多年以來一直通過搶跑交易賺取鉅額回報,公司會定期將客戶訂單賣給高頻交易者。下面的例子詳細闡述了這個問題及其對智慧合約可能產生的影響。

DeFi等領域的排序問題

DeFi合約運營商希望為客戶提供公平透明的服務,因此通常會採取一些措施約束搶跑行為,比如設定gas上限,但是這些機制仍然存在漏洞。除此之外,並沒有任何機制防止礦工發起惡意攻擊,比如操縱排序機制。預言機報告和其他交易型別的搶跑也會導致同樣的威脅。

Daian等人發明了“礦工可提取價值”(MEV)一詞,用來形容礦工通過操縱交易順序從智慧合約系統中獲利的機會。MEV這個詞本身有一些誤導成分,因為不止礦工,普通使用者也可以提取一部分(或大部分)MEV。礦工在區塊中為交易排序的權力不受約束,因此MEV僅代表了各類攻擊者可以提取的最大價值。MEV之所以會存在,是因為大多數區塊鏈有一個潛規則,那就是它們在一段時間內是中心化的,也就是說某一名礦工可以完全決定每個區塊中的交易順序。

最近有人提出要建立MEV提取系統,也有人稱之為MEV拍賣。對於MEV拍賣這個概念,支援和反對的觀點都有一些道理,而我們認為MEV拍賣將不利於社群的發展。點選此處可以檢視詳細內容。

目前推出了rollup等交易處理方案,這個方案可以很好地實現可擴充套件性和交易隱私,但可惜還是無法解決MEV問題。Rollup方案將交易排序權交到了打包交易的人手中。基本上就是將MEV變成了REV,即“打包者可提取價值”。

Chainlink推出公允排序服務(FSS)

Chainlink Labs在制定Chainlink下一步發展計劃時,提出在去中心化(或甚至中心化)系統中建立公允交易排序機制。這個方案可以解決rollup機制以及整個DeFi領域存在的交易排序問題,同時解決gas成本過高和交易排序不公平的問題。這個方案的名稱叫做公允排序服務(FSS)。

FSS可以服務於所有智慧合約,無需改變合約所在的layer1區塊鏈。

FSS的底層邏輯簡而言之就是:使用預言機網路為傳送至某一智慧合約SC的交易排序,包括使用者交易和預言機報告。預言機節點網路獲得交易並針對交易排序達成共識,任何一個節點都無法單獨做出決定。然後,節點網路將交易傳送至智慧合約SC中。節點會在交易中新增nonce值或序列號,或批量傳送,以對交易進行排序。
FSS與MEV拍賣一樣,將提取MEV能力與挖礦能力分離,但與MEV拍賣不同的是,FSS本質上不會導致任何搶跑行為。總的來說,FSS消除了挖礦過程中的中心化因素,並實現了去中心化的交易排序機制。
既然gas費用決定了交易排序,那麼預言機節點應該建立什麼樣的排序標準呢?最符合邏輯的標準是“先到先得”,即根據交易達到的時間來排序。那麼具體應該怎麼做呢?

排序公平性

交易排序問題至關重要,實際上這是一個非常棘手的問題。
幾十年來大家在研究拜占庭容錯機制(注:許可制系統的共識機制)時一直忽略了“排序公平性”問題。大多數BFT系統的目標都是活躍度和一致性,即交易需要及時處理,且所有節點需要對交易排序達成共識。但是這個原則並沒有具體說明當交易時間接近時應該如何排序。即使所有節點都先收到T1再收到T2,根據BFT機制規定,T2是可以排在T1前面的。

Kelkar等人(其中包括本文的作者之一)近期的研究首次在共識中加入了“排序公平性”維度。具體細節非常複雜,但大致邏輯是:如果大部分節點先收到T1再收到T2,則T1不能排在T2後面。這其中包括名為“Aequitas”[2]的一整套協議,共同實現了這個功能。儘管目前這些協議的執行成本很高,但我們相信未來將產生更高的實用價值。

FSS為執行交易排序政策提供了框架,其中一個案例就是Aequitas。它還可以支援更簡單的方案,比如直接將交易加密,節點可以在排序後使用門限簽名的方式進行解密。除此之外,它還支援其他方案將預言機報告插入交易中。(注:如果有需要,它甚至可以支援MEV拍賣。)

簡而言之,FSS的目的是幫助DeFi開發者建立標準,為使用者保障公平性。

交易如何傳送到FSS?

使用者可以將交易直接傳送到預言機網路。使用者需要同時向多個節點發送交易,讓所有節點都參與交易排序,以保證公平性。[3]

我們目前正在探索創新,讓預言機能夠監控目標區塊鏈上的記憶體池,並代表SCON合約從區塊鏈獲取交易。預言機節點通常將web服務作為資料來源,但是它們也可以將記憶體池作為資料來源,並響應使用者交易,生成報告。詳情請參照下方圖示。

這個方案具有兩大優勢:

  • 相容性高:使用者可以直接將交易傳輸至區塊鏈,無需為其與預言機網路互動提供任何專門的軟體。

    gas成本低:如果將交易傳輸至記憶體池就可以保障送達,那麼使用者無須擔心區塊確認速度,即:可以降低交易傳輸成本。交易打包成區塊後,將建立可審查的記錄,證明交易沒有被操縱。[4]預言機網路可以出較高的gas價格,將經過排序的使用者交易重新發送到智慧合約中,以保障交易及時得到處理。不過,預言機網路可以通過批量傳送、打包等各種技術降低單位交易的gas成本。
    在這裡插入圖片描述

可以監控記憶體池的公允排序服務。使用者向SCON合約傳送兩個交易,先發送T1再發送T2,預言機網路發現兩筆交易,按照交易到達記憶體池的時間進行排序,併發送給SCON。

P2P網路非常複雜,網速快且對等節點多的攻擊者可能會成為搶跑者。如果預言機節點的對等節點遍佈整個網路,並積極監測洪水攻擊(flooding)等各種攻擊,這樣能大幅提高搶跑的難度。

另外,預言機節點還應嘗試其他類似方案,在智慧合約中直接應對搶跑問題(如:commit-reveal機制或可驗證延遲函式)。這個方案的關鍵優勢是預言機節點可以在鏈下執行防禦,更快避免搶跑問題(因為網路造成延時而非區塊確認造成延時)。

公允排序服務是一種更創新更簡單的方案,可以在網路層面解決搶跑問題。舉個例子,使用者可以對傳送到預言機節點的交易進行門限加密,只有在節點對交易排序達成共識後才會顯示交易內容。[5]在交易排序前先進行加密能夠簡單有效地解決去中心化交易所和其他DeFi系統中的搶跑問題,但這隻能隱藏交易內容,而無法隱藏交易元資料,因此基於交易元資料進行搶跑交易仍無法被杜絕。(比如:只知道某個使用者釋出了一個交易,也可以導致其他使用者插隊搶跑,或與負責排序的人合謀搶跑)在以太坊上可以利用潛艇交易等機制防止更高階的搶跑現象,現在還不知道在網路層面能否部署類似的防禦機制,這個問題很值得探究。

總結

雖然有些系統在單獨執行時可以實現公平性(比如批量拍賣),但卻無法與其他系統相容。[6]廣義的公平性在目前和未來都會是一個棘手的問題。FSS的目的是為DeFi開發者提供所需工具,自定義交易排序原則,保障系統的公平性和使用者體驗,我們會在之後釋出的白皮書中詳細闡述FSS的技術細節。總而言之,我們希望建立公允的交易排序機制,實現DeFi的初衷,那就是建立比華爾街更公正透明的金融體系。

感謝Andrew Miller、Dan Moroz、Fan Zhang和Sergey Nazarov為本文初稿提供意見。

[1]按字面意思理解。冰山只有10%的部分浮在水面。去中心化交易所的交易量佔所有型別交易所交易量總和的0.1%。
[2]拉丁語,意思是“公平性”。
[3]如果使用者擔心審查問題,可以同時建立一個慢速通道連線智慧合約,並通過預言機發送。
[4]使用者可以出更高的gas費重新發送交易,覆蓋原有交易。記憶體池如何處理覆蓋交易取決於具體政策。比如,預言機網路可以只承認第一次傳送的交易是合法的,並禁止使用者覆蓋交易,以充分保障可稽核性。
[5]Khalil等人針對中心化交易所提出了一個不錯的方案。
[6]如果批量拍賣系統出售的資產也在連續時間市場出售,那麼後者中的參與者可以進行拍賣阻擊,即在最後一秒基於最新市場價格決定是否參與批量拍賣。
在這裡插入圖片描述