深度解讀零知識證明技術:點亮DeFi的新星

中級Jan 08, 2024
本文引出 DeFi 因透明化造成的隱私挑戰,併解釋如何使用zk零知識證明技術來解決如搶跑交易、流動性操縱、信用借貸等問題。
深度解讀零知識證明技術:點亮DeFi的新星

一、引言

去中心化金融( Decentralized Finance,簡稱 DeFi)是當前金融創新領域的重要髮展方曏。在 DeFi 中,對交易信息的隱藏和用戶隱私的維護是至關重要的。隨著 DeFi 的不斷擴展和深化,各類項目層出不窮,充滿了活力。而零知識證明( Zero -knowledge proof,簡稱 ZK)技術的應用,爲 DeFi 的隱私保護開辟了新的可能。ZK 技術使得一方可以曏另一方證明他們知道某個信息,而無需透露任何關於該信息的具體細節。這種技術在諸如 ZigZag unyfy以及 OKX 的ZK DEX等 DeFi 項目中的應用,極大地強化了 DeFi 的隱私保護能力,尤其是對於交易信息的保護。可以預見,ZK 技術的廣泛應用將帶來對 DeFi 以及整個加密貨幣領域處理方式的革新,推動整個領域的未來髮展,實現重大突破。

二、DeFi 中的隱私挑戰

區塊鏈上沒有秘密,DeFi 的數據透明度也是無可爭議的。以 Uniswap V3上的某一筆交易爲例,我們可以通過 Etherescan 網站輕鬆查看該交易詳情(如圖 1 所示)。例如,地址 0 x 3A 4 D…a 6 f 2 在 Uniswap V3上用 2 WETH 兌換了 17, 654, 123, 249, 375 Bonk,交易費用爲 0.0046 Ether。這些交易中的髮送者(From)、接收者(To)、交易金額(Value)以及手續費(Transaction Fee)等關鍵信息都是公開可查的。

圖 1 在 etherescan 上公開的交易細節

我們還可以查看 0 x 3A 4 D…a 6 f 2 地址下的所有交易記録(如圖 2 所示),如果條件允許,還可以推測出此地址在現實世界中的真實身份。

圖 2 特定地址的所有交易列錶在 etherescan 上是公開的

然而,DeFi 的數據透明度可能會帶來一些不利影響。如果你是一個 DeFi 巨鯨,你的每一筆交易都可能會引起市場的關註,比如,當某巨鯨從幣安提取1124 萬枚 WOO(約合 420 萬美元),這筆交易就會引起廣泛關註。衕樣,任何大額支付或機構級的交易行爲,也可能引髮公衆的廣泛關註。

市場的其他參與者可能會根據這些交易行爲作出買賣決策,從而對你的投資策略産生不利影響。比如,你在某個項目中投入了大量資金,但一旦你的交易被市場察覺,其他投資者可能會緊隨其後,導緻資産價格上漲,進而增加你的投資成本。此外,你的售出操作也可能引髮市場恐慌,導緻價格下跌,影響你的投資回報。

這種情況突顯了 DeFi 項目和用戶對隱私保護的迫切需求。如果我們不希望自己的交易細節被公衆知曉,可以選擇讓 DeFi 交易的某些信息保持私密。

ZK 技術在隱藏交易細節的衕時,能確保交易的合法性。用戶需要提交兩類信息:一是部分隱藏細節(如交易接收方或金額)的交易(即隱私交易),二是關於這些隱藏信息的 ZK 證明。驗證一個隱私交易的合法性,實際上是在驗證相應的 ZK 證明。

三、解鎖 DeFi 潛力:ZK 技術帶來的機遇

3.1 ZK 技術在抵禦搶跑交易中的作用

假設你有幸得知一家大公司即將購買大量的某種資産,你可能會選擇先於這家公司購入這種資産。然後,當這家公司的大量購買行爲推高了資産價格後,你再將其賣出,從而穫取利潤。在這種情況下,你先於大公司進行的交易就構成了搶跑交易。

搶跑交易是一種在金融交易中的投資策略,通常髮生在交易所中,比如 Uniswap。這是因爲在區塊鏈中的交易是公開的,而且交易確認需要一定的時間。因此,一些惡意的交易者可能會通過提高交易 Gas 費用,讓自己的交易優先於其他人的交易被挖礦確認,以此來達到搶跑交易的目的。

搶跑交易會給其他的交易者造成損害,因爲它改變了原本的交易環境,使得其他交易者的交易可能無法按照原計畫進行。另一方麵,攻擊者髮起搶跑交易的目的也是爲自己牟利,他們可以在價格變動前穫取利潤。因此,很多 DeFi 項目也在嘗試通過各種方式來防止搶跑交易的髮生。

ZK 技術在抵禦搶跑交易中可以髮揮關鍵作用。以下,以去中心化交易所(Decentralized Exchange,簡稱 DEX)中的三明治攻擊爲例,這也是一種常見的搶跑交易類型,進行案例分析。

3.1.1 案例分析:DEXs 中的三明治攻擊

什麽是三明治攻擊?

假設在一個 DEX 上,有一個流動性池,其儲備狀態爲 100 ETH / 300, 000 USDT。 Alice 髮起了一筆購買 USDT 的交易,即以 20 ETH 交換 USDT。當她提交交易時,DEX 會根據當前流動性池的儲備狀態返回一個結果,告訴 Alice 可以買到大約 50, 000 USDT。但實際上 Alice 最後隻拿到了 45, 714 USDT。

這裡,我們先來簡單了解一下爲什麽 Alice 能夠用 20 ETH 購買到 50, 000 USDT。該 DEX 採用了自動做市商模式(Automated Market Maker ,簡稱 AMM),通過恆定乘積做市商算法(Constant Product Market Maker,簡稱 CPMM)自動計算買賣價格。CPMM 是目前普及度較高的自動做市商算法,通過保持交易池中兩種資産乘積的恆定,以實現流動性供應併自動調整資産價格。在這個例子中,通過公式 50, 000 = 300, 000-( 100* 300, 000)/( 100+ 20)(假設沒有手續費)計算出 Alice 能夠買到的 USDT 的數量。

Alice 併沒有買到預期數量的 USDT,這是因爲她遭到了三明治攻擊。

三明治攻擊主要髮生在基於 AMM 的 DEXs 中。在三明治攻擊中,攻擊者在受害者的常規交易周圍放置兩筆交易以操縱資産價格併從受害者的損失中穫利。這兩筆交易分別是搶先交易和追單交易,常規交易之前的交易被稱爲搶先交易,常規交易之後的交易被稱爲追單交易。

那麽,Alice 遭到的三明治攻擊到底是如何進行的呢?如圖 3 所示。

圖 3 三明治攻擊流程

  1. 攻擊者的搶先交易:在 Alice 髮起的購買 USDT 的交易被執行之前,攻擊者也髮起了一筆購買 USDT 的交易(搶先交易),即以 5 ETH 交換 USDT。而且,攻擊者爲這筆交易支付給礦工的 gas 費高於 Alice,所以,攻擊者的這筆交易會先於 Alice 被執行。

  2. 攻擊者購買 USDT 的交易執行後,他從流動性池中拿到了大約 14, 286 USDT, 14, 286 ≈ 300, 000-( 100* 300, 000)/( 100+ 5)。流動性池的儲備從初始狀態的 100 ETH / 300, 000 USDT 變爲 105 ETH / 285, 714 USDT。但是,Alice 在提交交易到她的交易被執行這段時間內,併不知道流動性池的儲備狀態髮生了改變。

  3. 受害者的常規交易:隨後,Alice 的常規交易開始執行。

  4. Alice 購買 USDT 的交易被執行後,她從流動性池中拿到了 45, 714 USDT(根據恆定乘積函數, 45, 714 ≈ 285, 714-( 105* 285, 714)/( 105+ 20))。流動性的儲備狀態從 105 ETH / 285, 714 USDT 變爲 125 ETH / 240, 000 USDT。所以,Alice 用 20 ETH 本應該能買 50, 000 USDT,現在卻因爲攻擊者的交易使流動性池髮生的改變,隻能買 45, 714 USDT。Alice 虧損了大約 4286 USDT(4286 = 50, 000-45, 714 )。

  5. 攻擊者的追單交易:最後,攻擊者再次髮起一筆交易(追單交易),即以 14, 286 USDT 交換 ETH(這 14, 286 USDT 是剛才買的)。

  6. 攻擊者的追單交易被執行後,他從流動性池拿出了 7 ETH(定乘積函數, 7 ≈ 125-( 125* 240, 000)/( 240, 000+ 14, 286))。流動性池的儲備狀態從 125 ETH / 240, 000 USDT 變爲 118 ETH / 254, 286 USDT。所以,攻擊者一開始隻是花費了 5 ETH,最後卻拿到了 7 ETH,穫得了 2 ETH 的收益(2 = 7-5)。

在整個三明治攻擊的流程中,攻擊者總共髮起了兩筆交易,即搶先交易和追單交易。搶先交易使 Alice 虧損了大約 4286 USDT。搶先交易和追單交易的組合,使攻擊者盈利了 2 ETH。

在 DEXs 中,交易的公開性是導緻三明治攻擊出現的一個關鍵因素,尤其是在 AMM 協議中。這些協議將 DEXs 上的實時交易信息公之於衆,這種高透明度爲攻擊者提供了可能,他們可以通過觀察和分析交易流動,以便找尋機會進行三明治攻擊。

3.1.2 ZK 技術可以抵抗三明治攻擊

ZK 技術的應用可以顯著減少受到三明治攻擊的可能性。通過使用 ZK 技術隱藏交易量、資産種類、用戶或流動性池餘額、用戶身份、交易指令及其他協議相關信息,可以有效提升交易數據的隱私性。這樣一來,攻擊者難以穫得完整的交易信息,從而使得三明治攻擊的實施更加睏難。

此外,ZK 技術不隻能抵禦三明治攻擊,基於 ZK 的隱私交易還能增加對用戶行爲模型判斷的難度。任何第三方嘗試通過收集區塊鏈數據來分析賬戶歷史交易、推斷行爲模式、探尋活躍周期、交易頻率或偏好等,都將麵臨挑戰。這種分析被稱爲行爲模型推斷,不僅侵犯用戶隱私,還可能爲蜜罐攻擊和網絡釣魚詐騙鋪平道路。

3.2 基於 ZK 技術防止流動性操縱

流動性操縱和搶跑交易都是 DeFi 中的攻擊方式,這兩種攻擊方式都涉及到利用市場信息和交易速度來穫取利益,但是它們的具體策略和操作方式是不衕的。

搶跑交易是利用信息優勢,而流動性操縱是利用市場活動來誤導其他交易者。前者主要通過穫取併利用未公開的重要信息來穫利,而後者則是通過創造虛假的市場活躍度來誤導其他投資者,使他們做出不利的交易決策。

ZK 技術不僅可以在抵禦搶跑交易中髮揮關鍵作用,它也可以助力於防止流動性操縱。

3.2.1 案例分析:利用預言機進行流動性操縱

假設你正在一個繁忙的水果市場購買蘋果。市場的價格通常會根據供應和需求的變化而浮動。你通常會觀察一段時間的價格,然後根據平均價格來決定是否購買。現在想象有一個非常富有的買家進入市場,併且他非常想要購買蘋果。他開始大量購買蘋果,不在乎價格如何。這會導緻蘋果的價格短時間內暴漲。如果你仍然根據這個價格購買蘋果,你就可能會付出比實際價值更高的價格。

這個例子可以更好地理解 TWAP(Time-Weighted Average Price,時間加權平均價格)預言機的工作原理和流動性操縱的概念。根據平均價格決定購買蘋果的行爲類似於 TWAP 預言機的操作,富商大量購買蘋果導緻價格上漲則類似於流動性操縱。

TWAP 預言機通過計算一段時間內的平均交易價格確定資産價格。交易的時間越近,對平均價格的影響越大。如果有人短期內進行大量交易或用大量資金交易,可能大幅影響資産的平均價格,這就是流動性操縱。流動性操縱會人爲抬高或壓低資産價格,導緻價格信息不準確。如果有人想利用 TWAP 預言機故意提高資産價格,他可以短期內用大量資金購買該資産,使價格短暫上漲。如果在這個時間窗口內,資産價格出現了顯著的增加,TWAP 預言機可能會將這個較高的價格視爲資産價格。

對 TWAP 預言機實施流動性操縱會對 DeFi 協議産生重大影響,尤其是流動性較低的新興代幣。這些 DeFi 協議通常會根據資産的價格來做出財務決策,比如清算、借貸等。如果價格信息不準確或不可靠,就可能導緻錯誤的決策,從而給用戶帶來損失。因此,防止 TWAP 預言機受到流動性操縱是至關重要的。

3.2.2 ZK 技術可以抵抗流動性操縱

基於 ZK 技術可以抵抗 TWAP 預言機當中的流動性操縱。可以設計一個智能合約,使其依賴於 TWAP 預言機來穫取資産價格。如果攻擊者進行了流動性操縱行爲,從 TWAP 預言機穫取的價格可能會超出預設的可接受範圍。在這種情況下,該合約將會暫時停止其操作。然後,它將基於 ZK 技術重新計算併確認資産價格。

要想使用 ZK 技術計算資産價格,首先需要曏 TWAP 預言機添加一個包裝合約(wrapper contract)。該合約可以直接訪問 N 個價格報告,或者記録價格在任意間隔的 N 個檢查點值。一旦給定間隔內有 N 個數據點可用,就可以構建 ZK 證明來證明未排序價格數組的中位數(the median of the unsorted array of prices)。未排序價格數組被標記爲列曏量 x,長度是 N。以下是基於 ZK 技術計算資産價格的過程

  1. 證明可以用以下兩種方式中的任一種進行驗證,無論哪種情況,證明者都不能任意選擇一個價格數組作爲輸入。
  • 從合約存儲中檢索數組值,併將其作爲公開輸入用於鏈上驗證器;
  • 通過哈希函數逐步形成哈希鏈,將數組錶示爲單個哈希值,併在鏈上驗證器中使用該值。
  1. 存在一個 N x N 的矩陣 A(square matrix),當該矩陣乘以列曏量 x 時,産生列曏量 y,使得。A 是一個可逆的排列矩陣,但由於可能存在重覆的價格值,A 併不一定是唯一的,且 A 隻包含二進製值。

  2. y 中的值是有序的,即。再次説明,不能使用<,因爲可能存在重覆的價格值。

  3. 電路的公開輸出 m 是 y 的中值(median vaue)。證明顯示,其中 N 是電路編譯時的靜態值,必鬚爲奇數。

根據以上過程,基於 ZK 技術輸出了一個價格的中值 m,該值是防篡改的。中值 m 可以在一定程度上防止流動性操縱,爲了實現這一點,我們需要限製 y 的值,使得在每個區塊中,y 的值隻被插入一次,或者被插入的次數在可接受的範圍內。

3.3 ZK 技術爲借貸平颱賦能

如上所述,ZK 技術能夠抵禦 DEXs 中的搶跑交易和流動性操縱。那麽,我們是否可以進一步探究 ZK 技術在其他 DeFi 場景中的應用可能性呢?例如,在 DeFi 項目的重要組成部分——借貸,ZK 技術也能髮揮出關鍵的作用。

3.3.1 借貸的關鍵:如何評估借款人信用

在傳統借貸平颱上,貸款申請流程通常涵蓋申請、信用評估、貸款審批、貸款髮放及償還等五個步驟。其中,信用評估的環節尤爲重要,借款人必鬚證明其收入達標,併且具備還款能力。在評估過程中,平颱會深入調查借款人的信用歷史,包括收入、負債以及過去的還款記録等,以確保其有能力償還貸款。隻有在此基礎上,平颱才會考慮批準貸款申請。

然而,當你轉曏去 DeFi 借貸平颱,如 Aave 或 Compound ,情況就會有所不衕。大多數 DeFi 借貸平颱由於其去中心化的特性,沒有傳統銀行的 KYC(Know Your Customer,了解你的客戶)程序和風險評估環節,也無法通過聯合徵信社來調查借款人的信用狀況。在這種情況下,你可能會疑惑,我的信用將如何進行評估呢?

在 DeFi 借貸平颱上,你可以通過聲譽代幣證明來證明自己的信用水平。聲譽代幣是一種以區塊鏈技術爲基礎的信用體繫,通過數字代幣來錶徵和量化用戶的信譽。聲譽代幣的數量成爲評估用戶信譽的重要指標,代幣數量越多,意味著用戶的聲譽越好,信用等級也相應提高,從而在 DeFi 借貸平颱上有可能穫得更多的貸款額度。

然而,聲譽代幣的生成需要依賴用戶的交易歷史和財務信息,這可能會侵犯用戶的隱私權。

3.3.2 評估借款人信用:基於 ZK 技術的信譽代幣

ZK 技術可以保護用戶隱私。ZK 技術和聲譽代幣的結合,能夠在保護用戶隱私的衕時,維護和跟蹤其在網絡中的聲譽。

用戶可以借助 ZK 技術,在不公開歷史交易的情況下,生成信譽代幣。一方麵,用戶可以基於 ZK 技術來生成歷史交易的證明;另一方麵,由智能合約(通常被稱爲信譽代幣生成合約)對該證明進行驗證,驗證通過即可生成信譽代幣。

此外,在某些需要超額抵押的 DeFi 借貸平颱上,聲譽代幣可以降低抵押要求,從而解決過度擔保的問題,提高市場的流動性。且基於 ZK 技術的聲譽代幣的應用併不僅限於 DeFi 借貸平颱,它還可以廣泛應用於保險、醫療補助等領域。

四、總結與展望

本文探討了 ZK 技術在 DeFi 中實現隱私保護的多種應用場景,特別是在抵禦搶跑交易、流動性操縱和借貸方麵的潛力。在探索 DeFi 的過程中,我們麵臨著多項挑戰,特別是與隱私和安全相關的問題。DeFi 生態繫統中的隱私挑戰是一個關鍵議題,而 ZK 技術提供了獨特的解決方案,不僅能增強隱私保護,還能提高交易效率和安全性。如果您想要爲自己的 DApp 引入 ZK 技術,歡迎與Salus聯繫。

展望未來,ZK 技術可能會在更深入的 DeFi 領域得到應用,如流動性質押、衍生品協議、真實世界資産、保險等。Salus 專註於研究和探索 ZK 技術在 DeFi 以及其他以太坊應用層項目的應用。我們誠邀全球的區塊鏈研究者、技術開髮者以及web3領域的所有專業人士,與我們共衕努力,推動 ZK 技術的深度髮展和廣泛應用,以帶動 DeFi 乃至整個行業的髮展。

聲明:

  1. 本文轉載自[odaily],著作權歸屬原作者[LZ],如對轉載有異議,請聯繫Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得覆製、傳播或抄襲經翻譯文章。
Lancez-vous
Inscrivez-vous et obtenez un bon de
100$
!
Créer un compte