MasterChef Smart Contracts : les solutions aux défauts fatals

MasterChef Smart Contracts : les solutions aux défauts fatals

MasterChef présente quelques défauts qui peuvent être corrigés lors de l'utilisation, mais uniquement si les utilisateurs en sont conscients et savent ce qu'ils peuvent faire. Voici la solution de contournement, selon Gleb Zykov et Vlad Korovnikov de HashEx .

Les échanges décentralisés (DEX) étaient assez rares il y a à peine deux ans, mais ils semblent être partout aujourd'hui. De nombreux projets avec leurs propres DEX personnels. Cela s'est produit parce que, lorsqu'un projet blockchain décide de lancer un DEX, il ne le fait pas complètement à partir de zéro. Au lieu de cela, la base du code DEX est souvent un fork de l'un des deux principaux DEX : SushiSwap ou PancakeSwap.

Contrat intelligent Masterchef

Ces deux échanges ont pratiquement révolutionné l'espace DEX grâce à un contrat intelligent spécial appelé MasterChef. MasterChef apparaît dans les deux, et apparaît donc également dans tout DEX créé en tant que fork de l'un ou l'autre de ces deux. Chaque nouveau DEX partage les mêmes caractéristiques. Mais cela signifie également qu'il partage les lacunes et les vulnérabilités de MasterChef.

Examinons donc les problèmes que les utilisateurs et les développeurs peuvent rencontrer lorsqu'ils traitent avec MasterChef. A quoi doivent-ils faire attention ? Et comment faut-il les traiter ?

Comment fonctionnent les DEX ?

La première chose à noter est qu'un contrat MasterChef est un contrat intelligent écrit en Solidity qui contrôle ce qu'une ferme peut faire et comment elle peut le faire. Dans la plupart des projets, il existe plusieurs contrats intelligents qui partagent la responsabilité et le travail. Mais en ce qui concerne les protocoles basés sur MasterChef, c'est ce contrat unique qui s'occupe de tout ce qui concerne l'agriculture.

Les échanges décentralisés vous permettent d'échanger des crypto-monnaies sans avoir à déposer d'argent dans le portefeuille de l'échange. Au lieu de cela, vous déposez des fonds sur des contrats intelligents à partir de votre portefeuille. Vous êtes la seule personne qui le contrôle et peut accéder à vos fonds si les contrats ne comportent pas de portes dérobées ou de vulnérabilités.

Une autre différence est que les CEX utilisent des carnets de commandes pour acheter et vendre. Cela signifie qu'ils correspondent aux acheteurs et aux vendeurs, tandis que les DEX utilisent des protocoles Automated Market Maker (AMM) pour le trading, qui calculent le prix des actifs en fonction du montant de liquidité investi.

La liquidité provient de pools de liquidités, qui sont des pools où les utilisateurs peuvent déposer des fonds pour des paires spécifiques et mettre des fonds à disposition pour le protocole. Ensuite, lorsque quelqu'un tente d'acheter des actifs en utilisant cette paire, sa commande est immédiatement exécutée en utilisant les fonds du pool. Pendant ce temps, les personnes qui ont déposé des fonds dans le pool de liquidités reçoivent des jetons LP pour ce pool spécifique. Cela leur donne le droit de partager les récompenses.

Et, s'ils souhaitent un jour récupérer leurs fonds, il leur suffit de retourner les jetons LP qu'ils ont reçus.

Comme vous le savez peut-être, il existe plusieurs façons de générer des rendements à partir des avoirs cryptographiques. Les fermes donnent des récompenses supplémentaires pour fournir des liquidités. Les utilisateurs ajoutent des liquidités aux DEX, obtiennent des jetons LP et les misent dans des fermes.

MasterChef : vulnérabilités et défauts

Nous avons expliqué comment fonctionnent les DEX et comment fonctionnent les pools de liquidités. Examinons donc de plus près où les vulnérabilités de MasterChef entrent en jeu, comment elles affectent le processus et quelle approche vous devez adopter pour vous assurer que tout se passe bien.

MasterChef est un contrat intelligent unique utilisé pour le rendement agricole en fournissant des liquidités dans DEX. Malheureusement, il présente quelques problèmes qui peuvent être corrigés lors de l'utilisation, mais uniquement si les utilisateurs en sont conscients et savent ce qu'ils peuvent faire.

Comptes compromis

L'un des plus gros problèmes à surveiller concerne la compromission des comptes des propriétaires. Fondamentalement, SushiSwap a proposé une méthode qui lui a permis d'obtenir un avantage contre Uniswap. Cette méthode s'articule autour de la migration des actifs d'un échange à un autre. Ceci est géré par le contrat à l'aide d'une fonction distincte accessible uniquement par le titulaire du contrat.

Cependant, cette migration peut finir par être adaptée à presque tous les contrats, sans limite, ce qui s'est avéré être un oubli majeur. Par conséquent, si le compte du propriétaire est compromis, cela peut entraîner un nouvel accord de migration qui enverrait tous les jetons LP de base dans tous les pools de reproduction à une adresse arbitraire. Cela entraînerait une perte massive des actifs investis.

Il est à noter que cette fonctionnalité est désormais familière aux développeurs et finit donc par être supprimée immédiatement dans les forks. Cependant, s'il reste présent, il doit immédiatement être pris comme un drapeau rouge.

Une autre chose à noter est que, dans certaines fourchettes MasterChef, le titulaire du contrat peut modifier le taux d'émission sans aucune limite. Si le compte est compromis, cependant, un attaquant pourrait définir un taux d'émission très élevé, ce qui entraînerait la dévaluation du jeton.

Il existe un moyen assez simple de résoudre ce problème en s'assurant simplement que toutes les fonctionnalités disponibles pour le titulaire du contrat nécessitent une autorisation avec plusieurs signatures. De cette façon, si une seule adresse est compromise, les malfaiteurs ne pourront pas y faire grand-chose. Une autre chose à faire est d'ajouter un verrou temporaire (contrat Timelock) à l'appel de la fonction de migration. De cette façon, l'utilisateur a plus de temps pour prendre une décision et l'échange doit vous informer de la migration ou de toute autre transaction suspecte.

Ajout de pools agricoles identiques

Un autre problème assez évident mais passé sous silence se pose lorsque le contrat d'origine ne prend pas en compte la constitution de bassins d'élevage identiques, ce qui signifie que le contrat risque de mal calculer les primes d'élevage.

Ce n'est pas un gros problème si MasterChef est utilisé correctement, car le propriétaire n'ajouterait pas délibérément des pools identiques. En fait, dans les échanges qui fonctionnent correctement, ces choses sont vérifiées et il est fortement interdit de créer un pool en double. Ainsi, si vous commencez à créer le pool et que vous vous dirigez vers la création d'un doublon du pool existant, le système devrait pouvoir signaler une erreur. Ou suggérez d'ajouter vos fonds au pool existant au lieu d'en créer un nouveau.

Ne pas calculer le montant des jetons déposés

Pour une raison quelconque, les gens ont tendance à oublier de considérer ce qui pourrait arriver si des jetons avec des frais de transfert ou des jetons de rebase étaient ajoutés en tant que pool au contrat MasterChef. Ce qui se passe est une perturbation dans la façon dont les récompenses sont calculées, car le code du contrat n'ajoute des ressources aux pools qu'en appelant certaines fonctions. Cela signifie que l'ajout de jetons à l'adresse les combinera avec des actifs déjà dans le pool. Mais les calculs des récompenses pour ces jetons pourraient être interrompus, ce qui entraîne des vulnérabilités.

Les plateformes qui fonctionnent correctement doivent calculer séparément le montant des fonds transférés pour l'agriculture en vérifiant le montant réel transféré qui tient compte des frais. De cette façon, les calculs de récompense sont effectués correctement.

Maître Chef : Conclusion

MasterChef est un contrat intelligent unique utilisé pour le rendement agricole en fournissant des liquidités dans DEX. Malheureusement, il présente quelques problèmes qui peuvent être corrigés lors de l'utilisation, mais uniquement si les utilisateurs en sont conscients et savent ce qu'ils peuvent faire.

Ci-dessus, nous avons couvert plusieurs choses qui peuvent arriver et comment ces problèmes peuvent être évités. Mais il convient de noter qu'il en existe d'autres, comme la dilution des récompenses si les jetons sont envoyés directement à l'adresse du contrat, les problèmes de changement de bloc de démarrage, les optimisations de gaz, etc.

En d'autres termes, il y a des vulnérabilités et des problèmes à garder à l'esprit et à surveiller. Mais dans l'ensemble, MasterChef est un contrat révolutionnaire qui a pratiquement permis un commerce décentralisé. Donc, tant que vous continuez à l'utiliser avec précaution et que vous restez conscient de ses défauts et de la manière de les corriger, tout devrait bien se passer.

à propos des auteurs

Gleb Zykov

Gleb Zykov est le co-fondateur et CTO d'une société de sécurité et d'analyse DeFi HashEx .

Vlad Korovnikov est le réviseur et le développeur de Junior Smart Contract.

Avez-vous quelque chose à dire sur les solutions alternatives de Masterchef ou autre ? Écrivez -nous ou rejoignez la discussion sur notre chaîne Telegram. Vous pouvez également nous trouver sur Tik Tok , Facebook ou Twitter .

Le poste MasterChef Smart Contracts: The Workarounds for the Fatal Flaws est apparu pour la première fois sur BeInCrypto .