Les solutions de contournement pour les failles fatales

MasterChef présente certains 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 HachageEx.

Échanges décentralisés (DEX) étaient assez rares il y a seulement deux ans, et pourtant aujourd'hui, il semble qu'ils soient partout. De nombreux projets ayant 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 entièrement à partir de zéro. Au lieu de cela, la base du code du DEX est souvent un fork de l'un des deux principaux DEX - Échange de sushis or échange de crêpes.

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 il apparaît donc également dans n'importe quel DEX qui a été créé comme un fork de l'un de ces deux. Chaque nouveau DEX partage les mêmes fonctionnalités. 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 les approcher ?

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 partageant 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'élevage.

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

Une autre différence réside dans le fait que les CEX utilisent des carnets de commandes pour acheter et vendre. Cela signifie qu'ils font correspondre les acheteurs avec les vendeurs, tandis que les DEX utilisent AMM (Automated Market Fabricant) des protocoles de trading, qui calcule le prix des actifs en fonction de la quantité de liquidité investie.

La liquidité provient des pools de liquidités, qui sont des pools dans lesquels les utilisateurs peuvent déposer des fonds pour des paires spécifiques et mettre des fonds à disposition pour le protocole. Ensuite, lorsque quelqu'un essaie 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 rendre les jetons LP qu'ils ont reçus.

Comme vous le savez peut-être, il existe plusieurs façons de générer 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 investissent dans des fermes.

MasterChef : Vulnérabilités et failles

Nous avons couvert le fonctionnement des DEX et le fonctionnement des 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, ainsi que l'approche que 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 en DEX. Malheureusement, il présente certains 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.

Comptes compromis

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

Cependant, cette migration peut finir par être adaptée à pratiquement n'importe quel contrat, sans aucune limite, ce qui s'est avéré être un oubli majeur. Ainsi, si le compte propriétaire est compromis, cela peut entraîner un nouveau contrat de migration qui enverrait tous les jetons LP de base dans tous les pools agricoles à une adresse arbitraire. Cela conduirait à une perte massive des actifs investis.

Il est à noter que cette fonction est désormais familière aux développeurs, et qu'elle finit donc par être supprimée d'emblée dans Fourchettes. Cependant, s'il reste présent, cela devrait instantanément être considéré comme un drapeau rouge.

Une autre chose à noter est que, dans certaines fourches MasterChef, le propriétaire du contrat peut modifier le taux d'émission sans aucune limite. Si le compte est compromis, cependant, un attaquant peut 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 propriétaire du contrat nécessitent une autorisation multi-signatures. De cette façon, si une seule adresse est compromise, les mauvais acteurs ne pourront pas en faire grand-chose. Une autre chose à faire est d'ajouter un blocage 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 devrait vous informer de la migration ou de toute autre transaction suspecte.

Ajout de pools agricoles identiques

Un autre problème assez évident mais négligé apparaît lorsque le contrat initial ne tient pas compte du traitement de pools agricoles identiques, ce qui signifie que le contrat menace de calculer à tort les récompenses agricoles.

Ce n'est pas un gros problème si le MasterChef est utilisé correctement, car le propriétaire n'ajouterait pas exprès des pools identiques. En fait, dans les échanges qui fonctionnent correctement, ces choses sont vérifiées et la création d'un pool en double est fortement interdite. Ainsi, si vous démarrez la création du 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 que vous ajoutiez vos fonds au pool existant au lieu d'en créer un nouveau.

Ne pas calculer la quantité de 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 commissions sur les transferts ou des jetons de rebase sont ajoutés en tant que pools au contrat MasterChef. Ce qui se passe, c'est une panne dans la façon dont les récompenses sont calculées, puisque le code du contrat ajoute des actifs aux pools uniquement en appelant certaines fonctions. Cela signifie que l'ajout de jetons à l'adresse les combinera avec les actifs déjà dans le pool. Mais les calculs des récompenses pour ces jetons peuvent être brisés, ce qui entraîne des vulnérabilités.

Les plates-formes qui fonctionnent correctement doivent calculer séparément la quantité de fonds transférés pour l'agriculture en vérifiant le montant réel transféré qui tient compte des commissions. 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 en DEX. Malheureusement, il présente certains 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. 

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 y en a plus, 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 des échanges décentralisés. 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 DeFi sécurité et société d'analyse HachageEx.

â € <â € <Vlad Korovnikov est l'auditeur et développeur Junior Smart Contract.

Vous en aveztquelque chose à dire sur les solutions de contournement de Masterchef ou quoi que ce soit d'autre ? Laissez nous un message ou rejoignez la discussion dans notre Chaîne de télégramme. Vous pouvez également nous retrouver sur Tik Tok, Facebookou Twitter.

Clause de non-responsabilité 

Toutes les informations contenues sur notre site Web sont publiées de bonne foi et à des fins d'information générale uniquement. Toute action prise par le lecteur sur les informations présentes sur notre site Web est strictement à ses propres risques.

Source : https://beincrypto.com/masterchef-smart-contracts-the-workarounds-for-the-fatal-flaws/