
Comme cela a été rapporté cette semaine, une adresse associée à l'exploit FTX a transféré des fonds à travers un certain nombre de projets inter-chaînes.
Bien que la plupart des fonds soient passés par Thorchain, certains d’entre eux ont été acheminés via tBTC. Dans le processus, deux bugs ont été révélés.
Aucun des deux bugs ne met en danger les fonds des utilisateurs. Le premier a été corrigé et publié hier, tandis que le second nécessite une discussion et un consensus de la communauté.
Le premier bug — un vecteur de déni de service
Le samedi 30 septembre, une adresse associée à FTX a demandé un rachat de 76,81431578 BTC.
Aujourd’hui, dans tBTC, les rachats peuvent être demandés par tout utilisateur disposant d’un solde tBTC L1. Après un certain temps, un responsable hors chaîne délégué par le Threshold DAO dans le
Coordinateur de portefeuille
Le contrat vérifie une demande de rachat, invitant les signataires à considérer une demande de rachat valide. Si 51 signataires sur 100 pour un portefeuille particulier sont d’accord, ils signent et libèrent conjointement ces fonds sur la blockchain Bitcoin.
Après un certain temps, cette demande de rachat a été approuvée par le responsable des rachats. Au moins 51 des signataires du portefeuille associé ont accepté et le rachat a été finalisé.
9 heures plus tard, une autre adresse associée à l'exploit FTX a demandé un autre rachat – cette fois pour 76,62186419 BTC.
Peu de temps après, quelque chose d’incroyable s’est produit.
Un tiers inconnu a envoyé des transactions BTC à deux des portefeuilles derrière tBTC.
Maintenant, cela arrive tout le temps – après tout, le tBTC est créé en déposant du BTC. Mais au lieu d'une transaction de dépôt normale, ces transactions ont été élaborées manuellement de telle manière que les clients signataires du tBTC pensaient que les portefeuilles étaient « occupés » à déplacer des fonds et incapables de répondre aux demandes de rachat. Le responsable de l'approbation a attendu que les portefeuilles ne soient plus « occupés » – ce qui n'est jamais arrivé.
En effet, ces transactions BTC ont bloqué tous les rachats de tBTC en cours.
Nous ne savons pas qui a envoyé ces transactions. Mais quels qu’ils soient, ils en savaient assez pour suspendre de force le pont tBTC, brûlant ainsi un simple exploit de 0 jour et empêchant l’approbation du deuxième rachat associé à FTX.
C'est un nouveau pour moi. Aucun chapeau blanc n’a tendu la main, personne n’a proposé d’explication – mais le timing est incroyable.
À ce stade, les systèmes d’alerte et de surveillance utilisés par les contributeurs de la DAO étaient bruyants. L'équipe de développement de Keep a commencé à préparer un correctif pour corriger le déni de service au cours du week-end.
À ce moment-là, nous avions également compris que l’un des rachats bloqués était associé à FTX.
Le deuxième bug : défaut de conception du mécanisme de remboursement
Le deuxième bug est devenu apparent lors de la préparation du premier patch.
Le Threshold DAO peut déléguer à plusieurs adresses d'approbateur dans le
Coordinateur de portefeuille
contracter.
Malheureusement, à ce jour, il n’y a eu qu’une seule délégation vers une seule adresse de responsable – un seul point d’échec. Aujourd'hui, cette adresse est contrôlée par une société américaine qui n'est pas habilitée à approuver le rachat associé au FTX.
Fixation de la conception du mécanisme
N'avoir qu'un seul approbateur délégué avec 25 millions de dollars en TVL était un oubli. Mais le plus gros problème réside dans la conception du mécanisme lui-même.
Tout système reposant sur l’approbation explicite d’un rachat est forcément confronté à un autre problème de ce type. Lorsque le protocole a été lancé pour la première fois, la justification d'un mécanisme d'approbation était la rapidité et la convivialité – les alternatives signifiaient une pire expérience utilisateur.
Je ne pense pas que le système actuel ait fait les bons compromis.
Il existe deux approches claires pour corriger cette faille
Passer d'un flux basé sur l'approbation à un flux basé sur le veto
Supprimer tous les examens de remboursement au niveau du protocole
Je crois que la conception du mécanisme le plus sûr, à l’avenir, est ce que j’appelle des « rachats optimistes ». Au lieu d'une liste d'adresses qui finalisent les rachats, nous avons une liste d'adresses qui peuvent opposer leur veto à un rachat – similaire au rôle de gardien dans la frappe optimiste.
Avec ce mécanisme en place, tous les rachats sont valables par défaut. Si un rachat fait l’objet d’un veto en raison d’un piratage présumé d’un pont, il peut être retardé. Si suffisamment de tuteurs y opposent leur veto, il peut revenir au vote des détenteurs de jetons. Si le veto est confirmé par un vote du détenteur du jeton, le rachat de tBTC rejeté peut être automatiquement restitué à l'utilisateur qui a effectué le rachat.
L’inconvénient est que ce mécanisme hypothétique nécessite un délai supplémentaire à chaque rachat. Au fil du temps, cependant, ce délai pourrait être réduit à 15 minutes seulement et entièrement supprimé pour les petites transactions.
Enfin, si et quand la communauté juge le système sécurisé sans période d'examen du remboursement, elle pourrait éliminer complètement le retard, passant en douceur de la première approche à la seconde. En fait, je pense qu’un calendrier clair pour supprimer l’examen des rachats contribuerait à renforcer la confiance au sein de la communauté.
Quelle que soit la manière dont ce défaut de conception du mécanisme est résolu, nous avons beaucoup appris de cette expérience – et je suis heureux que nous l'ayons appris cette semaine plutôt que 10 fois à partir d'ici.
Et ensuite ?
Le DAO et la communauté ont des décisions à prendre.
Que la communauté décide d'ajouter une autre adresse d'approbateur, de mettre à niveau les contrats vers un mécanisme de type « rachat optimiste », ou de rechercher et d'envisager d'autres options, en tant qu'équipe de développement, nous sommes là pour vous conseiller et vous aider à créer un système plus robuste et plus sécurisé. , et un avenir neutre de la finance, ensemble.