Une analyse complète de l'ERC-4626 et DeFi

Avancé2/22/2024, 5:56:11 AM
Cet article analyse de manière exhaustive les principes de base de l'ERC-4626 et son application dans le domaine DeFi.

01 Qu'est-ce que ERC-4626

ERC-4626 est un coffre-fort tokenisé avec un seul token EIP-20 sous-jacent.

Tout d'abord, c'est une proposition basée sur ERC-20 et entièrement compatible avec celle-ci.

Deuxièmement, comprenez le concept d'une voûte, qui n'est pas un trésor. Le trésor actuellement sur le marché est essentiellement un portefeuille de contrat, dont la plupart sont des Gnosis Safe, qui fournissent principalement des fonctions d'entrée et de sortie de fonds sécurisées. Mais pour une organisation, en plus des flux de fonds, le mouvement des fonds peut également générer des revenus.

La motivation de cette proposition : l’absence de normes pour les coffres-forts tokenisés a entraîné des détails de mise en œuvre différents de nombreux coffres-forts sur le marché, tels que les marchés de prêt, les agrégateurs, les tokens portant intérêt, etc. Cela rend l’intégration d’agrégateurs et de plugins au niveau du protocole difficile, sujette aux erreurs et un gaspillage de ressources de développement.

Lorsque l’état actuel de cette proposition est Final, cela signifie qu’il s’agit d’une norme relativement stable.

02 Spécification

Les jetons qui suivent ERC-4626 doivent pleinement mettre en œuvre ERC-20, qui est utilisé pour représenter des parts. Voici quelques concepts simples.

  • Actif : Le jeton sous-jacent géré par le coffre-fort, suivant la norme ERC-20.
  • Partager : jeton Vault, également connu sous le nom de vToken. Il entretient une relation proportionnelle avec l'actif.
  • Frais : Un montant facturé par la voûte lorsqu'un actif ou une part change. Il peut s'agir de dépôts, de gains, de gestion d'actifs, de retraits, etc.
  • Glissement : La différence entre le prix annoncé des dépôts et des retraits d'actions et l'économie réelle. Ci-dessous est une explication plus détaillée du concept de glissement dans le domaine DeFi.

Le glissement est la différence entre le prix attendu d'un échange et le prix d'exécution réel. Le glissement se produit lorsqu'il y a un délai entre la passation d'un échange et son exécution, et que le prix de l'actif échangé change.

Par exemple, si vous trouvez 20 ETH et 80 USDT dans le pool AMM, votre prix prévu de l'ETH est de 4 USDT/ETH. Cependant, si vous prévoyez de dépenser 20 USDT pour échanger dans le pool, vous vous retrouverez avec seulement 4 ETH au lieu des 5 ETH prévus, ce qui signifie que vous subissez une perte de glissement de 1 USDT/ETH. Votre prix d'achat réel sera de 5 USDT, et non pas de 4 USDT comme prévu.

Le slippage est particulièrement fréquent sur les marchés à évolution rapide ou les actifs à forte volatilité, ainsi que dans les actifs de longue traîne dont la liquidité est limitée. Quoi qu’il en soit, cela a un impact significatif sur les performances de trading et il est important de prendre en compte le glissement lorsque vous placez des transactions.

03 Analyse du contrat

Le code du contrat provient de la bibliothèque de code de contrat intelligent OpenZeppelin :

https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/extensions/ERC4626.sol

Le contrat ERC-4626 hérite de ERC-20. Cette partie ne sera pas résumée. C'est également un contrat abstrait en soi. Les interfaces que le contrat doit implémenter sont les suivantes :

Les interfaces sont assez riches, la plupart d'entre elles sont relativement simples et peuvent être divisées en deux catégories : lecture et écriture.

Écrire

Les principales interfaces pour l'écriture de données sont le dépôt, la création, le retrait et le rachat.

  • Le dépôt détermine le montant des actifs et les transfère à la voûte. Il émet des actions en même temps. Vous pouvez utiliser la méthode previewDeposit pour voir à l'avance combien d'actions peuvent être émises.

  • Retirer (retirer de l’argent) détermine le montant des actifs à transférer hors du coffre-fort et brûle les actions en même temps. Vous pouvez utiliser la méthode previewRemove pour vérifier à l’avance combien de partages ont été brûlés。
  • Mint utilise le paramètre shares. En fait, cette méthode est équivalente au dépôt, qui détermine les actions frappées pour calculer les actifs qui doivent être déposés. Vous pouvez utiliser la méthode previewMint pour vérifier à l’avance combien de ressources seront retirées.
  • Redeem utilise le paramètre shares, qui est équivalent à retirer, déterminant les parts brûlées pour calculer les actifs à transférer. Vous pouvez utiliser la méthode previewRedeem pour vérifier à l'avance combien d'actifs seront rachetés. \

En fait, en raison de l'existence de glissement, l'utilisation de la méthode de prévisualisation pour voir les chiffres attendus peut être inexacte, ce qui est également un problème courant dans l'industrie et peut entraîner des problèmes de sécurité, qui seront discutés plus tard.

Lire

Les différentes méthodes d’aperçu mentionnées précédemment, ainsi que les méthodes publiques convertToShares et convertToAssets, appellent en fait les méthodes _convertToShares et _convertToAssets en interne.

Ces deux méthodes de base consistent à calculer la relation proportionnelle entre les actifs et les parts. Les variables impliquées comprennent l'offre de parts, le total actuel des actifs, le nombre de décimales et les méthodes d'arrondi des décimales.

Ce qui précède est la mise en œuvre de base du contrat abstrait ERC-4626. Le contrat de coffre réel est beaucoup plus compliqué que cela.

Pour le contrat de coffre-fort, il y a deux fonctions relativement importantes à implémenter. L'une est la fonction de dépôt et de retrait, la conversion d'actifs et de parts ; l'autre est le moyen d'obtenir des revenus, qui sera expliqué avec des exemples ci-dessous.

04 Écologie et Application

Similaire à d'autres EIP populaires, ERC-4626 a également un écosystème d'alliance (https://erc4626.info/) géré par du personnel dédié, qui recueille certains protocoles de prêt et applications actuellement sur le marché qui sont compatibles avec l'ERC-4626, et il y a aussi des actualités, des bibliothèques open source, des informations sur la sécurité et autres. Si votre coffre-fort est adapté à l'ERC-4626, vous pouvez également soumettre une demande là-bas.

Ci-dessous, nous analysons un exemple d'application, le coffre-fort AladdinCRVV2 de Aladdin DAO (https://concentrator.aladdin.club/vaults/). Aladdin DAO a de nombreux contrats de coffre-fort, et ceci n'est que l'un des plus actifs.

AladdinCRVV2 Vault

La chambre forte génère des revenus en misant des jetons cvxCRV.

  • Le contrat de coffre-fort est un contrat évolutif

(https://etherscan.io/address/0x2b95A1Dcc3D405535f9ed33c219ab38E8d7e0884. Et vous pouvez vérifier à travers le code github que la version précédente n'est pas compatible avec ERC-4626

  • En fait, il existe de nombreuses options d'opération pour les dépôts et les retraits, ce qui est assez pratique et permet d'économiser du gaz. Il y a trop de code, je ne le posterai donc pas ici.
    • Dépôt: les jetons cvxCRV seront déposés dans le coffre-fort par défaut. De plus, il y a depositWithCRV, qui est pratique pour CRV et peut également être déposé
    • Lors du retrait, les jetons cvxCRV seront retirés et les parts seront brûlées par défaut. De plus, vous pouvez également restaker par vous-même lors du retrait, convertir cvxCRV en CVX et convertir cvxCRV en ETH

Ce qui précède est l'analyse de base du contrat de la voûte avec des fonctions relativement riches. Son essence est de miser des actifs pour gagner des intérêts. Pourquoi est-il conçu de cette manière ? La principale raison réside dans la conception du contrat de mise cvxCrvStaking. La description des revenus de la mise en jeu de cvxCRV est la suivante : « En misant cvxCRV, vous recevrez les récompenses habituelles de veCRV (distribution des frais de gouvernance 3crv de Curve + tout largage aérien), plus une part de 10 % des gains en CRV boostés des LPs Convex, et des jetons CVX en prime. » Plus le nombre de jetons est important, plus les avantages le sont.

Sécurité

Pour les coffres-forts ERC-4626, le principal problème de sécurité est la protection contre les attaques d'inflation.

Lorsqu'un utilisateur dépose des jetons, selon la formule de calcul des parts (parts = actifs * offreTotale / actifsTotaux), le résultat du calcul comporte un point décimal et est généralement arrondi vers le bas.

Comme vous pouvez le voir sur la figure ci-dessous, lorsqu'un utilisateur dépose 500 jetons d'actifs, le montant d'actifs perdus en raison de l'arrondi décimal dépend du taux de change (correspondance entre la part et les actifs de jetons). Si le taux de change est celui de la courbe orange, nous obtenons moins de 1 part et perdons 100%. Cependant, si le taux de change est celui de la courbe verte et que 5000 parts sont obtenues, la perte d'arrondi est limitée à un maximum de 0,02%.

Ensuite, si nous nous concentrons sur la limitation des pertes à un maximum de 0,5%, nous devons acquérir au moins 200 actions. Le taux vert ne nécessite que 20 jetons, mais le taux orange nécessite 200 000 jetons.

À travers plusieurs exemples, il peut être analysé que les courbes bleues et vertes sont plus sûres que les courbes jaunes et oranges, et sont conçues pour être des coffres-forts plus sûrs.

Par conséquent, la principale méthode d'attaque par l'inflation consiste à utiliser certains moyens pour déplacer la courbe des taux d'intérêt vers la droite, provoquant la perte d'une petite partie des déposants, atteignant ainsi le but de l'attaque.

Méthode d’attaque

Les attaques d'inflation se font principalement par le biais de donations.

  1. L'attaquant dépose d'abord 1 jeton dans le contrat de la voûte. À ce moment, les parts qu'il a obtenues sont de 1 et le total de l'offre est de 1.
  2. L'attaquant envoie 1e5 jetons directement au contrat de coffre-fort. À ce moment, totalAssets a changé pour devenir 1e5 + 1, mais totalSupply reste le même.
  3. Lorsque la victime dépose moins de 1e5 jetons (x), les parts obtenues sont : x * 1 / (1e5 + 1), c'est-à-dire que tant que x est inférieur à 1e5, selon le principe d'arrondi inférieur de la décimale, les parts obtenues par la victime sont de 0. Même si les jetons déposés sont supérieurs à 1e5, étant donné que la part précédente de l'attaquant était de 100 %, cela entraîne une réduction significative des parts reçues par la victime.

Défendez-vous contre les attaques

Il existe trois façons de se défendre contre les attaques:

  1. Définir le glissement. Plus tôt, nous avons introduit le concept de glissement, en définissant une plage de tolérance au glissement, si elle ne reçoit pas le montant attendu dans une certaine plage de tolérance au glissement, la transaction sera annulée. C'est le paradigme standard pour traiter les problèmes de glissement.
  2. Ajoutez suffisamment de ressources initiales au coffre-fort pour augmenter le coût de l’attaque. J’ai vu cette méthode dans le contrat de jalonnement de Blast. Lors de l’initialisation du staking, le contrat exige que le montant d’ETH et d’USD ne soit pas inférieur à 1 000.
  3. Ajoutez de la « liquidité virtuelle » au coffre-fort afin que le calcul du prix se comporte comme s'il y avait suffisamment d'actifs dans le coffre-fort. La méthode de défense est divisée en 2 parties:
    • Décalage de précision entre les actions et les actifs.
    • Incorporer des actions virtuelles et des actifs virtuels dans les calculs des taux de change.

La mise en œuvre spécifique consiste à réécrire la méthode _decimalsOffset() du code de bibliothèque standard fourni par OpenZeppelin. Cette méthode ne nécessite pas de définir de glissement ou d'injecter des fonds initiaux suffisants. C'est un très bon moyen de résister aux attaques d'inflation.

05 Extension

En tant que proposition de coffre-fort relativement basique, le RC-4626 ne peut pas répondre à tous les besoins. Certaines propositions l'ont également adapté, telles que l'ERC-7535 et l'EIP-7540.

ERC-7535

Comme mentionné précédemment, ERC-4626 ne peut utiliser que ERC-20 comme actif sous-jacent. Cette proposition permet principalement d'utiliser des actifs natifs comme actifs sous-jacents, tels que l'ETH dans le vault.

EIP-7540

Cette extension à l'ERC-4626 introduit la prise en charge des processus de dépôt et de rachat asynchrones (appelés "demandes"). Elle inclut de nouvelles méthodes pour démarrer et vérifier le statut de ces demandes. Les méthodes existantes de l'ERC-4626, telles que le dépôt, l'émission, le retrait et le rachat, sont utilisées pour exécuter les demandes pouvant être réclamées. Il appartient à l'implémenteur de décider s'il faut ajouter des processus asynchrones pour les dépôts, les rachats, ou les deux.

Cas d'utilisation potentiels:

  1. Processus de dépôt et de remboursement asynchrones : En introduisant le concept de "demande", les processus de dépôt et de remboursement asynchrones peuvent être réalisés, offrant ainsi une méthode de fonctionnement plus flexible.
  2. Amélioration de l'expérience utilisateur: La proposition met l'accent sur l'importance de l'expérience utilisateur et recommande l'introduction d'un mécanisme de découverte standard pour aider les utilisateurs et les applications frontales à mieux comprendre la durée et la latence des opérations asynchrones.
  3. Extension fonctionnelle : EIP-7540 étend la fonctionnalité de l'ERC-4626 en ajoutant de nouvelles méthodes, permettant de demander des dépôts et des rachats de manière asynchrone, et de visualiser l'état de ces demandes.

06 Résumé

Ce qui précède est l'analyse complète de l'ERC-4626.

En raison de raisons historiques, de nombreux coffres-forts actuellement sur le marché ne sont pas conformes à l'ERC-4626 et continuent de fonctionner, comme dForce, mais ils ne peuvent pas être appliqués plus largement. Certains coffres-forts ont déjà été mis à niveau pour être conformes à l'ERC-4626, comme certains contrats de Aladdin DAO (https://github.com/AladdinDAO/deployments/blob/main/deployments.mainnet.md.

En plus de gagner des intérêts grâce au staking, les applications de coffre-fort peuvent également prêter des actions en garantie ou les staker à nouveau pour générer des revenus. De plus, la collecte de fonds par le biais de coffres-forts est également un bon scénario d'application, car certaines de ses fonctions de base peuvent fournir un excellent support.

L'essence de cette proposition est d'améliorer l'efficacité d'intégration entre les coffres-forts et l'écosystème DeFi, et de réduire les coûts de développement. Le rôle des coffres-forts eux-mêmes a encore plus de place pour l'exploration à mesure que le marché DeFi se développe.

Disclaimer:

  1. Cet article est repris de [ LXDAO], Tous les droits d'auteur appartiennent à l'auteur original [Kahn]. Si des objections sont soulevées à cette reproduction, veuillez contacter le Portail Apprendreéquipe, et ils s'en occuperont rapidement.
  2. Clause de non-responsabilité: Les points de vue et opinions exprimés dans cet article sont uniquement ceux de l'auteur et ne constituent aucun conseil en investissement.
  3. Les traductions de l'article dans d'autres langues sont réalisées par l'équipe Gate Learn. Sauf mention contraire, copier, distribuer ou plagier les articles traduits est interdit.

Une analyse complète de l'ERC-4626 et DeFi

Avancé2/22/2024, 5:56:11 AM
Cet article analyse de manière exhaustive les principes de base de l'ERC-4626 et son application dans le domaine DeFi.

01 Qu'est-ce que ERC-4626

ERC-4626 est un coffre-fort tokenisé avec un seul token EIP-20 sous-jacent.

Tout d'abord, c'est une proposition basée sur ERC-20 et entièrement compatible avec celle-ci.

Deuxièmement, comprenez le concept d'une voûte, qui n'est pas un trésor. Le trésor actuellement sur le marché est essentiellement un portefeuille de contrat, dont la plupart sont des Gnosis Safe, qui fournissent principalement des fonctions d'entrée et de sortie de fonds sécurisées. Mais pour une organisation, en plus des flux de fonds, le mouvement des fonds peut également générer des revenus.

La motivation de cette proposition : l’absence de normes pour les coffres-forts tokenisés a entraîné des détails de mise en œuvre différents de nombreux coffres-forts sur le marché, tels que les marchés de prêt, les agrégateurs, les tokens portant intérêt, etc. Cela rend l’intégration d’agrégateurs et de plugins au niveau du protocole difficile, sujette aux erreurs et un gaspillage de ressources de développement.

Lorsque l’état actuel de cette proposition est Final, cela signifie qu’il s’agit d’une norme relativement stable.

02 Spécification

Les jetons qui suivent ERC-4626 doivent pleinement mettre en œuvre ERC-20, qui est utilisé pour représenter des parts. Voici quelques concepts simples.

  • Actif : Le jeton sous-jacent géré par le coffre-fort, suivant la norme ERC-20.
  • Partager : jeton Vault, également connu sous le nom de vToken. Il entretient une relation proportionnelle avec l'actif.
  • Frais : Un montant facturé par la voûte lorsqu'un actif ou une part change. Il peut s'agir de dépôts, de gains, de gestion d'actifs, de retraits, etc.
  • Glissement : La différence entre le prix annoncé des dépôts et des retraits d'actions et l'économie réelle. Ci-dessous est une explication plus détaillée du concept de glissement dans le domaine DeFi.

Le glissement est la différence entre le prix attendu d'un échange et le prix d'exécution réel. Le glissement se produit lorsqu'il y a un délai entre la passation d'un échange et son exécution, et que le prix de l'actif échangé change.

Par exemple, si vous trouvez 20 ETH et 80 USDT dans le pool AMM, votre prix prévu de l'ETH est de 4 USDT/ETH. Cependant, si vous prévoyez de dépenser 20 USDT pour échanger dans le pool, vous vous retrouverez avec seulement 4 ETH au lieu des 5 ETH prévus, ce qui signifie que vous subissez une perte de glissement de 1 USDT/ETH. Votre prix d'achat réel sera de 5 USDT, et non pas de 4 USDT comme prévu.

Le slippage est particulièrement fréquent sur les marchés à évolution rapide ou les actifs à forte volatilité, ainsi que dans les actifs de longue traîne dont la liquidité est limitée. Quoi qu’il en soit, cela a un impact significatif sur les performances de trading et il est important de prendre en compte le glissement lorsque vous placez des transactions.

03 Analyse du contrat

Le code du contrat provient de la bibliothèque de code de contrat intelligent OpenZeppelin :

https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/extensions/ERC4626.sol

Le contrat ERC-4626 hérite de ERC-20. Cette partie ne sera pas résumée. C'est également un contrat abstrait en soi. Les interfaces que le contrat doit implémenter sont les suivantes :

Les interfaces sont assez riches, la plupart d'entre elles sont relativement simples et peuvent être divisées en deux catégories : lecture et écriture.

Écrire

Les principales interfaces pour l'écriture de données sont le dépôt, la création, le retrait et le rachat.

  • Le dépôt détermine le montant des actifs et les transfère à la voûte. Il émet des actions en même temps. Vous pouvez utiliser la méthode previewDeposit pour voir à l'avance combien d'actions peuvent être émises.

  • Retirer (retirer de l’argent) détermine le montant des actifs à transférer hors du coffre-fort et brûle les actions en même temps. Vous pouvez utiliser la méthode previewRemove pour vérifier à l’avance combien de partages ont été brûlés。
  • Mint utilise le paramètre shares. En fait, cette méthode est équivalente au dépôt, qui détermine les actions frappées pour calculer les actifs qui doivent être déposés. Vous pouvez utiliser la méthode previewMint pour vérifier à l’avance combien de ressources seront retirées.
  • Redeem utilise le paramètre shares, qui est équivalent à retirer, déterminant les parts brûlées pour calculer les actifs à transférer. Vous pouvez utiliser la méthode previewRedeem pour vérifier à l'avance combien d'actifs seront rachetés. \

En fait, en raison de l'existence de glissement, l'utilisation de la méthode de prévisualisation pour voir les chiffres attendus peut être inexacte, ce qui est également un problème courant dans l'industrie et peut entraîner des problèmes de sécurité, qui seront discutés plus tard.

Lire

Les différentes méthodes d’aperçu mentionnées précédemment, ainsi que les méthodes publiques convertToShares et convertToAssets, appellent en fait les méthodes _convertToShares et _convertToAssets en interne.

Ces deux méthodes de base consistent à calculer la relation proportionnelle entre les actifs et les parts. Les variables impliquées comprennent l'offre de parts, le total actuel des actifs, le nombre de décimales et les méthodes d'arrondi des décimales.

Ce qui précède est la mise en œuvre de base du contrat abstrait ERC-4626. Le contrat de coffre réel est beaucoup plus compliqué que cela.

Pour le contrat de coffre-fort, il y a deux fonctions relativement importantes à implémenter. L'une est la fonction de dépôt et de retrait, la conversion d'actifs et de parts ; l'autre est le moyen d'obtenir des revenus, qui sera expliqué avec des exemples ci-dessous.

04 Écologie et Application

Similaire à d'autres EIP populaires, ERC-4626 a également un écosystème d'alliance (https://erc4626.info/) géré par du personnel dédié, qui recueille certains protocoles de prêt et applications actuellement sur le marché qui sont compatibles avec l'ERC-4626, et il y a aussi des actualités, des bibliothèques open source, des informations sur la sécurité et autres. Si votre coffre-fort est adapté à l'ERC-4626, vous pouvez également soumettre une demande là-bas.

Ci-dessous, nous analysons un exemple d'application, le coffre-fort AladdinCRVV2 de Aladdin DAO (https://concentrator.aladdin.club/vaults/). Aladdin DAO a de nombreux contrats de coffre-fort, et ceci n'est que l'un des plus actifs.

AladdinCRVV2 Vault

La chambre forte génère des revenus en misant des jetons cvxCRV.

  • Le contrat de coffre-fort est un contrat évolutif

(https://etherscan.io/address/0x2b95A1Dcc3D405535f9ed33c219ab38E8d7e0884. Et vous pouvez vérifier à travers le code github que la version précédente n'est pas compatible avec ERC-4626

  • En fait, il existe de nombreuses options d'opération pour les dépôts et les retraits, ce qui est assez pratique et permet d'économiser du gaz. Il y a trop de code, je ne le posterai donc pas ici.
    • Dépôt: les jetons cvxCRV seront déposés dans le coffre-fort par défaut. De plus, il y a depositWithCRV, qui est pratique pour CRV et peut également être déposé
    • Lors du retrait, les jetons cvxCRV seront retirés et les parts seront brûlées par défaut. De plus, vous pouvez également restaker par vous-même lors du retrait, convertir cvxCRV en CVX et convertir cvxCRV en ETH

Ce qui précède est l'analyse de base du contrat de la voûte avec des fonctions relativement riches. Son essence est de miser des actifs pour gagner des intérêts. Pourquoi est-il conçu de cette manière ? La principale raison réside dans la conception du contrat de mise cvxCrvStaking. La description des revenus de la mise en jeu de cvxCRV est la suivante : « En misant cvxCRV, vous recevrez les récompenses habituelles de veCRV (distribution des frais de gouvernance 3crv de Curve + tout largage aérien), plus une part de 10 % des gains en CRV boostés des LPs Convex, et des jetons CVX en prime. » Plus le nombre de jetons est important, plus les avantages le sont.

Sécurité

Pour les coffres-forts ERC-4626, le principal problème de sécurité est la protection contre les attaques d'inflation.

Lorsqu'un utilisateur dépose des jetons, selon la formule de calcul des parts (parts = actifs * offreTotale / actifsTotaux), le résultat du calcul comporte un point décimal et est généralement arrondi vers le bas.

Comme vous pouvez le voir sur la figure ci-dessous, lorsqu'un utilisateur dépose 500 jetons d'actifs, le montant d'actifs perdus en raison de l'arrondi décimal dépend du taux de change (correspondance entre la part et les actifs de jetons). Si le taux de change est celui de la courbe orange, nous obtenons moins de 1 part et perdons 100%. Cependant, si le taux de change est celui de la courbe verte et que 5000 parts sont obtenues, la perte d'arrondi est limitée à un maximum de 0,02%.

Ensuite, si nous nous concentrons sur la limitation des pertes à un maximum de 0,5%, nous devons acquérir au moins 200 actions. Le taux vert ne nécessite que 20 jetons, mais le taux orange nécessite 200 000 jetons.

À travers plusieurs exemples, il peut être analysé que les courbes bleues et vertes sont plus sûres que les courbes jaunes et oranges, et sont conçues pour être des coffres-forts plus sûrs.

Par conséquent, la principale méthode d'attaque par l'inflation consiste à utiliser certains moyens pour déplacer la courbe des taux d'intérêt vers la droite, provoquant la perte d'une petite partie des déposants, atteignant ainsi le but de l'attaque.

Méthode d’attaque

Les attaques d'inflation se font principalement par le biais de donations.

  1. L'attaquant dépose d'abord 1 jeton dans le contrat de la voûte. À ce moment, les parts qu'il a obtenues sont de 1 et le total de l'offre est de 1.
  2. L'attaquant envoie 1e5 jetons directement au contrat de coffre-fort. À ce moment, totalAssets a changé pour devenir 1e5 + 1, mais totalSupply reste le même.
  3. Lorsque la victime dépose moins de 1e5 jetons (x), les parts obtenues sont : x * 1 / (1e5 + 1), c'est-à-dire que tant que x est inférieur à 1e5, selon le principe d'arrondi inférieur de la décimale, les parts obtenues par la victime sont de 0. Même si les jetons déposés sont supérieurs à 1e5, étant donné que la part précédente de l'attaquant était de 100 %, cela entraîne une réduction significative des parts reçues par la victime.

Défendez-vous contre les attaques

Il existe trois façons de se défendre contre les attaques:

  1. Définir le glissement. Plus tôt, nous avons introduit le concept de glissement, en définissant une plage de tolérance au glissement, si elle ne reçoit pas le montant attendu dans une certaine plage de tolérance au glissement, la transaction sera annulée. C'est le paradigme standard pour traiter les problèmes de glissement.
  2. Ajoutez suffisamment de ressources initiales au coffre-fort pour augmenter le coût de l’attaque. J’ai vu cette méthode dans le contrat de jalonnement de Blast. Lors de l’initialisation du staking, le contrat exige que le montant d’ETH et d’USD ne soit pas inférieur à 1 000.
  3. Ajoutez de la « liquidité virtuelle » au coffre-fort afin que le calcul du prix se comporte comme s'il y avait suffisamment d'actifs dans le coffre-fort. La méthode de défense est divisée en 2 parties:
    • Décalage de précision entre les actions et les actifs.
    • Incorporer des actions virtuelles et des actifs virtuels dans les calculs des taux de change.

La mise en œuvre spécifique consiste à réécrire la méthode _decimalsOffset() du code de bibliothèque standard fourni par OpenZeppelin. Cette méthode ne nécessite pas de définir de glissement ou d'injecter des fonds initiaux suffisants. C'est un très bon moyen de résister aux attaques d'inflation.

05 Extension

En tant que proposition de coffre-fort relativement basique, le RC-4626 ne peut pas répondre à tous les besoins. Certaines propositions l'ont également adapté, telles que l'ERC-7535 et l'EIP-7540.

ERC-7535

Comme mentionné précédemment, ERC-4626 ne peut utiliser que ERC-20 comme actif sous-jacent. Cette proposition permet principalement d'utiliser des actifs natifs comme actifs sous-jacents, tels que l'ETH dans le vault.

EIP-7540

Cette extension à l'ERC-4626 introduit la prise en charge des processus de dépôt et de rachat asynchrones (appelés "demandes"). Elle inclut de nouvelles méthodes pour démarrer et vérifier le statut de ces demandes. Les méthodes existantes de l'ERC-4626, telles que le dépôt, l'émission, le retrait et le rachat, sont utilisées pour exécuter les demandes pouvant être réclamées. Il appartient à l'implémenteur de décider s'il faut ajouter des processus asynchrones pour les dépôts, les rachats, ou les deux.

Cas d'utilisation potentiels:

  1. Processus de dépôt et de remboursement asynchrones : En introduisant le concept de "demande", les processus de dépôt et de remboursement asynchrones peuvent être réalisés, offrant ainsi une méthode de fonctionnement plus flexible.
  2. Amélioration de l'expérience utilisateur: La proposition met l'accent sur l'importance de l'expérience utilisateur et recommande l'introduction d'un mécanisme de découverte standard pour aider les utilisateurs et les applications frontales à mieux comprendre la durée et la latence des opérations asynchrones.
  3. Extension fonctionnelle : EIP-7540 étend la fonctionnalité de l'ERC-4626 en ajoutant de nouvelles méthodes, permettant de demander des dépôts et des rachats de manière asynchrone, et de visualiser l'état de ces demandes.

06 Résumé

Ce qui précède est l'analyse complète de l'ERC-4626.

En raison de raisons historiques, de nombreux coffres-forts actuellement sur le marché ne sont pas conformes à l'ERC-4626 et continuent de fonctionner, comme dForce, mais ils ne peuvent pas être appliqués plus largement. Certains coffres-forts ont déjà été mis à niveau pour être conformes à l'ERC-4626, comme certains contrats de Aladdin DAO (https://github.com/AladdinDAO/deployments/blob/main/deployments.mainnet.md.

En plus de gagner des intérêts grâce au staking, les applications de coffre-fort peuvent également prêter des actions en garantie ou les staker à nouveau pour générer des revenus. De plus, la collecte de fonds par le biais de coffres-forts est également un bon scénario d'application, car certaines de ses fonctions de base peuvent fournir un excellent support.

L'essence de cette proposition est d'améliorer l'efficacité d'intégration entre les coffres-forts et l'écosystème DeFi, et de réduire les coûts de développement. Le rôle des coffres-forts eux-mêmes a encore plus de place pour l'exploration à mesure que le marché DeFi se développe.

Disclaimer:

  1. Cet article est repris de [ LXDAO], Tous les droits d'auteur appartiennent à l'auteur original [Kahn]. Si des objections sont soulevées à cette reproduction, veuillez contacter le Portail Apprendreéquipe, et ils s'en occuperont rapidement.
  2. Clause de non-responsabilité: Les points de vue et opinions exprimés dans cet article sont uniquement ceux de l'auteur et ne constituent aucun conseil en investissement.
  3. Les traductions de l'article dans d'autres langues sont réalisées par l'équipe Gate Learn. Sauf mention contraire, copier, distribuer ou plagier les articles traduits est interdit.
เริ่มตอนนี้
สมัครและรับรางวัล
$100