零知識證明(ZK)技術:或將在 DeFi 領域得到廣泛應用

BlockBeats
2023-12-25 23:19:47
收藏
零知識證明(ZK)技術:或將在 DeFi 領域得到廣泛應用

原文標題:《 零知識證明技術:點亮 DeFi 的新星》
原文作者:LZ

1. 引言

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

2. DeFi 中的隱私挑戰

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

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

我們還可以查看 0x3A4D…a6f2 地址下的所有交易記錄(如圖 2 所示),如果條件允許,還可以推測出此地址在現實世界中的真實身份。

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

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

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

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

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

3. 解鎖 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。所以,攻擊者一開始只是花費了 5ETH,最後卻拿到了 7ETH,獲得了 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 技術計算資產價格的過程:

證明可以用以下兩種方式中的任一種進行驗證,無論哪種情況,證明者都不能任意選擇一個價格數組作為輸入。

● 從合約存儲中檢索數組值,並將其作為公開輸入用於鏈上驗證器;

● 通過哈希函數逐步形成哈希鏈,將數組表示為單個哈希值,並在鏈上驗證器中使用該值。

2.存在一個 N x N 的矩陣 A(square matrix),當該矩陣乘以列向量 x 時,產生列向量 y,使得 y=Ax 。A 是一個可逆的排列矩陣,但由於可能存在重複的價格值,A 並不一定是唯一的,且 A 只包含二進制值。

  1. y 中的值是有序的,即 { yi≤yi+1 ∀ i ∈ 0…N-1 }。再次說明,不能使用\<,因為可能存在重複的價格值。

4.電路的公開輸出 m 是 y 的中值(median value)。證明顯示 y⌊N/2⌋=m ,其中 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 借貸平台,它還可以廣泛應用於保險、醫療補助等領域。

4. 總結與展望

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

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

鏈捕手ChainCatcher提醒,請廣大讀者理性看待區塊鏈,切實提高風險意識,警惕各類虛擬代幣發行與炒作,站內所有內容僅係市場信息或相關方觀點,不構成任何形式投資建議。如發現站內內容含敏感信息,可點擊“舉報”,我們會及時處理。
ChainCatcher 與創新者共建Web3世界