hao86下載站:值得大家信賴(lài)的游戲下載站!

首頁(yè) > 區(qū)塊鏈 > 探索 DeFi 協(xié)議預(yù)言機(jī)實(shí)施的設(shè)計(jì)空間和挑戰(zhàn)

探索 DeFi 協(xié)議預(yù)言機(jī)實(shí)施的設(shè)計(jì)空間和挑戰(zhàn)

時(shí)間:2024-02-02 19:00:08
來(lái)源:hao86下載
區(qū)塊鏈

【#區(qū)塊鏈# #探索 DeFi 協(xié)議預(yù)言機(jī)實(shí)施的設(shè)計(jì)空間和挑戰(zhàn)#】

預(yù)言機(jī)保障三成 DeFi 價(jià)值,時(shí)間延遲導(dǎo)致?lián)屜冉灰椎葍r(jià)值流失問(wèn)題。文章探討現(xiàn)有預(yù)言機(jī)設(shè)計(jì)取舍與兩種新構(gòu)思,以提高效率同時(shí)減少流失。


撰文:Adrian Chow

Jonathan Yuen 和 Wintersoldier 貢獻(xiàn)


摘要:


  • 預(yù)言機(jī)(Oracle)于保障 DeFi 協(xié)議的鎖定價(jià)值不可或缺,DeFi 的 500 億美元總鎖倉(cāng)量當(dāng)中,有 330 億由預(yù)言機(jī)保障。
  • 然而,預(yù)言機(jī)喂價(jià)更新時(shí)本質(zhì)上的時(shí)間延遲,導(dǎo)致最大可提取價(jià)值(MEV, Maximal Extractable Value)一個(gè)子類(lèi)型的價(jià)值提取,這被稱(chēng)為預(yù)言機(jī)可提取價(jià)值(OEV, Oracle Extractable Value); OEV 包括了預(yù)言機(jī)搶先交易 (frontrunning)、套利 (arbitrage) 和低效平倉(cāng) (inefficient liquidations)。
  • 目前有越來(lái)越多的設(shè)計(jì)實(shí)施方案可防止或減輕 OEV 的負(fù)面流失,每種設(shè)計(jì)都有其獨(dú)特的取舍權(quán)衡。本文討論現(xiàn)有設(shè)計(jì)的選擇及其權(quán)衡,以及提出了兩個(gè)新構(gòu)思、其價(jià)值主張、未決問(wèn)題以及發(fā)展瓶頸。


引言


預(yù)言機(jī)(Oracle)可說(shuō)是當(dāng)今 DeFi 最重要的基礎(chǔ)設(shè)施之一。它們是大多數(shù) DeFi 協(xié)議不可或缺的部分,這些協(xié)議依靠喂價(jià)來(lái)結(jié)算衍生品合約、平倉(cāng)抵押不足的持倉(cāng)等。目前,預(yù)言機(jī)保障了 330 億美元的價(jià)值,占鏈上總鎖倉(cāng)量 500 億美元的至少三分之二 1。然而,對(duì)于應(yīng)用程序開(kāi)發(fā)人員來(lái)說(shuō),加入預(yù)言機(jī)會(huì)帶來(lái)明顯的設(shè)計(jì)權(quán)衡和問(wèn)題,這源于搶先交易 (frontrunning)、套利 (arbitrage) 和低效平倉(cāng) (inefficient liquidations) 等的價(jià)值流失。本文將這種價(jià)值流失分類(lèi)為預(yù)言機(jī)可提取價(jià)值 (Oracle Extractable Value, OEV),從應(yīng)用程序的角度概述了其關(guān)鍵問(wèn)題, 并試圖在行業(yè)研究的基礎(chǔ)上,說(shuō)明在 DeFi 協(xié)議中安全可靠地加入預(yù)言機(jī)的關(guān)鍵考量。


預(yù)言機(jī)可提取價(jià)值 (OEV)


本節(jié)假定讀者對(duì)預(yù)言機(jī)功能,以及對(duì)推送式 (push-based) 和拉取式 (pull-based) 預(yù)言機(jī)的區(qū)別有基本了解。個(gè)別預(yù)言機(jī)的喂價(jià)可能不同。有關(guān)概述、分類(lèi)和定義,請(qǐng)參閱附錄。


大多數(shù)使用預(yù)言機(jī)喂價(jià)的應(yīng)用程序只需要讀取價(jià)格:運(yùn)行自己定價(jià)模式的去中心化交易所使用預(yù)言機(jī)喂價(jià)作為參考價(jià)格;為超額抵押貸款倉(cāng)位存入抵押品,只需要預(yù)言機(jī)讀取價(jià)格,以確定如借款價(jià)值比平倉(cāng)價(jià)格等初始參數(shù);撇除長(zhǎng)尾資產(chǎn)等定價(jià)更新過(guò)于不頻繁的極端情況,基本上在考慮設(shè)計(jì)系統(tǒng)時(shí),預(yù)言機(jī)更新喂價(jià)的延遲并不重要。因此,預(yù)言機(jī)最重要的考量是 - 評(píng)估價(jià)格貢獻(xiàn)者的準(zhǔn)確性,以及預(yù)言機(jī)提供者的去中心化性能。


但如果喂價(jià)更新的延遲 是重要考慮因素,則應(yīng)更為注意預(yù)言機(jī)如何與應(yīng)用程序交互。通常在這種情況下,此類(lèi)延遲會(huì)導(dǎo)致價(jià)值提取機(jī)會(huì),即搶先交易、套利和平倉(cāng)。這種 MEV 的子類(lèi)型被稱(chēng)為 OEV2。在討論各種實(shí)施方案及其權(quán)衡之前,我們將概述 OEV 的各種形式。


套利


預(yù)言機(jī)搶先交易和套利在衍生品協(xié)議中被俗稱(chēng)為「毒流」(toxic flow ),因?yàn)檫@些交易是在信息不對(duì)稱(chēng)的情況下進(jìn)行的,往往以犧性流動(dòng)性提供者的成本獲取無(wú)風(fēng)險(xiǎn)利潤(rùn)。 Synthetix 等 OG DeFi 協(xié)議自 2018 年來(lái)一直在應(yīng)對(duì)這一問(wèn)題,并隨著時(shí)間的推移嘗試了各種解決方案,以減輕這些負(fù)面外部性。


讓我們以簡(jiǎn)單的例子說(shuō)明;永續(xù)合約去中心化交易所 xyz 在 ETH/USD 市場(chǎng)上使用 Chainlink 預(yù)言機(jī),例子以 ETH/USD 喂價(jià)說(shuō)明 :


圖 1:使用 Chainlink 預(yù)言機(jī)套利示例


雖然上面為過(guò)于簡(jiǎn)化的示例,沒(méi)有考慮滑點(diǎn)、費(fèi)用或資金等因素,但它說(shuō)明了偏差閾值的角色導(dǎo)致價(jià)格粒度不足,從中所帶來(lái)的機(jī)會(huì)。搜索者可以根據(jù) Chainlink 的鏈上存儲(chǔ),監(jiān)控現(xiàn)貨市場(chǎng)價(jià)格更新的延遲,并從流動(dòng)性提供者 (Liquidity Provider, LP) 提取零風(fēng)險(xiǎn)價(jià)值。


搶先交易


搶先交易與套利類(lèi)似,是另一種價(jià)值提取形式,搜索者監(jiān)控內(nèi)存池的預(yù)言機(jī)更新,并在其提交鏈上之前,搶先運(yùn)行實(shí)際市場(chǎng)價(jià)格。這樣,搜索者就有時(shí)間在預(yù)言機(jī)更新前出價(jià)交易,以有利于自己交易方向的價(jià)格成交。


GMX 等這種永續(xù)合約去中心化交易所一直都是毒性搶先交易的受害者;于 GMX 所有預(yù)言機(jī)通過(guò) KeeperDAO 協(xié)調(diào)協(xié)議更新前,約 10% 的協(xié)議利潤(rùn)已于搶先交易流失 4。


如果我們只采用拉取式模型?


Pyth 的價(jià)值主張之一是,使用 Solana 架構(gòu)的 Pythnet ,發(fā)布者可每 300 毫秒 5 向網(wǎng)絡(luò)推送一次價(jià)格更新,從而維持低延遲喂價(jià)。因此,當(dāng)應(yīng)用程序通過(guò) Pyth 的應(yīng)用程序接口 (API) 查詢(xún)價(jià)格時(shí),可以檢索最新價(jià)格、將其更新到目標(biāo)鏈的鏈上存儲(chǔ)、并在一次交易中執(zhí)行應(yīng)用程序邏輯中的任何下游操作。


如以上所述,應(yīng)用程序能夠直接查詢(xún) Pythnet 的最新價(jià)格更新、更新鏈上存儲(chǔ)、并在一次交易中完成所有相關(guān)邏輯,這不就有效地解決了搶先交易和套利問(wèn)題?


也不盡如此 - Pyth 的更新,賦予了用戶(hù)選擇在交易中使用哪些價(jià)格的能力,這可能會(huì)導(dǎo)致逆向選擇(adversarial selection)(毒流的另一種修辭)。雖然鏈上存儲(chǔ)價(jià)格必須隨時(shí)間推移,但用戶(hù)仍可選擇任何滿(mǎn)足這些限制條件的價(jià)格 - 意味著套利仍然存在,因?yàn)樗试S搜索者在使用過(guò)去的價(jià)格之前看到未來(lái)的價(jià)格。 Pyth 的文檔 6 建議,防范這種攻擊媒介的一個(gè)簡(jiǎn)單方法是加入期效檢查(staleness check),以確保價(jià)格夠近期 - 但是,更新交易數(shù)據(jù)于下一個(gè)區(qū)塊中必須有一定的緩沖時(shí)間,我們?cè)撊绾未_定最佳時(shí)間閾值?


讓我們以永續(xù)合約去中心化交易所 xyz 為例進(jìn)行分析,而今次他們使用的是 Pyth ETH/USD 喂價(jià),期效檢查時(shí)間為 20 秒,這意味著 Pyth 價(jià)格的時(shí)間戳,必須處于執(zhí)行下游交易的區(qū)塊時(shí)間戳的 20 秒之內(nèi):


圖 2:使用 Pyth 的搶先交易示例流程


一個(gè)直觀的想法是簡(jiǎn)單地降低期效檢查閾值,但較低的閾值可能會(huì)導(dǎo)致無(wú)法預(yù)測(cè)區(qū)塊時(shí)間的網(wǎng)絡(luò)回復(fù),從而影響用戶(hù)體驗(yàn)。由于 Pyth 的喂價(jià)依賴(lài)于橋接,因此需要足夠的緩沖來(lái) a) 為蟲(chóng)洞守護(hù)者(Wormhole guardians)提供證明價(jià)格的時(shí)間,b) 允許目標(biāo)鏈處理交易并將其納入?yún)^(qū)塊。下一節(jié)將詳細(xì)介紹這些權(quán)衡。


平倉(cāng)


平倉(cāng)是任何涉及杠桿的協(xié)議的核心部分,而喂價(jià)更新的粒度,于決定平倉(cāng)效率舉足輕重。


以基于閾值的推送式預(yù)言機(jī)來(lái)說(shuō),當(dāng)現(xiàn)貨價(jià)格達(dá)到閾值但不符合預(yù)言機(jī)喂價(jià)預(yù)設(shè)的參數(shù)時(shí),價(jià)格更新的粒度(或粒度不足)會(huì)導(dǎo)致錯(cuò)失平倉(cāng)機(jī)會(huì)。這以市場(chǎng)低效率的形式帶來(lái)了負(fù)外部效應(yīng)。


當(dāng)平倉(cāng)發(fā)生,應(yīng)用程序通常會(huì)支付部分平倉(cāng)抵押品,有時(shí)還會(huì)向發(fā)動(dòng)平倉(cāng)的用戶(hù)提供獎(jiǎng)勵(lì)。例如,2002 年 Aave 僅在主網(wǎng)上就支付了 3,790 萬(wàn)美元的平倉(cāng)獎(jiǎng)勵(lì) 7。這明顯過(guò)度補(bǔ)償了第三方,并且為用戶(hù)帶來(lái)不佳的操作 。此外,當(dāng)存在可提取價(jià)值時(shí),隨之出現(xiàn)的 Gas Wars (Gas 競(jìng)拍行為 ) 會(huì)導(dǎo)致價(jià)值從應(yīng)用程序中流失,從而流向 MEV 供應(yīng)鏈。


設(shè)計(jì)空間和考量


考慮到上述問(wèn)題,下文將討論基于推送式、拉取式和替代設(shè)計(jì)的各種實(shí)施方案,各自于解決上述問(wèn)題的有效性及當(dāng)中的取舍;取舍的形式可以是附加的中心化和信任前設(shè),又或是不佳的用戶(hù)體驗(yàn)。


預(yù)言機(jī)專(zhuān)用的訂單流競(jìng)價(jià)(Order Flow Auctions,OFA)


訂單流競(jìng)價(jià) OFA 已成為消除 MEV 產(chǎn)生的負(fù)外部效應(yīng)一種解決方案。廣義上,OFA 是一種通用的第三方競(jìng)價(jià)服務(wù),用戶(hù)可以向其發(fā)送訂單(交易或意圖),而提取 MEV 的搜索者則可以競(jìng)價(jià)獲得對(duì)其訂單運(yùn)行策略的獨(dú)家權(quán)利。很大部分的競(jìng)價(jià)收益會(huì)退還給用戶(hù),以補(bǔ)償他們?cè)谶@些訂單中創(chuàng)造的價(jià)值。近來(lái) OFA 的采用率激增,超過(guò) 10% 以太坊交易都于私人渠道(私人 RPC/OFAs)進(jìn)行(圖 3),相信尚會(huì)進(jìn)一步催化增長(zhǎng)。


圖 3:合并后的每日私人以太坊交易數(shù)量。來(lái)源:Blocknative


在預(yù)言機(jī)更新中,實(shí)施通用 OFA 的問(wèn)題在于預(yù)言機(jī)無(wú)法了解基于標(biāo)準(zhǔn)規(guī)則的更新,是否會(huì)產(chǎn)生任何 OEV,如果不會(huì),則會(huì)在預(yù)言機(jī)向競(jìng)價(jià)中發(fā)送交易時(shí)帶來(lái)額外延遲。另一方面,精簡(jiǎn) OEV,和將延遲減至最低的最簡(jiǎn)單方法是將所有預(yù)言機(jī)訂單流提供予單一主導(dǎo)搜索者。但這顯然會(huì)帶來(lái)極大集中化風(fēng)險(xiǎn),可能會(huì)助長(zhǎng)尋租行為以及審查,并導(dǎo)致低用戶(hù)體驗(yàn)。


圖 4:一般 OFA 與預(yù)言機(jī)專(zhuān)用的 OFA


不包含現(xiàn)有基于規(guī)則更新的預(yù)言機(jī)專(zhuān)用 OFA 的價(jià)格更新仍於公共內(nèi)存池進(jìn)行。這讓預(yù)言機(jī)的價(jià)格更新,以及隨之產(chǎn)生的任何可提取價(jià)值,都得以保留在應(yīng)用層中。作為副產(chǎn)品,它還允許搜索者請(qǐng)求數(shù)據(jù)源更新,而無(wú)需預(yù)言機(jī)節(jié)點(diǎn)承擔(dān)更頻繁更新的額外成本,從而提高了數(shù)據(jù)的粒度。


預(yù)言機(jī)專(zhuān)用 OFA 是平倉(cāng)的理想選擇,因?yàn)樗軒?lái)更細(xì)粒度的價(jià)格更新,最大限度地將資本返還給被平倉(cāng)的借款人,減少支付給平倉(cāng)人的協(xié)議獎(jiǎng)勵(lì),并在協(xié)議中保留從投標(biāo)人處提取的價(jià)值,以便重新分配給用戶(hù)。它們還在一定程度上 - 盡管并不完全 - 解決了搶先交易和套利問(wèn)題。在完全競(jìng)爭(zhēng)(perfect competition)和首價(jià)密封投標(biāo)競(jìng)價(jià) (first price sealed bid auction) 流程下,競(jìng)價(jià)的結(jié)果,應(yīng)是接近執(zhí)行機(jī)會(huì) 8 的區(qū)塊空間成本、由搶先交易 OEV 數(shù)據(jù)饋送中,所提取的價(jià)值,以及因喂價(jià)更新的價(jià)格粒度增加,而減少所產(chǎn)生的套利機(jī)會(huì)。


目前,要實(shí)施預(yù)言機(jī)專(zhuān)用的 OFA,要么需要加入第三方競(jìng)價(jià)服務(wù)(如 OEV-Share),又或構(gòu)建一個(gè)競(jìng)價(jià)服務(wù)作為應(yīng)用程序的一部分。受 Flashbots 的啟發(fā),API3 利用 OEV 中繼器 (OEV relay) (圖 5)作為于設(shè)計(jì)上執(zhí)行 DoS 保護(hù)服務(wù)的 API 來(lái)進(jìn)行競(jìng)價(jià)。該中繼器負(fù)責(zé)收集來(lái)自預(yù)言機(jī)的元交易、整理和聚合搜索者的出價(jià),并以無(wú)信任方式重新分配收益,而無(wú)需控制出價(jià)。當(dāng)搜索者中標(biāo)時(shí),更新數(shù)據(jù)源只能依靠將出價(jià)金額轉(zhuǎn)移到協(xié)議擁有的代理合約,然后代理合約會(huì)用中繼器提供的簽名數(shù)據(jù)更新價(jià)格源。


圖 5:API3 的 OEV 中繼器


另外,協(xié)議也可以放棄中間人,建立自己的競(jìng)價(jià)服務(wù),獲取從 OEV 的所有提取價(jià)值。BBOX 就是一個(gè)即將推出的協(xié)議,它希望將競(jìng)價(jià)嵌入其平倉(cāng)機(jī)制,以獲取 OEV,并將其返還給應(yīng)用程序及其用戶(hù) 9。


運(yùn)行中央節(jié)點(diǎn)或 Keeper


源于第一波永續(xù)合約去中心化交易所打擊 OEV 的一個(gè)早期想法,是運(yùn)行一個(gè)集中式 Keeper 網(wǎng)絡(luò) ( 守門(mén)人網(wǎng)絡(luò) ),聚合從第三方來(lái)源(如中心化交易所)收到的價(jià)格,然后利用類(lèi)似 Chainlink 的數(shù)據(jù)饋送作為應(yīng)變方案或斷路器。這種模式在 GMX v110 及其后續(xù)的許多分叉中都得到了推廣,其主要價(jià)值主張?jiān)谟?,由?Keeper 網(wǎng)絡(luò)由單一運(yùn)營(yíng)商運(yùn)行,因此可以絕對(duì)防止搶先交易。


雖然這解決了上述許多問(wèn)題,但明顯地有中心化顧慮。中心化的 Keeper 系統(tǒng),可以于未適當(dāng)驗(yàn)證定價(jià)來(lái)源和聚合方法之下決定執(zhí)行價(jià)格。在 GMX v1 的案例中,Keeper 并不是一個(gè)鏈上或透明的機(jī)制,而是于中心化服務(wù)器上運(yùn)行團(tuán)隊(duì)地址簽署的程序。 Keeper 的核心作用不僅是執(zhí)行訂單,而且是根據(jù)自己的預(yù)設(shè)定義「決定」交易價(jià)格,無(wú)法驗(yàn)證所使用的執(zhí)行價(jià)格的真實(shí)性或來(lái)源。


自動(dòng)化的 Keeper 網(wǎng)絡(luò)和 Chainlink 數(shù)據(jù)流


解決上述由單一操作員的 Keeper 網(wǎng)絡(luò)所帶來(lái)的中心化風(fēng)險(xiǎn),是利用第三方服務(wù)提供商建立一個(gè)更加去中心化的自動(dòng)化網(wǎng)絡(luò)。 Chainlink Automation 就是這樣一個(gè)產(chǎn)品,它與 Chainlink Data Streams - 即是一個(gè)全新的拉取式、低延遲預(yù)言機(jī) - 共同提供這項(xiàng)服務(wù)。該產(chǎn)品最近剛剛發(fā)布,目前還處于閉門(mén)測(cè)試階段,但 GMX v211 目前已經(jīng)在使用該產(chǎn)品,它可以作為采用這種設(shè)計(jì)的系統(tǒng)的參考。


從高層次來(lái)看,Chainlink 數(shù)據(jù)流由三個(gè)主要部分組成:數(shù)據(jù) DON(去中心化的預(yù)言機(jī)網(wǎng)絡(luò))、自動(dòng)化 DON 和鏈上驗(yàn)證合約 12。數(shù)據(jù) DON 是一個(gè)鏈下數(shù)據(jù)網(wǎng)絡(luò),其架構(gòu)類(lèi)似于 Pythnet 維護(hù)和聚合數(shù)據(jù)的架構(gòu)。自動(dòng)化 DON 是由數(shù)據(jù) DON 的相同節(jié)點(diǎn)操作員保護(hù)的守護(hù)者網(wǎng)絡(luò),用于從鏈上數(shù)據(jù) DON 提取價(jià)格。最后,驗(yàn)證器合約用于驗(yàn)證鏈下簽名是否正確。


圖 6:Chainlink 數(shù)據(jù)流架構(gòu)


上圖展示了調(diào)用開(kāi)放交易功能的交易流程,其中自動(dòng)化 DON 負(fù)責(zé)從數(shù)據(jù) DON 獲取價(jià)格并更新鏈上存儲(chǔ)。目前,直接查詢(xún)數(shù)據(jù) DON 的端點(diǎn)僅限于白名單用戶(hù),因此協(xié)議可以選擇將 Keeper 維護(hù)工作卸載給自動(dòng)化 DON(Automation DON),或運(yùn)行自己的 Keeper。但隨著產(chǎn)品開(kāi)發(fā)生命周期的推移,預(yù)計(jì)這將逐步轉(zhuǎn)變?yōu)闊o(wú)權(quán)限結(jié)構(gòu)。


在安全層面上,依賴(lài)自動(dòng)化 DON 的信任假設(shè),與單獨(dú)使用數(shù)據(jù) DON 的信任假設(shè)相同,這是對(duì)單一 Keeper 設(shè)計(jì)的重大改進(jìn)。不過(guò),如果將喂價(jià)更新權(quán)交給自動(dòng)化 DON,那么價(jià)值提取的機(jī)會(huì)就只能留給 Keeper 網(wǎng)絡(luò)中的節(jié)點(diǎn)。這反過(guò)來(lái)又意味著,該協(xié)議將信任鏈克節(jié)點(diǎn)運(yùn)營(yíng)商(主要是機(jī)構(gòu))維護(hù)其社會(huì)聲譽(yù),不搶先用戶(hù)進(jìn)行操作,這類(lèi)似于信任 Lido Node 節(jié)點(diǎn)運(yùn)營(yíng)商因要維護(hù)其聲譽(yù),不會(huì)因其市場(chǎng)份額大,而壟斷區(qū)塊空間。


拉取式: 延遲結(jié)算


Synthetix perps v2 中最大的變化之一,是為永續(xù)合約結(jié)算 13 引入了 Pyth 喂價(jià)。這使得訂單可以以 Chainlink 或 Pyth 價(jià)格結(jié)算,前提是它們的偏差不超過(guò)預(yù)定義的閾值,并且時(shí)間戳通過(guò)了期效檢查。然而,如上所述,僅僅改用基于拉取式預(yù)言機(jī)并不能解決所有協(xié)議的 OEV 相關(guān)問(wèn)題。要解決搶先交易,可以延遲訂單的形式引入「最后查看」定價(jià)機(jī)制,在實(shí)踐中,這將用戶(hù)的市場(chǎng)訂單分為兩個(gè)部分:


  • 交易 #1:在鏈上提交開(kāi)立市場(chǎng)訂單的「意向」,并提供標(biāo)準(zhǔn)訂單參數(shù),如大小、杠桿、抵押品和滑點(diǎn)容忍度。同時(shí)還需支付額外的 Keeper 費(fèi)用,用于獎(jiǎng)勵(lì) Keeper 執(zhí)行交易 #2。
  • 交易 #2:Keeper 接收在交易 #1 中提交的訂單,要求最新的 Pyth 喂價(jià),并在一次交易中調(diào)用 Synthetix 執(zhí)行合約。合約會(huì)檢查預(yù)定義的參數(shù),如時(shí)效和滑價(jià),如果都通過(guò),訂單就會(huì)被執(zhí)行,鏈上價(jià)格存儲(chǔ)會(huì)被更新,倉(cāng)位將建立。 Keeper 收取費(fèi)用,補(bǔ)償使用和維護(hù)網(wǎng)絡(luò)的所用到的 gas。


這種實(shí)施方式不會(huì)讓用戶(hù)有機(jī)會(huì)逆向選擇在鏈上提交的價(jià)格,從而有效地解決了協(xié)議的搶先交易和套利機(jī)會(huì)。不過(guò),這種設(shè)計(jì)的折衷就是用戶(hù)體驗(yàn):執(zhí)行這個(gè)市場(chǎng)訂單需要兩個(gè)交易過(guò)程,用戶(hù)需要為 Keeper 的操作補(bǔ)償 gas,同時(shí)分擔(dān)更新預(yù)言機(jī)鏈上存儲(chǔ)的的成本。之前是 2 sUSD 的固定費(fèi)用,最近則改為基于 Optimism gas oracle + 溢價(jià)的動(dòng)態(tài)費(fèi)用,溢價(jià)將根據(jù)二層網(wǎng)絡(luò)(layer 2)活動(dòng)而變化。無(wú)論如何,這可視為犧牲交易者的用戶(hù)體驗(yàn)以提高 LP 盈利能力的一種解決方案。


拉取式: 積極結(jié)算 (Optimistic settlement)


由于延遲訂單會(huì)給用戶(hù)帶來(lái)額外的網(wǎng)絡(luò)費(fèi)用(和二層網(wǎng)絡(luò)的 DA 費(fèi)用成比例),經(jīng)過(guò)集思廣益,我們?cè)贁M出了另一種訂單結(jié)算模式,稱(chēng)之為「積極結(jié)算」,這種模式有可能降低用戶(hù)的成本,同時(shí)維護(hù)去中心化以及協(xié)議的安全性。顧名思義,這種機(jī)制允許交易者以原子方式執(zhí)行市場(chǎng)交易,系統(tǒng)會(huì)積極地接受所有價(jià)格,并為搜索者提供一個(gè)窗口,讓他們提交證據(jù),證明惡意下達(dá)的訂單。本節(jié)概述了這構(gòu)思的不同版本、我們的思考過(guò)程以及仍未解決的問(wèn)題。


我們最初的想法是建立一種機(jī)制,讓用戶(hù)在開(kāi)立市場(chǎng)訂單時(shí)通過(guò) parsePriceFeedUpdates 提交價(jià)格,然后允許用戶(hù)或任何第三方使用喂價(jià)數(shù)據(jù)提交結(jié)算交易,并在交易確認(rèn)時(shí)以該價(jià)格完成交易。結(jié)算時(shí),兩個(gè)價(jià)格之間的任何負(fù)差都將作為滑點(diǎn)計(jì)入用戶(hù)的損益表。這種方法的優(yōu)點(diǎn)包括減輕用戶(hù)的成本負(fù)擔(dān),和降低搶先交易的風(fēng)險(xiǎn)。用戶(hù)不必再負(fù)擔(dān)獎(jiǎng)勵(lì)守們?nèi)说囊鐑r(jià),而且由于在提交訂單時(shí)不知道結(jié)算價(jià)格,搶先交易的風(fēng)險(xiǎn)仍可控。不過(guò),這仍引入了兩步的結(jié)算流程,而這正是我們?cè)?Synthetix 的延遲結(jié)算模式中發(fā)現(xiàn)的缺點(diǎn)之一。在大多數(shù)情況下,如果下單和結(jié)算期間的波動(dòng)性,不超過(guò)系統(tǒng)界定的可盈利搶先交易閾值,那額外的結(jié)算交易可能就是多余的。


規(guī)避上述問(wèn)題的另一種解決方案是,允許系統(tǒng)積極地接受訂單,然后開(kāi)放一個(gè)無(wú)權(quán)限的質(zhì)疑期,在該期間可以提交證據(jù),證明價(jià)格時(shí)間戳和區(qū)塊時(shí)間戳之間的價(jià)格偏差允許進(jìn)行有利可圖搶先交易。


具體操作如下:


  • 用戶(hù)根據(jù)當(dāng)前市場(chǎng)價(jià)格創(chuàng)建訂單。然后,他們連同嵌入的 pyth 喂價(jià)字節(jié)數(shù)據(jù)傳送價(jià)格﹐作為訂單創(chuàng)建交易。
  • 智能合約會(huì)主動(dòng)驗(yàn)證并存儲(chǔ)這些信息。
  • 在鏈上確認(rèn)訂單后,會(huì)有一個(gè)質(zhì)疑期,搜索者可以提交逆向選擇證明。該證明將證實(shí)交易者使用了過(guò)時(shí)的喂價(jià)數(shù)據(jù),意圖在系統(tǒng)中套利。如果系統(tǒng)接受了證明,差值將作為滑點(diǎn)應(yīng)用到交易者的執(zhí)行價(jià)格中,多余的價(jià)值將作為獎(jiǎng)勵(lì)給予 Keeper。
  • 質(zhì)疑期結(jié)束后,系統(tǒng)認(rèn)為所有價(jià)格均有效。


這種模式有兩個(gè)優(yōu)點(diǎn):減輕了用戶(hù)的成本負(fù)擔(dān),用戶(hù)只需在同一筆交易中為訂單創(chuàng)建和預(yù)言機(jī)更新支付 gas 費(fèi)用,而不需要額外的結(jié)算交易。它還能阻止搶先交易,保護(hù)流動(dòng)池的完整性,確保有一個(gè)健康的 Keeper 網(wǎng)絡(luò),有經(jīng)濟(jì)獎(jiǎng)勵(lì)措施向系統(tǒng)提交證明,證明其搶先。


然而,在將這一想法付諸實(shí)踐之前,還有一些問(wèn)題有待解決:


  • 定義「逆向選擇」: 系統(tǒng)如何區(qū)分因網(wǎng)絡(luò)延遲而提交過(guò)期價(jià)格的用戶(hù),以及故意套利的用戶(hù)?一個(gè)初步的想法可以是,測(cè)量期效檢查時(shí)段(例如 15 秒)內(nèi)的波動(dòng)性,如果波動(dòng)性超過(guò)凈執(zhí)行費(fèi),該訂單就會(huì)被標(biāo)記為一個(gè)潛在利用。
  • 設(shè)置適當(dāng)?shù)馁|(zhì)疑期: 考慮到有毒訂單流可能只開(kāi)放很短的時(shí)間,什么是適當(dāng)?shù)臅r(shí)間窗口供 Keeper 質(zhì)疑價(jià)格?批量證明可能會(huì)更符合成本效益,但鑒于訂單流在一段時(shí)間內(nèi)的不可預(yù)測(cè)性,很難確定批量證明的時(shí)間,以確保所有價(jià)格信息都得到證明或有充足的時(shí)間受到質(zhì)疑。
  • 對(duì) Keeper 的經(jīng)濟(jì)獎(jiǎng)勵(lì): 要使提交證明對(duì)受到經(jīng)濟(jì)激勵(lì)的保存者來(lái)說(shuō)是合理的,提交獲勝證明的相關(guān)獎(jiǎng)勵(lì)必須大于提交證明的相關(guān) gas 成本。由于訂單規(guī)模不同,這一假設(shè)可能無(wú)法保證。
  • 是否需要為關(guān)閉訂單建立類(lèi)似的機(jī)制?如果要的話,會(huì)怎樣降低了用戶(hù)體驗(yàn)?
  • 確保「不合理」的滑點(diǎn)不會(huì)落到用戶(hù)身上: 在閃崩情況下,訂單創(chuàng)建和鏈上確認(rèn)之間可能會(huì)出現(xiàn)非常大的價(jià)格差異??赡苄枰撤N后備或斷路器,可以考慮使用 Pyth 的 EMA 價(jià)格,以確保使用前的喂價(jià)穩(wěn)定性。


中科輔助處理器 (ZK Co-processors)- 另一種形式的數(shù)據(jù)消耗


另一個(gè)值得探索的方向是使用 ZK 輔助處理器,這種輔助處理器旨在獲取鏈上狀態(tài)以于鏈下進(jìn)行復(fù)雜計(jì)算,并與此同時(shí)提供計(jì)算執(zhí)行方式的證明;這種方式可無(wú)權(quán)限地驗(yàn)證。 Axiom 等項(xiàng)目使合約能夠查詢(xún)歷史區(qū)塊鏈數(shù)據(jù),在鏈下執(zhí)行計(jì)算,并提交 ZK 證明,證明計(jì)算結(jié)果是根據(jù)有效的鏈上數(shù)據(jù)正確計(jì)算得出的。輔助處理器開(kāi)啟了一種可能性,利用多個(gè) DeFi 原生流動(dòng)性來(lái)源(如 Uniswap + Curve)的歷史價(jià)格構(gòu)建具有操縱彈性的自定義 TWAP 預(yù)言機(jī)。


與目前只能獲得最新資產(chǎn)價(jià)格數(shù)據(jù)的傳統(tǒng)預(yù)言機(jī)相比,ZK 輔助處理器將擴(kuò)大以安全方式提供給 dApp 的數(shù)據(jù)范圍(Pyth 確實(shí)提供了 EMA 價(jià)格,供開(kāi)發(fā)人員用作最新價(jià)格的參考檢查)。這樣,應(yīng)用程序就可以引入更多與歷史區(qū)塊鏈數(shù)據(jù)協(xié)同工作的業(yè)務(wù)邏輯,以提高協(xié)議安全性或增強(qiáng)用戶(hù)體驗(yàn)。


不過(guò),ZK 輔助處理器仍處于開(kāi)發(fā)初期,當(dāng)中仍存在一些瓶頸,例如:


  • 在輔助處理器環(huán)境下,大量區(qū)塊鏈數(shù)據(jù)的獲取和計(jì)算可能需要較長(zhǎng)的證明時(shí)間
  • 僅提供區(qū)塊鏈數(shù)據(jù),無(wú)法解決與非 Web3 應(yīng)用程序安全通信的需求


無(wú)預(yù)言機(jī)解決方案 – DeFi 的未來(lái)?


解決這一問(wèn)題的另一種思路是,通過(guò)從頭開(kāi)始設(shè)計(jì)一個(gè)基元,消除對(duì)外部喂價(jià)的需求,從而解決 DeFi 對(duì)預(yù)言機(jī)依賴(lài)性。這一領(lǐng)域的最新發(fā)展是利用各種 AMM LP 代幣作為定價(jià)手段,其核心理念是恒定函數(shù)做市商的 LP 倉(cāng)位是代表兩種資產(chǎn)預(yù)設(shè)權(quán)重的代幣,并有這兩種代幣的自動(dòng)定價(jià)公式(即 xy=k)。通過(guò)利用 LP 代幣(作為抵押品、貸款基礎(chǔ),或在最近的使用案例中,將 v3 LP 倉(cāng)位移動(dòng)到不同的刻度點(diǎn)),該協(xié)議可以獲取通常需要從預(yù)言機(jī)所獲取的信息。由此,新一波趨勢(shì) - 免于所述挑戰(zhàn)的無(wú)預(yù)言機(jī)方案都得以實(shí)現(xiàn)。建基于此方向的應(yīng)用實(shí)例包括:


Panoptic 正構(gòu)建永久、無(wú)預(yù)言機(jī)的期權(quán)協(xié)議,所利用的是 Uniswap v3 集中流動(dòng)性倉(cāng)位。由于當(dāng)現(xiàn)貨價(jià)格超過(guò) LP 倉(cāng)位的上限范圍時(shí),集中流動(dòng)性倉(cāng)位會(huì) 100% 轉(zhuǎn)換成基礎(chǔ)資產(chǎn),因此流動(dòng)性提供者的回報(bào)與認(rèn)沽期權(quán)的賣(mài)家回報(bào)非常相似。因此,期權(quán)市場(chǎng)的運(yùn)作是流動(dòng)性提供者存入 LP 資產(chǎn)或倉(cāng)位,期權(quán)買(mǎi)方和賣(mài)方借入流動(dòng)性并將其移入或移出范圍,從而產(chǎn)生動(dòng)態(tài)的期權(quán)回報(bào)。由于貸款是以 LP 倉(cāng)位計(jì)價(jià),因此結(jié)算時(shí)不需要預(yù)言機(jī)。


Infinity Pools 正在利用 Uniswap v3 的集中流動(dòng)性倉(cāng)位,建立一個(gè)無(wú)平倉(cāng)、無(wú)預(yù)言機(jī)的杠桿交易平臺(tái)。 Uniswap v3 的流動(dòng)性提供者可以借出他們的 LP 代幣,交易者存入一些抵押品,借用 LP 代幣并贖回其定向交易的相關(guān)資產(chǎn)。贖回時(shí)的貸款將以資產(chǎn)基礎(chǔ)或報(bào)價(jià)資產(chǎn)計(jì)價(jià),具體取決于贖回時(shí)的價(jià)格,并可直接通過(guò)檢查 Uniswap 上的 LP 組成計(jì)算,消除了對(duì)預(yù)言機(jī)的依賴(lài)。


Timeswap 正在建立一個(gè)固定期限、無(wú)平倉(cāng)、無(wú)預(yù)言機(jī)的借貸平臺(tái)。它是一個(gè)由貸方、借方和流動(dòng)性提供者組成的三方市場(chǎng)。與傳統(tǒng)借貸市場(chǎng)不同,它采用的是「時(shí)間基礎(chǔ)」(time-based)的清算,而不是「價(jià)格基礎(chǔ)」(price-based)的平倉(cāng)。在去中心化交易所,流動(dòng)性提供者被自動(dòng)設(shè)定為總是向賣(mài)方買(mǎi)入,向買(mǎi)方賣(mài)出;而在 Timeswap 中,流動(dòng)性提供者總是向借方貸款,向貸方借款,在市場(chǎng)中扮演類(lèi)似的角色。他們還負(fù)責(zé)承擔(dān)貸款違約責(zé)任,并優(yōu)先獲得被沒(méi)收的抵押品作為補(bǔ)償。


結(jié)論


定價(jià)數(shù)據(jù)仍然是許多去中心化應(yīng)用的重要部分,而隨著時(shí)間的推移,預(yù)言機(jī)所獲得的總價(jià)值也在不斷增加,進(jìn)一步肯定其產(chǎn)品與市場(chǎng)的契合度 (p 產(chǎn)品市場(chǎng)契合度)。本文旨在讓讀者得悉并概述我們目前面臨的 OEV 相關(guān)挑戰(zhàn),以及基于推送式、拉取式和使用 AMM 流動(dòng)性提供者或鏈下輔助處理器的其他設(shè)計(jì),其實(shí)施方案中的設(shè)計(jì)空間。


我們很高興看到充滿(mǎn)活力的開(kāi)發(fā)者期望解決這些棘手的設(shè)計(jì)難題。如果您也在這領(lǐng)域開(kāi)展顛覆性的項(xiàng)目,我們很樂(lè)意聽(tīng)取您的意見(jiàn)!


參考文獻(xiàn)和致謝
OEV Litepaper https://drive.google.com/file/d/1wuSWSI8WY9ChChu2hvRgByJSyQlv_8SO/edit
Frontrunning on Synthetix: A History by Kain Warwick https://blog.synthetix.io/frontrunning-synthetix-a-history/
?https://snapshot.org/#/rook.eth/proposal/0x523ea386c3e42c71e18e1f4a143533201083655dc04e6f1a99f1f0b340523c58
https://docs.pyth.network/documentation/pythnet-price-feeds/on-demand
https://docs.pyth.network/documentation/solana-price-feeds/best-practices#latency
Aave liquidation figures https://dune.com/queries/3247324
https://drive.google.com/file/d/1wuSWSI8WY9ChChu2hvRgByJSyQlv_8SO/edit
https://twitter.com/bboexchange/status/1726801832784318563
https://gmx-io.notion.site/gmx-io/GMX-Technical-Overview-47fc5ed832e243afb9e97e8a4a036353
https://gmxio.substack.com/p/gmx-v2-powered-by-chainlink-data
https://docs.chain.link/data-streams
https://sips.synthetix.io/sips/sip-281/


感謝 Jonathan Yuen 和 Wintersoldier 的貢獻(xiàn)和對(duì)談,為本文貢獻(xiàn)良多。

感謝 Erik Lie、Richard Yuen(Hailstone)、Marc、Mario Bernardi、Anirudh Suresh(Pyth)、Ugur Mersin(API3 DAO)和 Mimi(Timeswap)的寶貴意見(jiàn)、反饋和審查。

https://defillama.com/oracles (14 Nov)

??

附錄


定義: 推送式與拉取式預(yù)言機(jī)


推送式預(yù)言機(jī)器于在 P2P 網(wǎng)絡(luò)中維持鏈下價(jià)格,以及維持根據(jù)預(yù)先定義的鏈上節(jié)點(diǎn)更新價(jià)格。以 Chainlink 為例,價(jià)格更新基于兩個(gè)觸發(fā)參數(shù):偏離閾值(偏差閾值)和心跳(心跳)。只要鏈下價(jià)格偏離最新鏈上價(jià)格 0.5%,或者心跳計(jì)時(shí)器 1 小時(shí)計(jì)時(shí)為零,下面的以太坊 ETH/USD 價(jià)格源就會(huì)更新。



在這種情況下,預(yù)言機(jī)運(yùn)營(yíng)商必須為每次價(jià)格更新支付交易費(fèi)用,也是于成本和可擴(kuò)展性之間的取舍。增加價(jià)格源的數(shù)量,支持額外的區(qū)塊鏈,或者增加更頻繁的更新,都會(huì)產(chǎn)生額外的交易成本。因此,具有更高觸發(fā)參數(shù)的長(zhǎng)尾資產(chǎn),無(wú)可避免地具有可靠度低的價(jià)格源。下面以 CRV/USD 為例說(shuō)明這一點(diǎn) - 為了使新的價(jià)格能夠在鏈上更新,需要 1% 的偏離閾值,心跳為 24 小時(shí),這意味著如果價(jià)格在 24 小時(shí)內(nèi)未偏離超過(guò) 1%,那么每 24 小時(shí)只會(huì)有一個(gè)新的價(jià)格更新。直觀而言,長(zhǎng)尾資產(chǎn)的價(jià)格源缺乏細(xì)致度,將不可避免地導(dǎo)致應(yīng)用程序在為這些資產(chǎn)創(chuàng)建市場(chǎng)時(shí)需要考慮額外的風(fēng)險(xiǎn)因素,這解釋了為什么絕大多數(shù) DeFi 活動(dòng)仍圍繞著流動(dòng)性最強(qiáng)、最大市值的代幣而發(fā)生。



相比之下,拉取式預(yù)言機(jī)允許按需求將價(jià)格拉到鏈上。Pyth 是當(dāng)今最突出的例子,它在鏈下傳輸價(jià)格更新,對(duì)每次更新進(jìn)行簽名,以便任何人都能驗(yàn)證其真實(shí)性,并在 Pythnet 上維護(hù)聚合價(jià)格,Pythnet 是基于 Solana 代碼的私有區(qū)塊鏈。當(dāng)需要更新時(shí),數(shù)據(jù)通過(guò) Wormhole 傳輸,在 Pythnet 上進(jìn)行驗(yàn)證后,就可以無(wú)需權(quán)限地拉取到鏈上。



上圖描述了 Pyth 喂價(jià)的架構(gòu): 當(dāng)需要更新鏈上價(jià)格時(shí),用戶(hù)可以通過(guò) Pyth API 請(qǐng)求更新,Pythnet 上經(jīng)過(guò)驗(yàn)證的價(jià)格會(huì)被發(fā)送到 Wormhole 合約,Wormhole 合約會(huì)觀察并創(chuàng)建和發(fā)送一個(gè)處名的 VAA,該 VAA 可以在任何部署了 Pyth 合約的區(qū)塊鏈上進(jìn)行驗(yàn)證。

小編推薦下載

相關(guān)文章

更多>>

資訊排行

同類(lèi)軟件下載