L'imprévu : naviguer dans un dysfonctionnement de contrat et relancer V2
Par DeHub Team — 2022-10-01
Au T4 2022, les déclencheurs de taxe dans notre contrat ont mal fonctionné. Le token s'est figé. Le pool de liquidité s'est figé avec lui. Nous avons été forcés de relancer en v2.
C’est la plus grave défaillance technique de l’histoire de DeHub et elle mérite un compte rendu franc.
## Ce qui s'est passé
Le contrat comportait une logique fiscale dans le chemin de transfert — la conception standard pour la période, où un pourcentage de chaque transaction est détourné vers la liquidité, le marketing ou les détenteurs.
Ces déclencheurs ont mal fonctionné dans des conditions réelles. Le résultat n'a pas été une expérience dégradée. Le jeton ne pouvait pas bouger, et comme le pool dépend des transferts, la liquidité s'en est trouvée bloquée. Les détenteurs ne pouvaient pas négocier. Nous ne pouvions pas le réparer de l'extérieur, car le comportement était dans la propre logique du contrat déployé.
Il n'y avait pas de patch. L'immuabilité est la propriété que vous voulez jusqu'au moment où la chose qui est immuable est cassée.
Pourquoi un audit ne l’a pas empêché
Nous avions commandé un audit Certik complet l'année précédente et avons pris la sécurité au sérieux depuis la vulnérabilité v1.
Ce n'était pas un exploit. Personne ne nous a attaqués. Le contrat a fait ce pour quoi il a été écrit, dans une combinaison de conditions qui n'avaient pas été modélisées. Les audits examinent attentivement si le code peut être utilisé à mauvais escient. Ils sont beaucoup plus faibles lorsqu'il s'agit de savoir si un design se comporte raisonnablement aux limites de ses propres hypothèses, et c'est là que cela a vécu.
C'est l'illustration la plus claire que nous ayons des limites d'un audit, c'est pourquoi nous n'avons jamais utilisé le mot comme garantie depuis.
## Ce que nous avons fait
Relancé. Il n'y avait pas d'option plus petite.
Cela signifiait un nouveau contrat et la migration de plus de 25 000 détenteurs dessus — une énorme entreprise opérationnelle réalisée dans exactement les circonstances dans lesquelles vous avez le moins de crédibilité.
Cela signifiait également décider de ce que devrait être le nouveau contrat, et nous sommes allés à la tokenomique standard ERC-20 sans rien d'intelligent dans le chemin de transfert. Aucun déclencheur fiscal. Aucune logique conditionnelle entre un détenteur et ses propres jetons.

Ce que nous avons réellement appris
La complexité du chemin de transfert est le risque. Chaque mécanisme tokenomique intelligent est un code qui s'exécute sur chaque transaction pour toujours, dans des conditions de marché que personne n'a encore vues. L'intelligence doit gagner sa place face à cela.
Immuable signifie immuable. Conception pour le cas où vous ne pouvez pas intervenir, car c'est le cas que vous obtiendrez.
La communauté assume le coût de vos décisions de conception. Les détenteurs ne pouvaient pas accéder à leurs propres postes sans faute de leur part. Quelle que soit l'explication technique, c'est ce qui s'est passé, et c'est le cadre que nous avons gardé.
Ensuite
V2 a été lancé, les détenteurs ont migré, et le trading a repris sur Gate.io au T1 2023. Le contrat simplifié fonctionne sans incident depuis.
La fin de 2022 a été la pire période que DeHub ait connue — ceci, immédiatement après l'effondrement de Palawan Venture et un tirage au sort de 1m $ manqué son minimum. Tous les trois sont dans cette archive à pleine longueur.
## Pour tous ceux qui conçoivent des tokenomics maintenant
Le conseil spécifique que nous donnerions, après l'avoir payé :
Tout ce qui se trouve dans le chemin de transfert doit être justifié par rapport au pire des cas, et non par rapport au cas prévu. Demandez ce que ce code fait à 100 fois le volume que vous attendez, à 1% de celui-ci, lors d'un événement de liquidité, et quand un contrat d'intégration se comporte d'une manière que vous n'aviez pas anticipée. Si vous ne pouvez pas répondre aux quatre, cela n'a pas sa place.
Et supposez que vous ne pourrez jamais le changer. L'exercice mental qui nous aurait sauvés est simple : notez ce que vous feriez si ce contrat commençait à mal se comporter demain et que vous n'aviez pas de clé d'administration. Si la réponse honnête est « relancer et migrer tout le monde », vous avez déjà accepté ce résultat — vous ne l'avez tout simplement pas encore planifié.
Ouvrir DeHub