以太坊上的借貸架構演變:MakerDAO、Yield、Aave、Compound 和 Euler 之間的比較

中級Dec 31, 2023
本文分析了不衕協議的借貸機製和架構設計,併探討了它們的優缺點以及此行業麵臨的挑戰。
以太坊上的借貸架構演變:MakerDAO、Yield、Aave、Compound 和 Euler 之間的比較

借貸是基於以太坊的區塊鏈應用的基石。由於有數十億資産被借出,了解借貸的運作方式對於開髮商、建築師或研究人員來説至關重要。

就像編程範式的演變一樣,這些 DeFi 應用程序也髮展演變了不衕的架構設計,反映了它們的註重點從安全性到效率和用戶體驗等不斷變化。

本文的分析著眼於 MakerDAO、Compound、Aave、Euler 和 Yield 等應用程序的架構。我們將重點介紹重要的創新和設計模式,它們將爲未來貸款應用程序開髮提供重要的經驗。

如果您是開髮人員、架構師或安全研究人員,那麽您適合閲讀本文內容。通過本文,您將輕鬆了解以太坊上的新借貸應用程序,快速而全麵地掌握其架構,併深入了解這些 DeFi 巨頭是如何從頭開始構建的。

DeFi中的借貸

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

但是,有一個不明顯的問題。

抵押品的價值必鬚始終超過借款價值預定的幅度。

如果抵押品價值低於此值,借款將被清算。

在清算期間,其他人償還您的部分或全部借款,併且他們會收到您的部分或全部抵押品作爲回報。

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

  • 存儲用戶抵押品和借入資産的金庫
  • 跟蹤每個用戶的抵押品和債務的會計繫統
  • 決定借款人利率的函數
  • 驗證借款是否有足夠抵押的機製,通常涉及外部價格預言機
  • 抵押不足借款的清算路徑
  • 記録借貸總額和其他安全指標的風險管理繫統,例如全球和每個用戶的借貸限額、最低抵押品和特定的超額抵押率
  • 供用戶添加和刪除抵押品、借貸和償還標的物的界麵

MakerDAO 中的借貸流程。所有應用程序都有相衕的步驟和功能。

借貸可以被視爲是獨立的功能。在 DeFi 中,我們在大多數借貸應用程序中都髮現了這兩種功能,但它們併不總是能夠很好地集成。

在Compound中,Aave和Euler就是這樣。借款人和貸款人的利率是內部相關的;事實上,這就是使這些應用程序以最少的幹預運行的原因。

相反,MakerDAO 和 Yield 是他們借給借款人的資産的髮起者。

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

本文將重點討論鏈上借貸,併在很大程度上不會討論出借服務。由於抵押要求,借貸要覆雜得多,併且了解借貸模式通常有助於更好地理解整個協議。

MakerDAO的架構演變

MakerDAO Logo

在以太坊中,MakerDAO 是歷史悠久的名稱了。 它於2019年11月以當前形式推出,持有$49.5億的抵押品。盡管其模塊化架構具有針對每個功能的不衕合衕和獨特的術語,但它仍然很容易理解和驗證。

MakerDAO 中的金庫功能由Join合約管理。

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

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

而它隻是根據需要來鑄造和銷毀 DAI。

會計在 vat.sol 合約內處理。當抵押品進入或退出繫統時,連接會更新此合約。如果用戶借款,他們會直接與 vat.sol 合約進行交互。

此操作會更新用戶的債務餘額,併允許他們在 DAI Join 中鑄造 DAI。

爲了償還,用戶在 DAI Join 中銷毀 DAI。然後,此過程會更新增值稅,讓用戶得以結清貸款。

此外,vat.sol 合約還充當風險管理引擎。它維持全球借貸限額,設定每個用戶的最低閾值,併監督抵押比率。

當用戶的債務或抵押品餘額髮生變化時,vat.sol 合約會評估利率和現貨。

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

MakerDAO 在設計階段就以安全性爲首要考慮因素——當時Gas成本等因素是次要的,用戶體驗是次要問題,競爭也可以忽略不計。

因此,它可能會顯得格格不入、使用成本高昂且難以駕馭。

然而,它管理這龐大資産併爲沒有重大違規行爲的運營記録,這些凸顯了其穩健的設計和執行。

其要點有:

  • 每個資産在最大利差金庫功能中都有自己的合約
  • 會計功能集中在單個合衕中,該合衕還記録和執行風險參數,包括抵押核對
  • 與其他應用程序不衕,它由預言機更新合約,監督抵押
  • 價格和利率預言機利用不衕的接口
  • 利率源自外部
  • 要借款,用戶必鬚與多個合約交互

ProtocolYield協議的架構演變

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 中的借貸工作原理如下:

  • 每項資産都有自己專用的金庫合約,確保金庫功能的最大分配。
  • 單一合約集中了會計職能。該合衕還監督風險管理措施併執行抵押核對。
  • 抵押功能咨詢預言機來確定價格和利率。
  • 價格和利率預言機共享統一的界麵。
  • 利率是外部産生的。
  • 用戶可以通過曏一份合約髮出單個請求來借款。

Compound Finance的架構演變

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

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

  • 金庫、會計和風險管理任務(例如抵押核對)被合併到一份合約中。
  • 該合約從預言機檢索價格,但根據資産利用率確定利率。
  • 盡管他們必鬚單獨調用來提供抵押品和借入資産,但用戶僅與該合約交互。

Compound v2

2019年5月,Compound v2 上線,推動流動性挖礦時代蓬勃髮展,激髮了無數分叉。它也起到貨幣市場的作用,允許用戶借出和借入資産。

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

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

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

  • 每項資産都有自己的資金合約,最大化資金功能的分配。
  • 記賬功能也是分布式的,每個 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的架構演變

2019年10月,Aave v1 得以推出,接替了 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 具有非常幹凈的架構,是完全代幣化的。

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

  • LendingPool 合約整合了全球會計和風險管理功能,例如抵押核對。它用作用戶的主要訪問點。
  • aToken 錶示抵押品,類似於借貸頭寸。用戶的抵押品通過其持有的 aToken 體現,金庫功能分布在所有 aToken 上。
  • vToken 用於錶示債務頭寸。用戶的債務由他們持有的 vToken 錶示。

Aave v3

2023年1月,Aave v3 得以髮布。它具有多鏈支持和其他功能。這些新增功能不會改變核心架構。此次更新還改進了風險管理併提高了Gas效率。

盡管更新帶來了許多進步,但就本研究而言,Aave v3 與 Aave v2 併沒有本質上的不衕。事實上,這可能錶明 Aave v2 的架構在2023年仍然保持穩健。

Euler的架構演變

2022年12月,Euler 得以推出,旨在爲貨幣市場提供非許可的功能和最少的治理幹預。

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

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

  • 存儲合約管理會計變量。
  • BaseLogic 合約充當金庫。
  • RiskManager 合約監督風險管理變量和功能,包括抵押核對。

對代碼的分析錶明,其首要任務爲最小的Gas成本,從而導緻整體設計無需合約間調用。嚴格的測試和審核確保了安全性。隻有邏輯分布在各個模塊中,作爲存儲合約的實現,存儲合約主要充當代理合約。

這種統一的設計還支持輕鬆升級。如果不需要更改存儲,則可以快速更換模塊以修改或引入功能。

在髮布15個月後以及在升級引入該漏洞後的6個月後,Euler 遭到了黑客攻擊。

我不認爲單一架構在資産流失中髮揮了作用;相反,這是由於對代碼更新的監督不夠造成的。

結語

完成了辛苦的工作後,讓我們回顧一下我們學到的東西

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

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

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

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

在本文中,我全麵概述了以太坊上的重要抵押借貸應用程序。我用來分析每個借貸申請的方法也可以用於快速破解其他抵押借款申請的覆雜性。

在開髮區塊鏈借貸應用程序時,請始終將資産的存儲、會計記録的放置以及風險和抵押品評估的方法納入考慮。當您考慮這些註意事項時,您可使用以前應用程序的歷史記録以及本概述中的見解來爲助力您做出明智的決策。

感謝您的閲讀,祝您好運。

感謝 Calnix 幫助審閲和編輯本文。

聲明:

  1. 本文轉載自[hackernoon],著作權歸屬原作者[alcueca],如對轉載有異議,請聯繫Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得覆製、傳播或抄襲經翻譯文章。
即刻开始交易
注册并交易即可获得
$100
和价值
$5500
理财体验金奖励!
立即注册