主流 DeFi 借貸協議架構演變及運作方式

2023-10-07 11:58 Web3大航海


借貸是基於以太坊的區塊鏈應用的基石。由於有數十億資產被借出,了解借貸的運作方式對於开發商、建築師或研究人員來說至關重要。就像編程範式的演變一樣,這些 DeFi 應用具有不同的架構設計,反映了從安全性到效率和用戶體驗等不斷變化的優先事項。

此文分析着眼於 MakerDAO、Compound、Aave、Euler 和 Yield 等借貸應用的架構。我們將重點介紹關鍵的創新和設計模式,它們是未來貸款應用开發的重要經驗教訓。

如果您是开發人員、架構師或安全研究人員,那么本文適合您。最後,您將輕松了解以太坊上的新借貸應用程序,快速而全面地掌握其架構。深入了解這些 DeFi 巨頭是如何從頭开始構建的。

DeFi 中的借貸

大多數 DeFi 借貸都是超額抵押的。如果用戶提供的抵押品價值高於貸款的價值,則用戶可以借入特定資產。與傳統貸款不同,許多此類貸款沒有定期還款或固定結束日期。從本質上講,你可以借,永遠不還。

然而,這裏有一個問題。

抵押品的價值必須始終超過貸款保證金的價值。

如果抵押品價值低於此值,貸款將被清算。在清算期間,其他人償還您的部分或全部貸款,並且他們會收到您的部分或全部抵押品作爲回報。

遵循這種財務結構的所有借款申請都需要相同的構建塊,然後可以通過多種方式進行排列:

  • 有一個金庫用於存儲用戶抵押品和借入資產

  • 跟蹤每個用戶的抵押品和債務的會計系統

  • 決定借款人利率的函數

  • 驗證貸款是否有足夠抵押的機制,通常涉及外部價格預言機

  • 抵押不足貸款的清算路徑

  • 記錄借貸總額和其他安全指標的風險管理系統,例如全球和每個用戶的借貸限額、最低抵押品和特定的超額抵押率

  • 供用戶添加和刪除抵押品、借貸和償還標的物的界面

MakerDAO 中的借貸流程。所有應用程序共享相同的步驟和功能。

借、貸可以被認爲是獨立的功能。在 DeFi 中,我們在大多數借貸應用程序中都發現了這兩種功能,但它們並不總是能夠很好地集成。在Compound、Aave和Euler中就是這樣。借款人和貸款人的利率是內部相關的;事實上,這就是使這些應用程序在最少的幹預下運行的原因。

另一方面,MakerDAO 和 Yield 是他們借給借款人的資產的發起者。

他們不要求用戶提供資產以便其他用戶可以借用。

本文將重點討論鏈上借款,並在很大程度上忽略貸款。由於抵押要求,借款要復雜得多,並且了解借款模式通常可以更好地理解整個協議。

MakerDAO 的架構演變

MakerDAO,在以太坊術系中是古老的,於 2019 年 11 月以當前形式推出,它持有 $4.95B 的抵押品。盡管其模塊化架構具有針對每個功能的不同合同和獨特的術語,但它仍然易於理解和驗證。

The treasury function in MakerDAO is managed by the Join contracts.MakerDAO 中的金庫功能由 Join合約 管理。

每個被批准作爲抵押資產的代幣都有一個單獨的合約。

相反,MakerDAO 不擁有任何借貸資產 DAI。

對應的,它只是根據需要鑄造和銷毀 DAI。

會計計算在 vat.sol 合約內處理。當抵押品進入或退出系統時,Joins 會更新此合約。如果用戶借款,他們會直接與 vat.sol 合約進行交互。此操作會更新用戶的債務余額,並允許他們在 DAI 加入中鑄造 DAI。爲了償還,用戶在 DAI Join 中燃燒 DAI。然後,此過程會更新 vat.sol,使用戶能夠結清貸款。

此外, vat.sol 合約充當風險管理引擎。它維持全球借貸限額,設定每個用戶的最低閾值,並監督抵押比率。當用戶的債務或抵押品余額發生變化時,vat.sol 合約會評估利率和現貨。

這些是指基於所使用的抵押品和現行 DAI 與抵押品價格比率的利率。有趣的是,這些值由其他 MakerDAO 合約輸入到 vat.sol 合約中,這種方法與大多數其他應用程序不同。

MakerDAO 在設計階段就將安全放在首位——當時gas成本等因素是次要的,用戶體驗是次要問題,競爭也可以忽略不計。因此,它可能會顯得古怪、使用成本高昂且難以駕馭。

然而,其管理的龐大資產和沒有重大違規行爲的運營記錄凸顯了其穩健的設計和執行。

重點:

  • 每個資產在最大利差金庫功能中都有自己的合約

  • 會計功能集中在單個合同中,該合同還記錄和執行風險參數,包括抵押檢查

  • 與其他應用程序不同,預言機更新合約,監督抵押

  • 價格和利率預言機利用不同的接口

  • 利率源自外部

  • 要借款,用戶必須與多個合約交互

Yield 協議的架構演變

Yield v1 作爲使用 YieldSpace 的固定利率的概念證明。該版本在 MakerDAO 之上構建了其抵押債務引擎。然而,Yield v1 使用起來既昂貴又難以通過新功能進行增強。

認識到 YieldSpace 的潛力後,我們迅速轉向开發 Yield v2。Yield v2 仍從 MakerDAO 中汲取靈感,但現已完全獨立,於 2021 年 10 月推出;Yield v2 優先考慮降低 Gas 成本和增強用戶體驗。

Yield v2 中的借貸流程深受 MakerDAO 影響

所有會計、風險管理和抵押檢查都合並到一份合約中:The Cauldron。效仿 MakerDAO 的方法,我們將財務功能分布在 Join 合約中,每個合約專用於一項特定資產。

我們改進了預言機集成,將價格和利率預言機合並到一個通用界面中。我們反轉了 MakerDAO 的預言機流程,以便 Cauldron合約 根據抵押檢查的需要查閱預言機。據我所知,這是除 MakerDAO 之外的所有地方的首選流程。

與 MakerDAO 方法的另一個重大偏差是我們引入了 Ladle。該合約充當用戶和 Yield 之間的唯一中介。它對財務和會計擁有廣泛的控制權,但作爲回報,它爲功能开發提供了巨大的靈活性。

總而言之,Yield v2 中的借貸工作原理如下:

  • 每項資產都有自己專用的treasury合約,確保treasury功能的最大分配。

  • 單一合約集中了會計職能。該合同還監督風險管理措施並執行抵押檢查。

  • 抵押功能咨詢預言機來確定價格和利率。

  • 價格和利率預言機共享統一的界面。

  • 利率是外部產生的。

  • 用戶可以通過向一份合約發出單個請求來借款。

Compound金融的架構演變

Compound 的第一個版本是概念驗證,表明可以在以太坊上建立貨幣市場。因此,其設計優先考慮簡單性。MoneyMarket.sol 合約封裝了所有功能,包括借貸。

Compound v1 中的借用過程。簡單而有效。

  • 財務、會計和風險管理任務(例如抵押檢查)被合並到一份合約中。

  • 該合約從預言機檢索價格,但根據資產利用率確定利率。

  • 用戶僅與該合約交互,盡管他們必須單獨調用來提供抵押品和借入資產。

Compound v2

2019 年 5 月,Compound v2 上线,點燃了流動性挖礦時代,激發了無數分叉。它也起到貨幣市場的作用,允許用戶借出和借入資產。

根據其白皮書和結構,很明顯,Compound v2 的主要目標是使用 ERC20 標准來表示借貸頭寸。這確保了可組合性,允許用戶借給Compound,然後在其他區塊鏈應用程序中使用這些計息頭寸。

有趣的是,白皮書並沒有強調Compound v2 將獎勵納入其智能合約中。鑑於這一遺漏,該功能的巨大影響可能無法預見。

Compound v2 中的借用過程。首次涉足代幣化借貸頭寸。

  • 每項資產都有自己的treasury合約,最大化treasury功能的分配。

  • 會計功能也是分布式的,每個 cToken 都會記錄用戶的抵押品和債務。

  • 單一合約、審計、記錄並執行風險管理參數,包括抵押檢查

  • 負責抵押檢查的合約參考價格的預言機和利率的 cToken。

  • 價格和利率預言機通過不同的接口運行。

  • 利率內部源自資產利用率。

  • 用戶必須與多個合約交互才能借款。

Compound v3

Compound v3 於 2022 年發布,採用了更爲保守的風險管理策略,將流動性隔離到每個可借資產的池中。該設計還揭示了對用戶友好性和gas成本的擔憂。

Compound v3 (Comet) 中的借用過程。回到基礎,回到安全。不過,有了更好的用戶體驗。

由於所需調用次數的減少,該系統對於开發人員和用戶來說都更加直觀。此外,單一合約設計通過最大限度地減少合約之間的調用來降低gas成本。隔離的貨幣市場是對基於預言機的攻擊的防御,這現在是一個主要的安全問題。

版本說明中提到的其他相關功能包括:

  • 徹底改造的風險管理和清算引擎。這種設計增強了資金安全性,同時對借款人更加友好。

  • 在整個市場上對個人抵押資產設置限制以降低風險。

  • 收入和借款的利率模型現在是分开的,治理對經濟政策具有完全控制權。

有趣的是,Compound v3 通過使用單個合約來處理每個可借資產的所有功能,從而反映了Compound v1 的架構。其他值得注意的功能包括:

  • 只能借出資產;不能抵押資產

  • 在Compound v3 中,抵押品不會產生回報

禁止借用抵押品提高了抵押品存入者的安全性。這降低了治理錯誤或故意攻擊危及抵押品的可能性。

消除所提供抵押品的回報可能是由於Compound 設法在 v2 中積累了大量流動性的結果。我的直覺是,在Compound v2 中,借貸限額要么低於或不高於用戶借給應用程序的資產。

假設他們將管理 v3 類似水平的流動性,禁止借出抵押品可以使應用程序安全,這是 v3 的核心目標之一。從架構的角度來看:

  • 每個貨幣市場都是一份包含財務、會計和風險管理的單獨合同

  • 每個貨幣市場都保留可借資產及其所有批准的抵押資產代幣,從而導致資產分散在整個應用程序中

  • 價格反饋是唯一的外部輸入;借貸利率由內部產生

  • 供給/提現/借用/還款等傳統功能得到巧妙整合。現在,從貨幣市場提取可借資產意味着借款,而提供可借資產則意味着根據用戶的債務進行償還或貸款

  • 集成了路由合約,允許在一次調用中執行多個操作

Aave 的架構演變

Aave v1 於 2019 年 10 月推出,接替 ETHLend。Aave v1 引入了共享流動性池,而不是 ETHLend 的點對點方法。

Aave v1 中的借用過程。匯集流動性意味着財務和計算效率。

與 Yield v2 一樣,路由器合約也包含業務邏輯。LendingPoolCore 實現了會計、風險管理和財務功能。將資金集中在一個合約中是與Compound v2 的一個區別點。

將抵押檢查留在自己的合約中(從路由器而不是會計合約調用)的決定似乎很弱,但它可能適合目的,因爲 Aave v2 在 v1 發布兩年後才發布

  • LendingPoolCore 合約處理財務和會計

  • LendingPoolDataProvider 管理抵押檢查並與預言機交互

  • LendingPool作爲用戶入口並實現業務邏輯

  • 借貸利率由內部決定,僅依賴於價格反饋

Aave v2

Aave v2 於 2021 年 12 月發布。雖然它保留了與 Aave v1 類似的功能,但與 Aave v1 和 Compound v2 相比,它引入了改進且更簡單的架構。在此版本中,Aave 還引入了 aToken(類似於Compound 的 cToken)和 vToken,它們代表代幣化債務。

Aave v2 具有非常幹淨的架構,完全token化。

爲了簡單起見,省略了 Aave v1 中使用有限的某些功能。Aave v1 中的問題(例如應計利息的復雜表示)已在 Aave v2 中得到解決。

  • LendingPool 合約整合了全球會計和風險管理功能,例如抵押檢查。它作爲用戶的主要訪問點

  • aToken 表示抵押品,類似於借貸頭寸。用戶的抵押品通過其持有的 aToken 體現,金庫功能分布在所有 aToken 上

  • vToken 用於表示債務頭寸。用戶的債務由他們持有的 vToken 表示

Aave v3

Aave v3 於 2023 年 1 月發布,具有多鏈支持和其他功能。這些添加不會改變核心架構。此次更新還改進了風險管理和天然氣效率。

盡管有許多進步,但就本研究而言,Aave v3 與 Aave v2 並沒有本質上的不同。事實上,這可能表明 Aave v2 的架構在 2023 年仍然保持穩健。

Euler 的架構演變

Euler 於 2022 年 12 月推出,旨在爲貨幣市場提供無需許可的功能和最少的治理。

其設計的一個標志是鑽石般的圖案。單個合約擁有應用程序的所有存儲空間。該存儲可以通過不同的代理進行訪問,每個代理管理系統的不同概念元素。

盡管一份合約存儲了所有資產、會計和風險管理數據,但仍然有用於抵押品和借貸的 eToken,以及用於債務的 dToken,類似於 Aave v2。然而,這些代幣合約僅僅是中央存儲合約的視圖。

  • Storage 合約管理會計變量。

  • BaseLogic 合約充當金庫。

  • RiskManager 合約監督風險管理變量和功能,包括抵押檢查。

對代碼的分析表明,最小的gas成本是首要任務,從而導致整體設計消除了合約間調用的需要。通過嚴格的測試和審核確保了安全性。只有邏輯分布在各個模塊中,作爲存儲合約的實現,存儲合約主要充當代理合約。這種統一的設計還支持輕松升級。如果不需要更改storage,則可以快速更換模塊以修改或引入功能。

Euler 在發布 15 個月後以及升級引入該漏洞後 6 個月後遭到黑客攻擊。我不認爲整體架構在資產流失中發揮了作用;相反,對代碼更新的監督不夠。

Conclusion 結論

MakerDAO、Compound 和 Aave 等早期以太坊應用程序展示了以太坊超額抵押借貸的潛力。一旦這些概念驗證被證明是成功的,重點就轉移到引入一系列新功能以佔領市場份額。Compound 和 Aave 的後續版本引入了流動性挖礦、可組合性和集合流動性,這些技術在牛市條件下尤其蓬勃發展。

一個重大發展是Compound v2引入了代幣化借貸頭寸,這使得這些頭寸能夠被其他應用程序識別爲標准資產。Aave v2 和 Euler 通過實施代幣化債務頭寸更進一步,其更廣泛的效用仍然是一個爭論的話題。

高 Gas 成本成爲牛市期間的主要問題,促使用戶體驗發生變化,如 Yield v2、Aave v2 和 Euler 所示。路由器合約和整體實施有助於降低用戶的交易成本。然而,這是以更復雜、因此風險更大的代碼爲代價的。

Compound v3 似乎开創了先例,將安全性置於財務效率之上。它偏離了傳統的流動性池模型,以更好地防範潛在的黑客攻擊。L2 網絡的興起(其中 Gas 成本變得越來越可以忽略不計)可能會影響未來抵押借款應用程序的設計。

在本文中,我全面概述了以太坊上的關鍵抵押借款應用程序。我用來分析每個申請的方法也可以用於快速掌握其他抵押借款申請的復雜性。在开發區塊鏈借貸應用程序時,請始終考慮資產的存儲、會計記錄的放置以及風險和抵押品評估的方法。當您考慮這些注意事項時,請利用以前應用程序的歷史記錄以及本概述中的見解來爲您的決策提供信息。

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

標題:主流 DeFi 借貸協議架構演變及運作方式

地址:https://www.sgitmedia.com/article/12355.html

相關閱讀: