Euler 的架构演变
Euler 于 2022 年 12 月推出,旨在为货币市场提供无需许可的功能和最少的治理。
其设计的一个标志是钻石般的模式。单个合约拥有应用程序的所有存储空间。该存储可以通过不同的代理进行访问,每个代理管理系统的不同概念元素。

Euler
尽管一份合约存储了所有资产、账单和风险管理数据,但仍然有用于抵押品和借贷的 eToken,以及用于债务的 dToken,类似于 Aave v2。然而,这些代币合约仅仅是中央存储合约的视图。
- Storage 合约管理账单变量。
- BaseLogic 合约充当金库。
- RiskManager 合约监督风险管理变量和功能,包括抵押检查。
对代码的分析表明,最小的 Gas 成本是首要任务,从而导致整体设计消除了合约间调用的需要。通过严格的测试和审核确保了安全性。只有逻辑分布在各个模块中,作为存储合约的实现,存储合约主要充当代理合约。
这种统一的设计还支持轻松升级。如果不需要更改存储,则可以快速更换模块以修改或引入功能。
Euler 在发布 15 个月后被黑客攻击,在升级引入被利用的漏洞 6 个月后被黑客攻击。
我不认为是由于其整体架构导致资产流失;相反,是对代码更新的监督不够。
结论
MakerDAO、Compound 和 Aave 等早期以太坊应用程序展示了以太坊超额抵押借贷的潜力。一旦这些概念验证被证明是成功的,重点就转移到引入一系列新功能以占领市场份额。Compound 和 Aave 的后续版本引入了流动性挖矿、可组合性和集合流动性,这些技术在牛市条件下尤其蓬勃发展。
一个重大发展是 Compound v2 引入了代币化借贷头寸,这使得这些头寸能够被其他应用程序识别为标准资产。Aave v2 和 Euler 通过实施代币化债务头寸更进一步,其更广泛的效用仍然是一个争论的话题。
高 Gas 成本成为牛市期间的主要问题,促使用户体验发生变化,如 Yield v2、Aave v2 和 Euler 所追求的。路由器合约和作为整体实现有助于降低用户的交易成本。然而,这是以更复杂、因此风险更大的代码为代价的。
Compound v3 似乎开创了先例,将安全性置于金融效率之上。它背离了传统的流动性池模型,以更好地防范潜在的黑客攻击。L2 网络的兴起(其中 Gas 成本变得越来越可以忽略不计)可能会影响未来抵押借款应用的设计。
在本文中,我全面概述了以太坊上的关键抵押借款应用程序。我用来分析每个应用的方法也可以用于快速掌握其他抵押借款应用的复杂性。
在开发区块链借贷应用时,请始终考虑资产的存储、账单记录的放置以及风险和抵押品评估方法。当你考虑这些注意事项时,请利用之前应用的历史变更及本概述中的见解来为你的决策提供信息。
本翻译由 DeCert.me 协助支持。
参考资料
[1] 原文: *https://hackernoon.com/borrowing-on-ethereum-comparing-architecture-evolution-of-makerdao-yield-aave-compound-and-euler*
[2] @albertocuestacanada:*https://hackernoon.com/u/albertocuestacanada*
[3] 登链翻译计划: *https://github.com/lbc-team/Pioneer*
[4] 翻译小组: *https://learnblockchain.cn/people/412*
[5] 数十亿资产被借出: *https://dune.com/browse/dashboards?tags=Lending*
[6] 超额抵押: *https://www.investopedia.com/crypto-lending-5443191*
[7] 清算: *https://info.etherscan.com/explanation-on-defi-liquidation*
[8] MakerDAO: *https://github.com/makerdao/dss*
[9] 推出: *https://blog.makerdao.com/multi-collateral-dai-is-live*
[10] Join 合约: *https://github.com/makerdao/dss/blob/master/src/join.sol*
[11] 单独的合约: *https://changelog.makerdao.com/releases/mainnet/1.12.0/contracts.json*
[12] 铸造和销毁: *https://github.com/makerdao/dss/blob/fa4f6630afb0624d04a003e920b0d71a00331d98/src/join.sol#L172*
[13] vat.sol 合约: *https://github.com/makerdao/dss/blob/master/src/vat.sol*
[14] 合约: *https://github.com/makerdao/dss/blob/fa4f6630afb0624d04a003e920b0d71a00331d98/src/join.sol#L111*
[15] vat.sol 合约: *https://github.com/makerdao/dss/blob/fa4f6630afb0624d04a003e920b0d71a00331d98/src/vat.sol#L143*
[16] 风险管理: *https://github.com/makerdao/dss/blob/fa4f6630afb0624d04a003e920b0d71a00331d98/src/vat.sol#L160*
[17] Yield v1: *https://github.com/yieldprotocol/fyDai*
[18] YieldSpace: *https://yield.is/YieldSpace.pdf*
[19] Yield v2: *https://yieldprotocol.com/*
[20] 推出: *https://medium.com/yield-protocol/yield-protocol-v2-is-live-in-beta-cf547f18cb5f*
[21] Cauldron: *https://github.com/yieldprotocol/vault-v2/blob/master/src/Cauldron.sol*
[22] Join 合约: *https://github.com/yieldprotocol/vault-v2/blob/master/src/Join.sol*
[23] 通用接口: *https://github.com/yieldprotocol/vault-v2/blob/master/src/interfaces/IOracle.sol*
[24] Cauldron: *https://github.com/yieldprotocol/vault-v2/blob/a8c7587a01fd7c0e0df042932fa14584e28ad88b/src/Cauldron.sol#L362*
[25] Ladle: *https://github.com/yieldprotocol/vault-v2/blob/master/src/Ladle.sol*
[26] Compound 的第一个版本: *https://github.com/compound-finance/compound-money-market*
[27] 概念验证: *https://medium.com/compound-finance/compound-launches-money-markets-for-ethereum-assets-f50920f04488*
[28] MoneyMarket.sol: *https://github.com/compound-finance/compound-money-market/blob/241541a62d0611118fb4e7eb324ac0f84bb58c48/contracts/MoneyMarket.sol?ref=hackernoon.com*
[29] Compound v2: *https://medium.com/compound-finance/compound-v2-is-live-157db0b7cfc8*
[30] 白皮书: *https://compound.finance/documents/Compound.Whitepaper.pdf*
[31] 奖励: *https://github.com/compound-finance/compound-protocol/blob/a3214f67b73310d547e00fc578e8355911c9d376/contracts/Comptroller.sol#L246*
[32] Compound v3: *https://github.com/compound-finance/comet*
[33] 发布: *https://medium.com/compound-finance/compound-iii-is-live-a7983dee7e60*
[34] 池: *https://github.com/compound-finance/comet/blob/22cf923b6263177555272dde8b0791703895517d/contracts/Comet.sol*
[35] Aave v1: *https://github.com/aave/aave-protocol*
[36] 推出: *https://github.com/aave/aave-protocol/blob/master/docs/Aave_Protocol_Whitepaper_v1_0.pdf*
[37] 路由合约: *https://github.com/aave/aave-protocol/blob/4b4545fb583fd4f400507b10f3c3114f45b8a037/contracts/lendingpool/LendingPool.sol*
[38] LendingPoolCore: *https://github.com/aave/aave-protocol/blob/4b4545fb583fd4f400507b10f3c3114f45b8a037/contracts/lendingpool/LendingPoolCore.sol*
[39] 自己的合约: *https://github.com/aave/aave-protocol/blob/4b4545fb583fd4f400507b10f3c3114f45b8a037/contracts/lendingpool/LendingPoolDataProvider.sol*
[40] Aave v2: *https://github.com/aave/protocol-v2*
[41] 发布: *https://medium.com/aave/the-aave-protocol-v2-f06f299cee04*
[42] aToken: *https://github.com/aave/protocol-v2/blob/ce53c4a8c8620125063168620eba0a8a92854eb8/contracts/protocol/tokenization/AToken.sol*
[43] vToken: *https://github.com/aave/protocol-v2/blob/ce53c4a8c8620125063168620eba0a8a92854eb8/contracts/protocol/tokenization/VariableDebtToken.sol*
[44] Aave v3: *https://github.com/aave/aave-v3-core*
[45] 发布: *https://aave.mirror.xyz/K9gQPsv-hAH-gO4oH2i0Oen8uQEHYL5q8x9xjN9XnmA*
[46] Euler: *https://github.com/euler-xyz/euler-contracts*
[47] 推出: *https://www.euler.finance/blog/euler-launches-on-mainnet*
[48] 钻石: *https://eips.ethereum.org/EIPS/eip-2535*
[49] 单个合约拥有应用程序的所有存储空间: *https://github.com/euler-xyz/euler-contracts/blob/dfaa7788b17ac7c2a826a3ed242d7181998a778f/contracts/Storage.sol*
[50] 代理: *https://github.com/euler-xyz/euler-contracts/tree/dfaa7788b17ac7c2a826a3ed242d7181998a778f/contracts/modules*
[51] Storage 合约: *https://github.com/euler-xyz/euler-contracts/blob/dfaa7788b17ac7c2a826a3ed242d7181998a778f/contracts/Storage.sol*
[52] BaseLogic 合约: *https://github.com/euler-xyz/euler-contracts/blob/dfaa7788b17ac7c2a826a3ed242d7181998a778f/contracts/BaseLogic.sol*
[53] RiskManager 合约: *https://github.com/euler-xyz/euler-contracts/blob/dfaa7788b17ac7c2a826a3ed242d7181998a778f/contracts/modules/RiskManager.sol*
[54] DeCert.me: *https://decert.me/*