BTC
ETH
HTX
SOL
BNB
查看行情
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

想“盜用” NEST預言機價格,可能嗎?

NEST爱好者
特邀专栏作者
本文約2248字,閱讀全文需要約4分鐘
關於NEST預言機價格調用收費的幾個問題。
AI總結
展開
關於NEST預言機價格調用收費的幾個問題。

作者:NestCore

作者:NestCore

近期有人提到NEST預言機價格可能被複製,導致無法收費。我們認為這種質疑並不成立,因為這些複製方法存在各種問題,而且NEST可以通過一些方式對這些複製行為進行治理。

這些複製方法主要有兩種,一種是技術複製,通過鏈下讀取數據,然後鏈上驗證,確保來自NEST預言機;另一種是共享使用,通過一張共享合約,任何人調用了NEST預言機後,將價格數據複製到合約中,供其他人免費使用。還有一類就是需要中心化機構觸發或者上傳價格(保證價格是真實有效的),因為存在中心化風險,不在我們討論中,我們只考慮去中心化的兩種方案:

方案一:鏈下讀取,鏈上驗證。

該方法利用了以太坊鏈上數據的驗證關係,原則上可以獲得已經生效的NEST價格,然後在以太坊上驗證該價格確係NEST預言機生成,從而供DeFi使用。這一方式存在以下致命問題:

1)該方式驗證數據的成本極高。以當前網絡為例,僅驗證一個數據需要接近0.01ETH,而NEST預言機調用僅需0.001ETH(暫定)。如果NEST合約稍微修改一下數據結構,比如將價格數據存儲在兩個單元內,則該方法的成本將上漲1倍,達到0.02ETH(更極端的修改將使得驗證成本超越區塊gaslimit上限而變得不可能),對於DeFi用戶而言,用這種方式“盜用”NEST價格毫無意義。

2)為了配合“盜用”的價格,下游DeFi將設計成新的結構。將本來一步完成的交互,拆分成兩步:鏈下先獲取鏈上數據,再上傳至ETH進行驗證,同時觸發合約交互,這使得DeFi不能獲得動態即時價格,因此必須制定規則,哪些價格可以用於本次DeFi的交互,哪些不能。這類規則制定會出現兩個問題:要么很容易因為意外比如打包延時等造成交易失敗,要么設定了一個價格區間比如最近5個區塊內價格都可以觸發合約,導致存在穩定的套利,這兩種情況都完全破壞了DeFi的連續性。

3)價格並不是一個孤立的點,而是一個時間序列。按照這種方式勉強獲得了一個可驗證的單點價格數據,但無法在一筆交易裡得到像均價、波動率等統計量,而這些是很多DeFi不可或缺的,因此這種“盜用”並不符合金融產品設計的需求。

方案二:共享合約複製。

不考慮中心化的共享:即某個特定機構調用NEST價格再复製到合約裡,然後降低收費或免費供大家使用,這種方式有很大的風險,一旦上傳者出現意外或者存在主觀惡意,對下游DEFI的打擊是致命的,這也是為什麼預言機一定要分佈式的原因,因為不再有單點風險和信任風險。

分佈式共享合約複製,主要是鏈上調用複制,和1中的鏈下盜用複制,分別加以說明:

1)鏈上調用複制:設計這樣一種合約,調用者將自己調用的價格複製到共享合約內,供其他人免費使用。如果每個參與者都如此操作,則調用價格的參與者可以用以下邏輯來降低NEST收費:首先檢查共享合約是否有滿足自己需求的價格(比如對應最新區塊的價格);如果有,則免費使用;如果沒有,則調用NEST價格並複製到共享合約(也可以直接通過共享合約調用)。

此方法使得每次調用的成本小於等於NEST收費,如果所有的DeFi都通過共享合約實現,則導致NEST的每一個價格只能收到一次費用。在這個方案的基礎上,還有一種更加動態的複制方案,通過一個mapping提供價格入口,然後用戶如果有必要,可以隨時動態生成一張價格複製共享合約調用NEST價格,這樣無論下面的合約出現什麼問題,都無法封禁maping合約,只要下面有一張合約存在(用戶可以在需要價格時候生成),價格就可以持續被複製出來。

NEST針對此方案的應對方法:首先增加驗證機制,下游DeFi要調用價格,則必須銷毀或者抵押若干NEST,並且在此操作完成後X日內激活預言機;其次設立黑名單機制,只要任何有復制、盜版使用NEST價格的合約或者共享合約,可以通過NEST系統投票將其禁止。

由於這些合約下游都是DeFi應用,一旦共享合約或者下游DeFi合約被投票禁用,對合約內資產和合約服務將造成巨大影響,使得整個DeFi需要重新引入新的預言機(而NEST生效有時間,因此不可能快速接入新的NEST價格),這對於無託管的DeFi幾乎是致命的(不考慮任何中心化價格來源)。而通過maping複製NEST價格的用戶要保持價格的連續性,則必須持續不斷的生成複制合約,這將導致複製成本遠遠高於直接調用成本(需要銷毀NEST和時間成本),用戶不可能自發完成這一操作。

2)鏈下盜用複制:通過1)中提到的方式,然後將價格複製到一個共享合約,原則上不可能被黑名單禁止。但這種方式自身存在巨大問題:

A. 如果共享合約有用戶需要的價格,則用戶免費,如果沒有則用戶需要從鏈下走一遍盜用流程並複製到合約,此成本在1)中已有描述,是簡單調用NEST價格的10倍甚至更高,這意味著用戶在調用價格時候,10次操作中至少有9次是由其他人上傳,否則還不如調用NEST。這一條件是無法保證的,特別是在初期更是不可能。

B. 如果NEST合約升級,按照1)中的方式改變存儲結構,使得鏈下盜用變得不可行,則整個共享合約將完全失效,並且NEST對使用共享合約的DeFi進行投票限制,則這些DeFi將失去價格來源,陷入和1)中同樣的死局。

Web3.0
DeFi
智能合约
安全
歡迎加入Odaily官方社群