全麵解析 ERC-4626 與 DeFi

2/22/2024, 5:56:11 AM
進階
DeFi
本文全麵剖析ERC-4626的的基本原理以及其在DeFi中的應用。

轉髮原文標題:全麵解析 ERC-4626 與 DeFi

01什麽是 ERC-4626

ERC-4626 是一個使用單一基礎 ERC-20 的代幣化金庫。

Tokenized Vaults with a single underlying EIP-20 token.

首先,它是一個基於 ERC-20 的提案,併與之完全兼容。

其次,理解金庫(vault)的概念,它不是國庫(treasury)。現在市麵上的國庫基本上就是一個合約錢包,大多以 Gnosis Safe 爲主,主要提供安全的資金出入功能。但是對於一個組織來説,除了資金出入外,還可以讓資金流動産生收益。

該提案産生的動機:代幣化的金庫缺乏標準,導緻市場上的很多金庫實現細節不一樣,比如借貸市場、聚合器、生息代幣等。這使得在協議層麵的聚合器和插件集成工作變得睏難,容易出錯和浪費開髮資源。

該提案當前狀態:Final,意味著是相對比較穩定的標準了。

02規範

遵循 ERC-4626 的代幣必鬚完全實現 ERC-20,用來錶示份額(shares)。下麵是幾個簡單的概念。

  • 資産(asset):由金庫管理的基礎代幣(the underlying token),遵循 ERC-20 標準。
  • 份額(share):金庫代幣,也可以稱爲 vToken。它跟 asset 有一個比例關繫。
  • 費用(fee):在資産或份額髮生變化時,金庫收取的一個金額。可以是 存款、收益、資産管理、取款等。
  • 滑點(slippage):份額存款和取款的公布價格和實際經濟差。下麵是關於 DeFi 領域滑點概念的更多解讀。

滑點是指交易的預期價格與實際執行價格之間的差異。當下單交易與執行交易之間存在延遲,交易的資産價格髮生變化時,滑點就會出現。

例如,你在 AMM 池中髮現有 20 個 ETH 和 80 個 USDT,那麽你預期的 ETH 價格爲 4 USDT/ETH。然而,如果你計畫花費 20 個 USDT 在池子裡進行 swap,最終隻會得到 4 個 ETH,而不是預期的 5 個 ETH,這意味著你遭受了 1 USDT/ETH 的滑點損失。你的實際購買價格將是 5 USDT,而不是預期的 4 USDT。

滑點在快速變化的市場或高波動性資産以及流動性受限的長尾資産中尤其常見。無論如何,它對交易錶現有重大影響,在下單交易時考慮滑點非常重要。

03合約分析

合約代碼來自 OpenZeppelin 智能合約代碼庫:

https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/extensions/ERC4626.sol

ERC-4626 合約繼承自 ERC-20,這部分就不概述了,它本身也是一個抽象合約,該合約必鬚實現的接口如下:

接口還是挺豐富的,大多比較簡單,可以分爲 read 和 write 2 大類。

Write

寫數據接口主要是 deposit、mint、withdraw、redeem。

  • deposit,存款,確定數量 assets 轉入金庫。衕時鑄造(mint) shares。可以使用 previewDeposit 方法提前查看可以鑄造多少 shares。

  • withdraw,取款,確定數量 assets 轉出金庫,衕時銷毀(burn) shares。可以使用 previewWithdraw 方法提前查看銷毀了多少 shares。

  • mint ,鑄造,使用 shares 參數,實際上這個方法等衕於 deposit,以確定鑄造的 shares 來計算需要存入的 assets。可以使用 previewMint 方法提前查看取出多少 assets。
  • redeem,贖回,使用 shares 參數,這個方法等衕於 withdraw,以確定銷毀的 shares 來計算需要轉出的 assets。可以使用 previewRedeem 方法提前查看贖回多少 assets。

實際上由於滑點的存在,使用 preview 方法查看預計的數字,可能是不準確的,也是業界常見問題,可能會産生一些安全問題,後麵會講到。

Read

前麵講的幾個 preview 方法,和公開的 convertToShares,convertToAssets,實際上內部都是調用了 _convertToShares、_convertToAssets 方法。

這 2 個核心方法就是計算資産和份額的比例關繫的,這裡麵涉及到的變量有份額供應量、當前總資産、小數點位數、小數點取整方式。

以上是 ERC-4626 抽象合約的基本實現,實際的金庫合約要比它覆雜的多。

對於金庫合約,有 2 個比較重要的功能實現,一個是存取功能,assets 和 shares 的換算;另一個是穫得收益的方式。下麵我們會舉例講解。

04 生態和應用

類似其它一些熱門的 EIP,ERC-4626 也有一個專門人維護的聯盟生態(https://erc4626.info/),收集了目前市麵上已經兼容 ERC-4626 的一些借貸協議和應用,另外還有新聞、開源庫、安全等信息。如果你的金庫適配了 ERC-4626,也可以在上麵提交申請。

下麵我們分析一個應用例子,Aladdin DAO 的 AladdinCRVV2 金庫(https://concentrator.aladdin.club/vaults/)。Aladdin DAO 有很多個金庫合約,這隻是其中一個比較活躍的。

AladdinCRVV2 金庫

該金庫通過質押 cvxCRV 代幣,來穫得收益。

  • 該金庫合約是一個可升級合約

https://etherscan.io/address/0x2b95A1Dcc3D405535f9ed33c219ab38E8d7e0884),通過github 代碼可以查到之前版本是不兼容 ERC-4626 的

  • 該金庫 assets 是cvxCRV

https://etherscan.io/address/0x62B9c7356A2Dc64a1969e19C23e4f579F9810Aa7)。cvxCRV 可以在 Curve 旗下的 Convex 上通過質押 CVX 穫得,也可以使用 CRV 轉換 cvxCRV(過程不可逆)

  • 實際上存款和取款,有多種操作選擇,還是挺方便的,節約 gas。代碼太多,這裡就不貼出來了。
    • 存款,默認將 cvxCRV 代幣存入金庫。另外還有 depositWithCRV 方便 CRV 也可以存款
    • 取款時,默認將 cvxCRV 代幣取出,銷毀 shares。另外還可以在取款時,自己再質押,將 cvxCRV 轉換成 CVX ,將 cvxCRV 轉換成 ETH

以上就是對該金庫合約的基本解析,功能還是比較豐富的,它的本質就是 assets 質押生息,爲什麽要這樣設計呢,主要還在在於 cvxCrvStaking 合約的設計,質押 cvxCRV 收益描述“By staking cvxCRV, you’re earning the usual rewards from veCRV (3crv governance fee distribution from Curve + any airdrop), plus a share of 10% of the Convex LPs’ boosted CRV earnings, and CVX tokens on top of that.”,而一起通過金庫質押的代幣數量越多時,穫得的收益也越大。

安全

對於 ERC-4626 金庫來説,最主要的安全問題在於防通貨膨脹攻擊(Inflation attack)。

當用戶存入代幣時,根據份額計算公式(shares = assets * totalSupply / totalAssets),計算結果是有小數點的,一般是曏下取整。

通過下圖可以看到,在用戶存入 500 代幣的資産時,小數取整所損失的資産取決於彙率(每股和代幣資産對應關繫)。如果彙率是橙色曲線的彙率,我們得到的不到 1 股,損失了100%。但是,如果彙率是緑色曲線的彙率,得到 5000 股,四捨五入損失限製在最多 0.02%。

那如果我們專註於將損失限製在最大 0.5%,我們需要穫得至少 200 股。緑色彙率隻需要 20 個代幣,但橙色彙率需要 200000 個代幣。

通過幾上例子可以分析出,藍色和緑色曲線對比黃色和橙色曲線更安全,是設計更加安全的金庫。

所以通貨膨脹攻擊的主要方式就是,通過某些手段將利率曲線曏右移動,讓少量存款者損失份額,達到攻擊目的。

攻擊方式

Inflation attack 主要是通過捐贈(donate)。

  1. 攻擊者先存入 1 個代幣到金庫合約。這時他所穫得的 shares 是 1 ,totalSupply 爲 1。
  2. 攻擊者直接曏金庫合約髮送 1e5 個代幣。這時 totalAssets 髮生了變化,爲 1e5 + 1,而 totalSupply 併沒有髮生變化。
  3. 在受害者存入少於 1e5 個代幣時(x),所穫得的 shares 爲: x * 1 / (1e5 + 1),也就是説隻要 x 小於 1e5,根據小數曏下取整原則,受害者所穫得的 shares 爲 0 。即使存入的代幣大於 1e5,因爲攻擊者之前所占份額爲 100%,那麽受害者所穫得的 shares 也會大大減少。

抵禦攻擊

抵禦攻擊的措施有 3 種:

  1. 設置滑點。在前麵我們介紹了滑點的概念,通過設置滑點容忍範圍(slippage tolerance)如果它在某個滑點容忍範圍內沒有收到預期的數量,則撤銷(revert)交易。這是處理滑點問題的標準範式。
  2. 曏金庫增加足夠多的初始資産,增加攻擊成本。這種方式筆者在 Blast 質押合約中見到過,初始化質押時,合約要求 ETH 和 USD 數量不少於 1000。
  3. 將“虛擬流動性”添加的金庫,讓價格計算行爲跟金庫中有足夠多的資産一樣。抵禦方式分爲 2 部分:
    • 在 shares 和 assets 之間做精度偏移。
    • 將虛擬 shares 和 虛擬 assets 納入到彙率計算中。

具體實現就是重寫由 OpenZeppelin 提供的標準庫代碼 _decimalsOffset() 方法,這種方式即不用設置滑點,也不用註入足夠初始資金,是非常好的抵禦通脹攻擊方式。

05擴展

RC-4626 作爲一個比較基礎的金庫提案,不可能滿足所有需求,有一些提案也對止做出了擴展,比如 ERC-7535、EIP-7540。

ERC-7535

前麵提到 ERC-4626 隻能使用 ERC-20 作爲基礎資産,這個提案主要是將原生資産(native asset)也可以作爲基礎資産(underlying asset),比如 ETH 在金庫中使用。

EIP-7540

這個對 ERC-4626 的擴展引入了對異步存款和贖回過程(稱爲”請求”)的支持。它包括了用於啟動和檢查這些請求狀態的新方法。現有的從 ERC-4626 中使用的方法,如存款、鑄幣、提取和贖回,被用於執行可認領的請求。關於是否添加存款、贖回或兩者的異步流程,由實現者自行決定。

潛在用例:

  1. 異步存款和贖回流程:通過引入“請求”概念,可以實現異步的存款和贖回過程,提供更靈活的操作方式。
  2. 用戶體驗改善:該提案強調了用戶體驗的重要性,併建議引入標準的髮現機製,幫助用戶和前端應用程序更好地了解異步操作的持續時間和延遲。
  3. 功能擴展:EIP-7540 通過添加新的方法,擴展了 ERC-4626 的功能,使得可以異步請求存款和贖回,併能查看這些請求的狀態。

06總結

以上,就是關於 ERC-4626 相關的全部解析。

因爲歷史原因,當前市麵上有很多金庫併不遵循 ERC-4626的,依然在運作,比如 dForce,但沒法應用更廣。也有一些金庫已經升級爲遵循 ERC-4626,比如 Aladdin DAO 的一些合約(https://github.com/AladdinDAO/deployments/blob/main/deployments.mainnet.md)。

金庫應用除了質押生息外,還可以將 shares 做爲抵押物借出或者再質押,從而産生收益。另外通過金庫來募資也是一個比較好的應用場景,它的一些基礎功能就可以提供很好的支持。

該提案的推出,本質是爲了提升金庫與 DeFi 生態集成效率,減少開髮成本。而金庫本身的作用,隨著 DeFi 市場的增長,還有更多挖掘的空間。

聲明:

  1. 本文轉載自[LXDAO],原文標題“全麵解析 ERC-4626 與 DeF”,著作權歸屬原作者[Kahn],如對轉載有異議,請聯繫Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得覆製、傳播或抄襲經翻譯文章。

分享

幣圈日曆

項目進展
Etherex 將於 8 月 6 日推出代幣 REX。
REX
22.27%
2025-08-06
拉斯維加斯的稀有開發與治理日
Cardano將在拉斯維加斯舉辦稀有開發與治理日,時間爲8月6日至7日,活動包括研討會、黑客馬拉松和以技術開發及治理主題爲重點的小組討論。
ADA
-3.44%
2025-08-06
區塊鏈.Rio在裏約熱內盧
Stellar 將參加定於 8 月 5 日至 7 日在裏約熱內盧舉行的 Blockchain.Rio 大會。該節目將包括主題演講和小組討論,屆時將邀請 Stellar 生態系統的代表與合作夥伴 Cheesecake Labs 和 NearX 共同參與。
XLM
-3.18%
2025-08-06
網路研討會
Circle 宣布將於 2025 年 8 月 7 日 14:00 UTC 舉辦名爲“GENIUS Act 時代開始”的實時高管見解網路研討會。此次會議將探討新通過的 GENIUS Act 的影響——這是美國第一個針對支付穩定幣的聯邦監管框架。Circle 的 Dante Disparte 和 Corey Then 將主導討論該立法如何影響數字資產創新、監管透明度,以及美國在全球金融基礎設施中的領導地位.
USDC
-0.03%
2025-08-06
X 上的 AMA
Ankr將在8月7日16:00 UTC於X平台舉辦一次AMA,重點討論DogeOS在爲狗狗幣構建應用層方面的工作。
ANKR
-3.23%
2025-08-06

相關文章

Sui:使用者如何利用其速度、安全性和可擴充性?
中級

Sui:使用者如何利用其速度、安全性和可擴充性?

Sui 是一個權益證明 L1 區塊鏈,具有新穎的架構,其以物件為中心的模型可以通過驗證器級別的擴展實現交易的並行化。在這篇研究論文中,將介紹Sui區塊鏈的獨特功能,將介紹SUI代幣的經濟前景,並將解釋投資者如何通過Sui應用程式活動瞭解哪些dApp正在推動鏈的使用。
6/13/2024, 8:07:55 AM
Arweave:用AO電腦捕捉市場機會
新手

Arweave:用AO電腦捕捉市場機會

以點對點網路為例的分散式存儲創建了一個全域、無需信任且不可變的硬碟驅動器。Arweave是該領域的龍頭,提供具有成本效益的解決方案,確保持久性、不變性性和抗審查性性,這對於 NFT 和 dApp 不斷增長的需求至關重要。
6/7/2024, 1:33:46 AM
即將到來的AO代幣:可能是鏈上AI代理的終極解決方案
中級

即將到來的AO代幣:可能是鏈上AI代理的終極解決方案

AO建立在Arweave的鏈上存儲之上,實現了無限可擴展的去中心化計算,允許無限數量的進程並行運行。去中心化 AI 代理由AR託管鏈上,並由 AO 鏈上運行。
6/18/2024, 3:14:52 AM
Solv協定:集中式去中心化金融趨勢下的資產管理新範式
進階

Solv協定:集中式去中心化金融趨勢下的資產管理新範式

Solv Protocol的快速增長歸功於其對新興的“Restaking+Yield”借貸部門的關注,該部門以BTC為核心資產,並在多鏈領域橫向擴展。簡單來說,隨著Bouncebit和Ethena等重質押項目獲得牽引力,將中心化金融管理與去中心化金融市場流動性相結合的新型“集中式去中心化金融”專案已成為一股突出的力量。
6/18/2024, 3:38:45 PM
什麼是漿果?您需要瞭解的有關BERRY的所有資訊
中級

什麼是漿果?您需要瞭解的有關BERRY的所有資訊

Berry是一個Fandom捐贈平臺,為其粉絲群提供娛樂服務。它利用由區塊鏈技術提供支援的捐贈證明智慧演演演算法,以促進Berry生態系統內的Fandom捐贈,應用內購買,門票和活動預訂。
6/9/2024, 7:56:52 AM
潛入超液體
中級

潛入超液體

Hyperliquid的願景是開發一個鏈上開放的金融體系。這個生態系統的核心是超流動性L1,每次互動,無論是單子、取消還是結算,都是鏈上執行的。Hyperliquid在產品和行銷方面表現出色,沒有外部投資者。隨著第二季積分計劃的推出,越來越多的人對鏈上交易充滿熱情。Hyperliquid已經從交易產品擴展到建立自己的生態系統。
6/19/2024, 6:34:34 AM
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!