paint-brush
Emprunter sur Ethereum : comparaison de l'évolution de l'architecture de MakerDAO, Yield, Aave, Compound et Eulerpar@alcueca
4,503 lectures
4,503 lectures

Emprunter sur Ethereum : comparaison de l'évolution de l'architecture de MakerDAO, Yield, Aave, Compound et Euler

par Alberto Cuesta Cañada 12m2023/09/26
Read on Terminal Reader

Trop long; Pour lire

Dans cet article, j'ai fourni un aperçu complet des principales applications d'emprunt garanti sur Ethereum. L'approche que j'ai utilisée pour analyser chaque demande peut également être appliquée pour saisir rapidement les subtilités d'autres demandes d'emprunt garanti.
featured image - Emprunter sur Ethereum : comparaison de l'évolution de l'architecture de MakerDAO, Yield, Aave, Compound et Euler
Alberto Cuesta Cañada  HackerNoon profile picture
0-item
1-item
2-item

L'emprunt est la pierre angulaire des applications blockchain basées sur Ethereum . Avec des milliards d'actifs prêtés , comprendre le fonctionnement de l’emprunt est crucial pour les promoteurs, les architectes ou les chercheurs.


Tout comme l'évolution des paradigmes de programmation, ces applications DeFi ont des conceptions architecturales diverses, reflétant l'évolution des priorités allant de la sécurité à l'efficacité et à l'expérience utilisateur.


Cette analyse porte sur l'architecture d'applications telles que CréateurDAO , Composé , Aave , Euler , et Rendement . Nous mettrons en évidence les principales innovations et modèles de conception, qui constituent des enseignements importants pour le développement de futures applications de prêt.


Si vous êtes développeur, architecte ou chercheur en sécurité, cet article est fait pour vous. À la fin, vous comprendrez facilement les nouvelles applications d’emprunt sur Ethereum, en appréhendant leur architecture de manière rapide et complète. Plongez pour voir comment ces géants DeFi sont construits à partir de zéro.

Emprunter dans DeFi

La plupart des emprunts DeFi sont surdimensionné . Un utilisateur peut emprunter un actif spécifique s’il fournit une garantie d’une valeur supérieure au prêt. Contrairement aux prêts conventionnels, bon nombre de ces prêts n’ont pas de remboursements réguliers ni de dates d’échéance fixes. Essentiellement, vous pouvez emprunter et ne jamais rembourser.


Cependant, il y a un hic.


La valeur de la garantie doit toujours dépasser la valeur du prêt d'une marge prédéterminée .


Si la valeur de la garantie tombe en dessous de ce montant, le prêt est liquidé .


Lors de la liquidation, quelqu’un d’autre rembourse une partie ou la totalité de votre prêt et reçoit en retour une partie ou la totalité de votre garantie.


Toutes les demandes d’emprunt suivant cette structure financière nécessitent les mêmes éléments de base, qui peuvent ensuite être organisés de plusieurs manières :


  • Une trésorerie pour stocker les garanties des utilisateurs et les actifs empruntés
  • Un système comptable qui suit les garanties et les dettes de chaque utilisateur
  • Fonctions qui déterminent le taux d'intérêt des emprunteurs
  • Un mécanisme pour vérifier si un prêt est suffisamment garanti, impliquant généralement des oracles de prix externes
  • Une voie de liquidation pour les prêts sous-garantis
  • Systèmes de gestion des risques qui enregistrent les montants totaux empruntés et d'autres mesures de sécurité, telles que les limites d'emprunt globales et par utilisateur, les minimums de garantie et les ratios de surdimensionnement spécifiques.
  • Une interface permettant aux utilisateurs d'ajouter et de supprimer des garanties, d'emprunter et de rembourser le sous-jacent

Processus d'emprunt dans MakerDAO. Toutes les applications partagent les mêmes étapes et fonctions.


L’emprunt et le prêt peuvent être considérés comme des éléments distincts. Dans DeFi, on retrouve les deux fonctionnalités dans la plupart des applications d’emprunt, mais elles ne sont pas toujours bien intégrées .

Dans Compound, Aave et Euler, ce sont . Les taux d’intérêt des emprunteurs et des prêteurs sont corrélés en interne ; en fait, c'est ce qui permet à ces applications de fonctionner avec une intervention minimale.


D'autre part, MakerDAO et Yield sont les initiateurs des actifs qu'ils prêtent aux emprunteurs.


Ils n'exigent pas que les utilisateurs fournissent des actifs pour que d'autres utilisateurs puissent emprunter .


Cet article se concentrera sur les emprunts en chaîne et ignorera largement les prêts. L'emprunt est beaucoup plus compliqué en raison de l'exigence de garantie, et comprendre le modèle d'emprunt permet généralement de mieux comprendre l'ensemble du protocole.


L'évolution architecturale de MakerDAO

Logo MakerDAO

CréateurDAO , ancien en termes Ethereum, a été lancé sous sa forme actuelle en novembre 2019 , et ça tient 4,95 milliards de dollars de garantie . Malgré son architecture modulaire avec des contrats distincts pour chaque fonction et une terminologie unique, elle reste facile à comprendre et à vérifier.


La fonction de trésorerie dans MakerDAO est gérée par le Rejoindre contrats.


Il y a un contrat séparé pour chaque jeton approuvé comme actif de garantie.


A l’inverse, MakerDAO ne possède aucun DAI, l’actif d’emprunt.


Au lieu de cela, il s'agit simplement menthes et brûlures DAI comme demandé.


La comptabilité est gérée au sein du tva .sol contracter. Les jointures mettre à jour ce contrat lorsque la garantie entre ou sort du système. Si un utilisateur emprunte, il interagir directement avec le contrat tva.sol .


Cette action met à jour le solde de la dette de l'utilisateur et lui permet de créer du DAI lors de la jointure DAI.


Pour rembourser, les utilisateurs gravent le DAI dans le DAI Join. Ce processus met ensuite à jour la TVA, permettant à l'utilisateur de régler son prêt .


De plus, le contrat vat.sol sert de gestion des risques moteur. Il maintient les limites d'emprunt mondiales, fixe des seuils minimaux par utilisateur et supervise les ratios de garantie.

Lorsque des modifications sont apportées à la dette ou au solde de la garantie d'un utilisateur, le contrat vat.sol évalue à la fois le taux et le spot.


Il s’agit du taux d’intérêt basé sur la garantie utilisée et du ratio prix DAI/garantie en vigueur. Il est intéressant de noter que ces valeurs sont introduites dans le contrat vat.sol par d'autres contrats MakerDAO, une méthode distincte de la plupart des autres applications.


MakerDAO a donné la priorité à la sécurité lors de sa phase de conception - une époque où des facteurs tels que les coûts du gaz étaient secondaires , l'expérience utilisateur était une préoccupation mineure et la concurrence était négligeable.


Par conséquent, il peut sembler original, coûteux à utiliser et difficile à naviguer.


Pourtant, les vastes actifs qu’elle gère et son historique de fonctionnement sans failles significatives soulignent sa conception et son exécution robustes.


Points forts:

  • Chaque actif a son propre contrat dans la fonction de trésorerie à répartition maximale
  • La fonction comptable est centralisée au sein d'un contrat unique qui documente et applique également les paramètres de risque, y compris les contrôles de garantie.
  • Contrairement à d'autres applications, les oracles mettent à jour le contrat et supervisent la garantie.
  • Les oracles des prix et des taux d’intérêt utilisent des interfaces distinctes
  • Le taux d’intérêt provient de l’extérieur
  • Pour emprunter, les utilisateurs doivent interagir avec plusieurs contrats

L'évolution architecturale du protocole de rendement

Rendement v1 a servi de preuve de concept pour les tarifs fixes en utilisant RendementEspace . Cette version a construit son moteur de dette garantie au-dessus de MakerDAO. Cependant, Yield v1 était à la fois coûteux à utiliser et difficile à augmenter avec de nouvelles fonctionnalités.


Conscients du potentiel de YieldSpace, nous sommes rapidement passés au développement Rendement v2 . Toujours inspiré de MakerDAO, mais désormais totalement indépendant, Yield v2 lancé en octobre 2021 ; Yield v2 a donné la priorité à la réduction des coûts du gaz et à une expérience utilisateur améliorée.

Le processus d'emprunt dans Yield v2, fortement influencé par MakerDAO


Tous les contrôles de comptabilité, de gestion des risques et de garantie ont été regroupés en un seul contrat : le Chaudron . En miroir de l'approche de MakerDAO, nous avons réparti les fonctions de trésorerie entre Rejoindre contrats, chacun dédié à un actif spécifique.


Nous avons réorganisé notre intégration Oracle, en fusionnant les oracles de prix et de taux d'intérêt dans un interface commune . Nous avons inversé le flux oracle de MakerDAO de telle sorte que Cauldron consulte les oracles au besoin pour les contrôles de garantie. À ma connaissance, c'est le flux préféré partout sauf MakerDAO.


Un autre écart significatif par rapport à l'approche de MakerDAO a été notre introduction du Louche . Ce contrat sert d'intermédiaire unique entre les utilisateurs et Yield. Il exerce un contrôle étendu sur la trésorerie et la comptabilité, mais offre en retour une immense flexibilité pour le développement de fonctionnalités .


En résumé, emprunter dans Yield v2 fonctionne comme suit :

  • Chaque actif dispose de son propre contrat de trésorerie dédié, assurant une répartition maximale de la fonction de trésorerie.
  • Un contrat unique centralise la fonction comptable. Ce contrat supervise également les mesures de gestion des risques et effectue des contrôles de garantie.
  • La fonction de collatéralisation consulte des oracles pour déterminer les prix et les taux d’intérêt.
  • Les oracles des prix et des taux d’intérêt partagent une interface unifiée.
  • Les taux d’intérêt sont générés à l’extérieur.
  • Les utilisateurs peuvent emprunter en effectuant une seule demande sur un seul contrat.

L’évolution architecturale de la finance composée


Le première version de Composé était un Preuve de concept , démontrant qu’un marché monétaire pourrait être établi sur Ethereum. C’est pour cette raison que la simplicité a été privilégiée dans sa conception. Le MoneyMarket.sol Le contrat englobe toutes les fonctions, y compris le prêt.

Le processus d’emprunt dans Compound v1. Simple mais efficace.


  • Les tâches de trésorerie, de comptabilité et de gestion des risques, telles que les contrôles de garantie, sont regroupées dans un seul contrat.
  • Ce contrat récupère les prix des oracles mais détermine les taux d'intérêt en fonction de l'utilisation des actifs.
  • Les utilisateurs interagissent uniquement avec ce contrat, bien qu'ils doivent effectuer des appels séparés pour fournir des garanties et emprunter des actifs.

Composé v2

Compound v2 a été lancé en mai 2019 , déclenchant l’ère de l’agriculture de rendement et inspirant d’innombrables fourchettes. Il fonctionnait également comme un marché monétaire, permettant aux utilisateurs de prêter et d’emprunter des actifs.


Basé sur son papier blanc et la structure, il est évident qu'un objectif majeur pour Composé v2 était d'utiliser le Norme ERC20 pour représenter les positions de prêt . Cela garantissait la composabilité, permettant aux utilisateurs de prêter à Compound, puis d'utiliser ces positions portant intérêt dans d'autres applications blockchain.


Il est intéressant de noter que le livre blanc n'a pas souligné que le composé v2 incorporait récompenses dans ses contrats intelligents. Compte tenu de cette omission, l’immense impact de cette fonctionnalité n’aurait peut-être pas été prévu.

Le processus d’emprunt dans Compound v2. Première incursion dans les positions de prêt tokenisées.


  • Chaque actif dispose de son propre contrat de trésorerie, maximisant la répartition de la fonction de trésorerie.
  • La fonction comptable est également distribuée, chaque cToken notant les garanties et les dettes de l'utilisateur.
  • Un contrat unique, le contrôleur, enregistre et applique les paramètres de gestion des risques, y compris les contrôles de garantie.
  • Le contrat responsable des contrôles de collatéralisation fait référence aux oracles pour les prix et au cToken pour les taux d'intérêt.
  • Les oracles des prix et des taux d’intérêt fonctionnent avec différentes interfaces.
  • Le taux d’intérêt dérive en interne de l’utilisation des actifs.
  • Les utilisateurs doivent interagir avec plusieurs contrats pour emprunter.


Composé v3

Sorti en 2022 , Composé v3 adopte une stratégie de gestion des risques plus conservatrice, en séparant la liquidité en un piscine pour chaque actif empruntable. La conception révèle également des préoccupations concernant la convivialité et les coûts du gaz. Le processus d'emprunt dans Compound v3 (Comet). Retour aux sources, retour à la sécurité. Avec une meilleure UX, cependant.

Le système est plus intuitif tant pour les développeurs que pour les utilisateurs en raison de la réduction du nombre d'appels requis. De plus, la conception unique du contrat réduit les coûts du gaz en minimisant les appels entre les contrats. Les marchés monétaires séparés constituent une défense contre les attaques basées sur Oracle, qui constituent désormais un problème de sécurité majeur.


Autres fonctionnalités pertinentes mentionnées dans le notes de version inclure:

  • Un moteur de gestion des risques et de liquidation entièrement repensé. Cette conception améliore la sécurité des fonds tout en étant plus conviviale pour les emprunteurs.
  • Fixez des limites sur l’ensemble du marché pour les actifs de garantie individuels afin d’atténuer les risques.
  • Les modèles de taux d’intérêt pour les revenus et les emprunts sont désormais distincts, la gouvernance ayant un contrôle total sur les politiques économiques.


Il est intéressant de noter que Composé v3 reflète l'architecture de Composé v1 en ayant un seul contrat gérant toutes les fonctions pour chaque actif empruntable. D'autres caractéristiques notables incluent :

  • Seuls les actifs prêtés peuvent être empruntés ; les actifs collatéraux ne le peuvent pas.
  • La garantie ne produit pas de rendement dans Compound v3.


L’interdiction d’emprunter des garanties renforce la sécurité de ceux qui déposent les garanties. Cela réduit la probabilité que des erreurs de gouvernance ou des attaques intentionnelles mettent en péril la garantie.


L'élimination des rendements sur les garanties fournies pourrait être due au fait que Compound a réussi à accumuler beaucoup de liquidités dans la v2. J'ai l'intuition que dans Compound v2 les limites d'emprunt étaient soit inférieures, soit à peine supérieures aux actifs prêtés à l'application par les utilisateurs.


En supposant qu’ils gèrent des niveaux de liquidité similaires pour la v3, interdire le prêt de garanties rend l’application sûre, l’un des principaux objectifs de la v3.


D'un point de vue architectural :

  • Chaque marché monétaire est un contrat individuel avec sa trésorerie, sa comptabilité et sa gestion des risques.
  • Chaque marché monétaire conserve l'actif empruntable ainsi que tous ses jetons d'actifs de garantie approuvés, ce qui entraîne la dispersion des actifs dans l'application.
  • Les flux de prix constituent le seul intrant externe ; les taux d’intérêt pour les emprunts et les prêts sont générés en interne
  • Les fonctions traditionnelles telles que l’approvisionnement/le retrait/l’emprunt/le remboursement ont été intelligemment consolidées. Désormais, retirer un actif empruntable d'un marché monétaire implique un emprunt, tandis que le fournir implique un remboursement ou un prêt en fonction de la dette de l'utilisateur.
  • Un contrat de routage est intégré, permettant plusieurs opérations en un seul appel

L'évolution architecturale d'Aave

Aave v1 était lancé en octobre 2019 , succédant à ETHLend. Au lieu de l'approche peer-to-peer d'ETHLend, Aave v1 a introduit un pool de liquidité partagé.

Le processus d’emprunt dans Aave v1. La liquidité mise en commun signifiait une efficacité financière et informatique.


Comme dans Yield v2, le contrat de routeur détenait également la logique métier. Le LendingPoolCore mis en œuvre les fonctions de comptabilité, de gestion des risques et de trésorerie. La mise en commun de la trésorerie dans un seul contrat était un point différenciant du Compound v2.


La décision de laisser la garantie s’enregistre son propre contrat , appelé depuis le routeur et non depuis le contrat comptable semble faible, mais il était probablement adapté à son objectif car Aave v2 n'a été publié que deux ans après la sortie de la v1.

  • Le contrat LendingPoolCore gère la trésorerie et la comptabilité
  • LendingPoolDataProvider gère les contrôles de garantie et interagit avec l'oracle
  • LendingPool sert de point d'entrée utilisateur et implémente la logique métier
  • Les taux d'intérêt pour les emprunts et les prêts sont déterminés en interne, en fonction uniquement des informations sur les prix.

Aave v2

Aave v2 était sorti en décembre 2021 . Bien qu'il ait conservé des fonctionnalités similaires à Aave v1, il a introduit une architecture améliorée et plus simple par rapport à Aave v1 et Compound v2. Avec cette version, Aave a également introduit aJetons (semblable aux cTokens de Compound) et Jetons virtuels , qui représentent une dette symbolique.

Aave v2 a une architecture très propre, entièrement tokenisée.


Certaines fonctionnalités d'Aave v1, dont l'utilité était limitée, ont été omises par souci de simplicité. Les problèmes d'Aave v1, comme la représentation complexe des intérêts courus, ont été résolus dans Aave v2.

  • Le contrat LendingPool consolide les fonctions globales de comptabilité et de gestion des risques, telles que les contrôles de garantie. Il sert de point d'accès principal pour les utilisateurs
  • Les aTokens représentent une garantie et s'apparentent à des positions de prêt. La garantie des utilisateurs se reflète dans leurs avoirs aToken, et la fonction de trésorerie est répartie sur tous les aTokens.
  • Les vTokens sont utilisés pour représenter les positions de dette. La dette d'un utilisateur est représentée par les vTokens qu'il détient

Aave v3

Aave v3 était sorti en janvier 2023 avec prise en charge multi-chaînes et d'autres fonctionnalités. Ces ajouts ne modifient pas l'architecture de base. La mise à jour offre également une gestion des risques et une efficacité énergétique améliorées.


Malgré ses nombreuses avancées, aux fins de cette étude, Aave v3 n’est pas sensiblement différent d’Aave v2. En fait, cela pourrait suggérer que l’architecture d’Aave v2 reste robuste en 2023.

L'évolution architecturale d'Euler

Euler était lancé en décembre 2022 , visant à offrir des marchés monétaires avec des fonctionnalités sans autorisation et une gouvernance minimale.


Une caractéristique de sa conception est le semblable à un diamant modèle. UN un seul contrat contient tout le stockage de l'application . Ce stockage est accessible via des procurations , chacun gérant un élément conceptuel différent du système.

Même si un contrat stocke toutes les données sur les actifs, la comptabilité et la gestion des risques, il existe toujours des eTokens pour les garanties et les prêts, et des dTokens pour la dette, similaires à Aave v2. Cependant, ces contrats symboliques ne sont que des vues du contrat de stockage central.

  • Le Stockage le contrat gère les variables comptables.
  • Le BaseLogique Le contrat fait office de trésorerie.
  • Le Gestionnaire des risques Le contrat supervise les variables et les fonctions de gestion des risques, y compris les contrôles de garantie.


Une analyse du code révèle que le coût minimal du gaz était une priorité, ce qui a conduit à la conception monolithique éliminant le besoin d'appels inter-contrats. La sécurité a été assurée par des tests et des audits rigoureux. Seule la logique était répartie entre différents modules, servant d'implémentation au contrat de stockage, qui servait principalement de contrat proxy.


Cette conception unifiée prend également en charge des mises à niveau faciles. Les modules peuvent être rapidement remplacés pour modifier ou introduire des fonctionnalités si aucune modification du stockage n'est requise .


Euler a été piraté quinze mois après sa sortie et six mois après que la mise à jour ait introduit la vulnérabilité exploitée.


Je ne pense pas que l’architecture monolithique ait joué un rôle dans l’épuisement des actifs ; il s'agissait plutôt d'une surveillance insuffisante des mises à jour du code .

Conclusion

Le travail acharné est terminé, passons en revue ce que nous avons appris


Les premières applications Ethereum telles que MakerDAO, Compound et Aave ont montré le potentiel des emprunts surgarantis sur Ethereum. Une fois ces preuves de concept couronnées de succès, l’accent a été mis sur l’introduction d’un mélange de nouvelles fonctionnalités pour conquérir des parts de marché. Les versions ultérieures de Compound et d'Aave ont introduit l'agriculture de rendement, la composabilité et la liquidité mutualisée, qui ont prospéré en particulier dans des conditions de marché haussières.


Un développement important a été l'introduction par Compound v2 de positions de prêt tokenisées, qui ont permis à ces positions d'être reconnues comme actifs standard par d'autres applications. Aave v2 et Euler sont allés plus loin en mettant en œuvre des positions de dette symbolique, dont l'utilité plus large reste un sujet de débat.


Les coûts élevés du gaz sont apparus comme une préoccupation majeure au cours du marché haussier, entraînant des modifications de l'expérience utilisateur, comme le montrent Yield v2, Aave v2 et Euler. Les contrats de routeurs et les implémentations monolithiques ont contribué à réduire les coûts supportés par les utilisateurs pour les transactions. Cependant, cela s’est fait au détriment d’un code plus complexe, et par conséquent plus risqué.


Le composé v3 semble créer un précédent, en donnant la priorité à la sécurité plutôt qu'à l'efficacité financière. Il s’écarte du modèle traditionnel de pool de liquidité pour mieux se protéger contre les piratages potentiels. L’essor des réseaux L2, où les coûts du gaz deviennent de plus en plus négligeables, façonnera probablement la conception des futures applications d’emprunt garanti.


Dans cet article, j'ai fourni un aperçu complet des principales applications d'emprunt garanti sur Ethereum. L'approche que j'ai utilisée pour analyser chaque demande peut également être appliquée pour saisir rapidement les subtilités d'autres demandes d'emprunt garanti.


Lors du développement d’une application d’emprunt blockchain, tenez toujours compte du stockage des actifs, du placement des documents comptables et des méthodes d’évaluation des risques et des garanties. Pendant que vous étudiez ces considérations, tirez parti de l’historique des candidatures précédentes et des enseignements de cet aperçu pour éclairer vos décisions.


Merci d'avoir lu et bonne chance.


Grâce à Calnix pour avoir révisé et édité cet article.


L'auteur est co-fondateur et responsable technique chez Yield Protocol.