ERC-4626: Tokenized Vaults

picture

2023-06-09

ERC-4626: Tokenized Vaults

ERC-4626: Tokenized Vaults

reference:

官方資料:


介紹

ERC-4626 —— 代幣化資金庫(tokenized vault)標準

ERC-4626的概念,最初是由Fei 協議創始人Joey Santoro 等5 位作者於2021年12月22日提出的。

ERC-4626是一個優化和統一收益資金庫技術參數的標準,ERC-4626 合約標準擴展了ERC-20 代幣標準。它為代表單個底層 ERC-20 代幣份額的代幣化收益資金庫提供標準 API。ERC-4626 還概述了使用 ERC-20 的代幣化資金庫(tokenized vault)的可選擴展,提供存入、提取代幣和讀取餘額的基本功能。

顧名思義,ERC-4626代幣化資金庫(tokenized vault)標準用於標準化資金庫流程。它還增加了在智能合約中鎖定代幣以包裝或鑄造新代幣的安全係數,並允許更輕鬆地創建這些具有收益率的代幣。隨著越來越多與EVM兼容的區塊鏈採用這一新標準,包裝過程的成本、時間和精力都將得到較大改善。

原先代幣化資金庫(tokenized vault)缺乏標準化,這包括收益聚合器(例如Yearn、Rari 和Idle)、借貸市場(例如Compound, Aave和Fuse)和原生收益代幣(例如xSUSHI )等各種例子通常在實施時略有不同,這使得對於需要遵守多個標準的協議來說,聚合器或插件層的集成變得困難,並迫使每個協議實現自己的適配器,這容易出錯並浪費開發資源。

該標準的好處不僅限於最終用戶。由於ERC-4626代幣化資金庫(tokenized vault)標准允許開發人員為作為資金庫過程一部分的代幣創建共享接口,開發人員也將受益。這大大減少了完成一個項目所需的時間。它還有助於使代幣的整合更加靈活和方便。根據Fei協議的創始人Joey Santoro的說法,ERC-4626與“DeFi Lego”類似,因為它與其他技術具有交叉兼容性,且易於實現。

同時有助於安全性,因為每個人基本上都按照相同的標準編程,審計人知道該關注什麼。

什麼是代幣化資金庫?

簡單來說,Vaults是智能合約,用戶可以將代幣存入其中,然後運行預定的策略來投資這些存款。

當你存入代幣時,你會收到一個 「資金庫代幣」。當你持續保持代幣鎖定時,這些協議會累積更多的 「資金庫代幣」。當你決定取回代幣時,你只需交換 「資金庫代幣」 即可獲得原始代幣和獎勵。

資金庫的優勢是它們允許人們投資於復雜的戰略,而不必自己進行所有的交易。然而,如果 Vault 不兼容 ERC-4626,那麼 DeFi 就會失敗,因為流動性完全被束縛了。而 ERC-4626 完美解決了這個問題。可以說 ERC-4626為Vault代幣帶來了流動性

什麼是 ERC-4626 token?

ERC-4626 token 在EIP-4626中有完整描述。

ERC-4626 的工作原理:

市場上幾乎所有可用的代幣都符合ERC-20標準。用外行的話說,這意味著代幣可以在以太坊區塊鏈上自由轉移。ERC-4626為以太坊區塊鏈增加了更多靈活性。雖然這一概念非常簡單,但它將有助於推動DeFi行業的進一步發展。

必須注意的是,ERC-4626只是一個接口。它擴展了現有的ERC-20代幣,這意味著參與代幣也必須符合ERC-20標準。用戶能以任何方式實現ERC-4626,協議將按照接口與建置進行交互。簡而言之,標準化涉及以下幾點:

  • 用戶如何從資金庫存款和取款
  • 計算資金庫代幣和流程中涉及的其他代幣的存款和取款的函數
  • 通過接口確定基礎代幣
  • 與資金庫交互相關的事宜

Vault介面的設計旨在為整合者提供一個功能齊全但極簡的介面。存入代幣的會計和分配等詳細信息故意沒有指定,因為Vaults預計在使用之前在鏈上被視為黑盒並在鏈外進行檢查。

EIP-20 是強制執行的,因為代幣批准和余額計算等實施細節直接轉移到股份會計中。除了 EIP-20 是強制執行的,因為像代幣批准和餘額計算等實現細節直接傳遞到份額會計中。這種標準化使得Vaults立即與所有EIP-20用例兼容,除了EIP-4626。

為了對稱性和功能完整性,mint方法被包括在內。大多數基於份額的Vaults的當前用例並不賦予份額特殊含義,以致於用戶會優化特定數量的份額(mint)而不是特定數量的基礎資產(deposit)。然而,可以很容易地想像出未來的Vault策略,它們將具有獨特且獨立有用的份額表示。

convertTo函數作為粗略估計,不考慮提現費用等操作特定細節。它們被包括在前端和需要份額或資產的平均值而不是可能包括滑點或其他費用的準確值的應用程序中。對於需要試圖考慮費用和滑點的準確值的應用程序,我們已經包括了相應的預覽函數以配合每個可變函數。這些函數不能考慮存款或提現限制,以確保它們易於組合,max函數就是為此目的提供的。

定義:

  • 資產(asset):由Vault管理的基礎代幣。單位由相應的EIP-20合約定義。
  • 份額(share):Vault的代幣。在鑄造/存款/提款/贖回過程中與基礎資產交換的比率(由Vault定義)。
  • 費用(fee):Vault向用戶收取的資產或份額數量。費用可以存在於存款、收益、資產管理規模、提款或Vault指定的其他任何項目中。
  • 滑點(slippage):廣告份額價格與存入或提取Vault時的實際經濟情況之間的任何差異,這些差異並不包括在費用中。

方法

存款

當用戶將資金存入Vault時,存款功能觸發智能合約,為存款者鑄造相應數量的份額(shares)。作為一個事件,每次存款時都必須觸發智能合約。

function deposit(address _to, uint256 _value) public returns (uint256 _shares)

通過此功能,我們已經指示合約將一些代幣存入Vault並將份額的所有權交給調用者。你可以以同樣的方式撰寫提款功能。

提款

提款功能幫助持有人燒毀份額以換取資產。當Vault發生提款時,必須觸發提款事件。

event Deposit(address indexed _from, address indexed _to, uint256 _value)

該事件中的address indexed _from代表同意將代幣存入Vault的用戶,而可以提取存入的代幣的地址是address indexed _to。

資產和總資產

在資產功能中應使用Vault代幣的地址。智能合約中的所有底層資產總額應在totalAssets下聲明。

轉換為份額和轉換為資產 根據ERC-4626標準,有兩個轉換功能:convertToShares和convertToAssets。

當你需要將資產轉換為份額時,應該調用convertToShares函數,因為它包含了要釋放的份額數量。

相反,convertToAssets函數則相反地將份額轉換為資產。

function convertToAssets(uint256 shares) public view virtual override returns (uint256 assets) {
  return _convertToAssets(shares, Math.Rounding.Down);
}

function totalAssets() public view virtual override returns (uint256) {
  return _asset.balanceOf(address(this));
}

鑄造

當有存款時,鑄造功能為接收者調用。maxMint是在Vault中可以為用戶或接收者創建的份額的總數量。作為開發者,你應該設置這個值。

function mint(uint256 shares, address receiver) public virtual override returns (uint256) {
  require(shares <= maxMint(receiver), "ERC20TokenizedVault: mint more than max");
}

贖回

贖回功能從所有者(msg.sender)燒毀一些份額並將資產發送給接收者。如果由於某種原因份額無法贖回,則必須回滾(revert)贖回功能。

function redeem(address _to, uint256 _shares) public returns

實際使用 erc4626 的三個專案

1.Rodeo Finance

Rodeo 的Vault 允許你投資於不同的LP 收益策略,甚至更進一步允許用戶進行保證金貸款,從而為你贏得更高的收益。

Rodeo 有兩點與眾不同:首先,為了投資他們的策略,你只需要存入USDC,Rodeo 會拿走所有USDC,購買策略所需的任何LP 代幣,並為你進行投資。這為你節省了時間和金錢,而這些時間和金錢將花在購買代幣並將其存入流動性池的繁瑣過程中。相反,你所需要的只是一些USDC。

其次,當然是他們所有的Vault 都使用ERC-4626 標準,這意味著很容易合併新的Vault。例如,由於槓桿的風險,Rodeo 上可能會出現允許用戶對沖其頭寸以避免清算的Vault。

2: FactorDAO

Factor 是一個相對較新的項目,旨在成為Arbitrum 的流動性中心。當然,他們計劃這樣做的方式是讓創建Vault 變得更容易,他們的策略圍繞著ERC-4626 標準。

Factor 有一個可以創建各種結構化產品的一站式商店,包括收益率策略、衍生品、LP 等。基本上,如果你想創建或投資一個定制的資產管理策略,你可以考慮它。

3: Fuji Finance

是一個跨鏈貨幣市場聚合器,目前它已經集成在以太坊、Polygon、Fantom、Arbitrum 和Optimism 上。而在他們即將推出的V2 版本中,他們將把ERC-4626 提升到新的水平。

使用Connext 的跨鏈服務,Fuji 將啟用跨鏈池,你猜對了,就是ERC-4626 標準。通過ERC-4626,可以讓用戶在一次交易中能在不同鏈上借出和借入不同資產。

這也在更廣泛的DeFi 領域進一步提高了效率;有了Fuji 的新產品,流動性將能夠利用不同鏈上的較高貸款利率、較低的借款利率、流動性挖礦活動等。它還有助於在不同的鏈上分散流動性;例如,如果一條較新的鏈與Fuji 集成,他們可以激勵Fuji 用戶在他們的鏈上借貸,同時在以太坊等更成熟和流動性更強的鏈上借貸。從本質上講,這裡有潛力將流動性帶到鏈上。

emily_avatar

Emily Liang

Software Engineer

A weight training enthusiast who can effortlessly deadlift seventy kilograms shifted to road cycling and became a carb-loving chubby person. Now, she plans to restructure her training routine to regain the lost muscle mass.

Check more from this author

Share to

Back