Lien de l’article original : https://rekt.news/singularitynet-rekt

Source : SingularityNET, SlowMist, Bitquery, PeckShield, ASI Alliance, Blockaid, Uniswap, Baltex, AMLBot, NuNet, Fetch.ai.

Déclaration : cet article est une reprise. Les lecteurs peuvent obtenir davantage d’informations via le lien de l’article original. Si l’auteur de la reprise a des objections quant à la forme de la reprise, contactez-nous et nous effectuerons les modifications conformément à la demande de l’auteur. La reprise est uniquement destinée au partage d’informations et ne constitue aucun conseil en investissement ; elle ne représente pas les points de vue et la position de Wu Shuo.

SingularityNET s’est activé pendant des années à promouvoir un marché destiné aux agents IA intelligents autonomes.

Cependant, le soir du 19 septembre, le « plus occupé » sur son réseau n’était pas un script écrit par l’équipe de SingularityNET.

L’attaquant, en compromettant l’infrastructure cloud du projet, a obtenu les droits de signature exposés. Grâce à une seule signature, il a vidé la liquidité en FET du contrat d’échange sur Ethereum, puis a mint, de façon inexplicable, un total de 2,3 milliards de jetons AGIX, NTX, WMTX et CGV en l’espace de neuf heures. Certains reportages chiffrent le montant volé à 16,77 millions de dollars. Mais la reconstitution transaction par transaction montre que le total de fonds effectivement monétisés par l’attaquant est d’environ 2,29 millions de dollars, et que la plupart des jetons nouvellement émis n’ont pas été vendus. Toutes les clés utilisées pour signer étaient valides. Chaque smart contract qui a exécuté des instructions fonctionnait aussi selon sa logique prévue.

Mais l’impact de cette attaque ne se limite pas à la perte de fonds. Des jours plus tard, les parties concernées n’ont toujours pas publié un rapport d’enquête complet.

Quand toutes les clés d’une alliance entière de projets IA sont stockées dans le même type d’infrastructure cloud, qui contrôle réellement cette machine ?

Source : SingularityNET, SlowMist, Bitquery, PeckShield, ASI Alliance, Blockaid, Uniswap, Baltex, AMLBot, NuNet, Fetch.ai.

La première perte d’actifs est liée au FET, mais l’attaque ne s’est pas arrêtée là.

Le 19 septembre à 20 h 21, l’attaquant a finalisé le transfert de FET. À peine 2 minutes et 24 secondes plus tard, environ 8,7 millions de FET transférés avaient tous été échangés contre 522,78 ETH. À 21 h 40, Blockaid a déclenché une alerte sur la sortie de fonds FET et a indiqué que le même portefeuille avait aussi reçu un grand nombre de NTX mintés par l’adresse du déployeur de NuNet. Au départ, Blockaid a qualifié cela d’incident impliquant Fetch.ai, mais SingularityNET a ensuite confirmé que l’infrastructure compromise était la sienne. Un incident qui semblait d’abord ne concerner que Fetch.ai s’est finalement révélé avoir une portée plus large que prévu.

Le 20 septembre à 02 h 47, SlowMist a identifié le mécanisme d’attaque : il suffit de contrôler la clé de l’ayant droit pour vider le pont inter-chaînes. Une clé divulguée, plus un contrat qui lui fait confiance : ce récit s’est déjà répété à maintes reprises.

Le transfert de FET n’est pas la fin de l’attaque. 29 minutes plus tard, soit à 20 h 50 le 19 septembre, l’attaquant utilise les droits de mint de NuNet pour créer directement environ 408,5 millions de NTX sur le contrat de jeton. Un mint à plus grande échelle a commencé le lendemain à 03 h 13 : l’attaquant a mint illégalement des AGIX par lots de 10 millions. À 03 h 38, le mint illégal de WMTX a également commencé. Le mint d’AGIX s’est poursuivi jusqu’à 04 h 21, puis le CGV a connu 50 appels de mint entre 04 h 34 et 04 h 38.

À l’approche de l’aube, l’alerte publique a élargi la portée de l’incident : elle est passée d’un pont inter-chaînes dont les fonds ont été vidés à une intrusion dans des permissions portant sur plusieurs jetons. D’anciens instantanés de portefeuilles ont estimé la valeur nominale des positions de l’attaquant à environ 16,77 millions de dollars, mais cette estimation supposait que les jetons venant d’être mint, avec une profondeur de marché insuffisante, pouvaient quand même être vendus aux prix du marché.

L’attaque ne s’est pas arrêtée avec la nuit. Le 20 septembre à 13 h 10, un contrat de paiement de SingularityNET a transféré l’intégralité du solde de 289 575,10 USDC à un portefeuille qui avait été vidé pendant l’intrusion précédente. 12 secondes plus tard, les fonds sont entrés dans le deuxième portefeuille de collecte de l’attaquant.

Une signature volée : comment peut-elle vider un pont inter-chaînes en une seule invocation ? Et pourquoi n’existe-t-il aucun mécanisme on-chain pour l’empêcher ?

Clés qui n’ont jamais initié de transaction

Les jetons pris en charge par le pont inter-chaînes de SingularityNET s’étendent sur deux chaînes. Pour le chemin de transfert Cardano → Ethereum qu’il supporte, les jetons sont d’abord détruits sur Cardano, puis les ponts inter-chaînes côté Ethereum mintent ou libèrent les jetons correspondants. Cependant, le contrat côté Ethereum ne vérifie pas indépendamment si la destruction sur Cardano a bien eu lieu : il traite plutôt comme une preuve que la destruction est terminée les signatures fournies par des ayant droits préconfigurés.

Bitquery a recensé cinq adresses d’autorisés dans les ponts inter-chaînes affectés ; ces adresses n’avaient jamais envoyé de transactions on-chain auparavant. Ce modèle correspond à des clés de signature hors chaîne utilisées pour approuver la libération d’actifs d’un pont inter-chaînes, plutôt que pour initier directement des transactions. SingularityNET a ensuite indiqué qu’un tiers non autorisé « a accédé à une partie de notre infrastructure cloud », mais sans expliquer comment cette personne a obtenu l’accès.

Ce type de conception concentre la confiance de chaque pont inter-chaînes entre les mains d’une seule partie qui détient ses droits de signature.

Contrat d’échange inter-chaînes qui a vidé tout le solde FET : 0xab424a430cc09864fa1277a38193111705adf3a3

L’exécuteur d’autorisation d’échange qui a approuvé cette sortie : 0x69e5446b07b23de0a76730062c3252152216c85c

Transaction d’attaque libérant 8 721 530,40 FET : 0xfe12c63b322d52727c615f3342222138d1563400a9880cebb516a9a162ac69e2

Un rapport médico-légal établi par Athena pour ASI Alliance reconstitue l’adresse du signataire à partir des signatures issues de cette opération de sortie, et confirme qu’elle correspond à l’ayant droit configuré dans le contrat. Le rapport indique que, depuis le déploiement de ce contrat d’échange en septembre 2024, cet ayant droit n’a jamais changé.

Deux choix de conception amplifient l’impact d’une compromission des permissions. D’abord, conversionIn() n’utilise la signature que d’un seul compte externe (EOA) comme unique vérification d’autorisation ; ensuite, cette fonction ne met pas en œuvre la vérification de plafonds checkLimits(amount) utilisée dans conversionOut(). Ainsi, la limite de 100 à 1 000 000 FET configurée dans le contrat ne contraint pas conversionIn() : le contrat a finalement accepté des demandes de libération portant sur environ 8,72 millions de FET, soit environ 8,7 fois son plafond maximal annoncé.

Le rapport médico-légal d’Athena a aussi constaté que, dans l’ensemble des 100 événements normaux ConversionIn, des identifiants au format UUID générés par le backend de SingularityNET étaient utilisés. L’identifiant employé pour cette attaque est toutefois une suite d’octets bruts non ASCII, et c’est l’unique exception. Cette transaction ne présente pas les caractéristiques d’un fonctionnement normal de pont inter-chaînes.

Le mint en batch de NuNet s’exécute via l’adresse du déployeur de SingularityNET : 0xA7A31d206042B8A3E81aa4cf8c68c1B76856eE48

Transaction de mint de 408 532 878,13 NTX : 0xe14442f6171d8a652e79d44336e58c00cdab271bdb69c668493d420e03ee13ab

Le mint par lots d’AGIX est réalisé via l’adresse du déployeur de SingularityNET : 0xA7A31d206042B8A3E81aa4cf8c68c1B76856eE48

Les appels aux contrats d’échange pour AGIX, WMTX et CGV se terminent tous par une opération de mint distincte des quantités habituelles en mode batch. Ce modèle correspond à un mint automatisé exécuté en continu, jusqu’à ce qu’une contrainte d’opération soit atteinte.

Le contrat d’échange WMTX de World Mobile a bien un plafond de limites par appel, mais il n’a pas empêché l’attaque : il a seulement forcé l’attaquant à morceler le mint en 503 appels. La plupart des appels mintaient précisément 1 million de WMTX, avec au maximum dix occurrences dans un même bloc.

Bitquery indique qu’avant qu’aucun jeton ne soit minté, 16 portefeuilles ont été vidés dans un délai de 21 minutes, et qu’à la même période des activités liées au BNB Chain ont également eu lieu. D’après son répertoire d’adresses, quatre portefeuilles portent des étiquettes d’employés SingularityNET ou NuNet, dont un compte qui a déployé un contrat d’échange correspondant en 2022. Cela montre que l’incident implique plusieurs voies d’autorisation pour les projets affectés.

Une adresse de récupération a modifié la configuration de l’ayant droit des contrats d’échange NuNet, Cogito et Rejuve, puis a gelé le NTX. Bitquery indique que les contrats d’échange AGIX et WMTX n’ont pas pu être traités de manière opportune par le même procédé, car leurs propriétaires étaient respectivement un portefeuille multi-signature Gnosis Safe et un Safe multi-signature nécessitant l’approbation de trois des quatre signataires. Pendant la passation des permissions, le mint d’AGIX et de WMTX s’est encore poursuivi pendant environ une heure.

SingularityNET écrit : « Notre système accepte régulièrement des audits et suit les normes de sécurité de l’industrie. » Les audits peuvent évaluer le code des smart contracts, mais uniquement sur la base d’un audit, ils ne peuvent pas prouver que les systèmes hors chaîne et les clés privées utilisés pour générer les signatures ou exercer les permissions de signature sont sécurisés. Les clés d’autorisation liées aux projets affectés fournissaient des signatures valides, permettant ainsi de générer une grande quantité de jetons supplémentaires.

Alors, quelle part de la lourde perte évoquée dans le reportage s’est réellement transformée en actifs liquides, et quelle part n’est que des jetons nouvellement émis que le marché pourrait ne même pas être en mesure d’absorber ?

Des millions de dollars au comptable

Les différents chiffres mentionnés dans cet article mesurent des choses différentes. Le transfert de jetons depuis le contrat sans autorisation correspond à une perte directe d’actifs ; le mint de jetons sans autorisation détruit l’offre de jetons. Les adresses associées à l’attaquant obtiennent des ETH et des stablecoins à partir de la vente de jetons ou du retrait direct d’actifs ; ce n’est alors que du bénéfice déjà réalisé. Le solde calculé à partir des cotations de marché des jetons n’est ni automatiquement égal à de la trésorerie, ni automatiquement égal à une valeur qu’on peut recouvrer. Des reportages antérieurs ont confondu ces notions à répétition.

Faire mint 2,3 milliards de jetons est facile, trouver un acheteur l’est beaucoup moins. Le FET transféré via le pont inter-chaînes constitue la plus grande opération de monétisation en une seule transaction identifiée. Grâce à un échange effectué via le routage MetaMask, après déduction des frais visibles pour ce chemin, ces FET ont été échangés contre 522,78 ETH.

Transaction d’échange d’environ 8 720 000 FET contre 522,78 ETH : 0x98f6e59b54fd4d2c086cc7cab4e7070edff6410210a1bf1fbaffd62da3b76d1c

Deux adresses ont reçu la majorité des gains identifiés et des jetons nouvellement émis. La principale adresse de collecte de l’attaquant a reçu les FET transférés et le NTX nouvellement minté. D’après la reconstitution de cette transaction, elle est aussi destinataire des 26 premières transactions parmi 90 appels de mint d’AGIX, et des 54 premières transactions parmi 503 appels de mint de WMTX.

Principale adresse de collecte de l’attaquant : 0x2dcc1085fdcf418b421e45e86e4e54637cc21dfe

Le deuxième portefeuille a reçu les jetons générés par le reste des 64 appels de mint AGIX, 449 appels de mint WMTX, l’ensemble des 50 appels de mint CGV, ainsi que les USDC provenant du contrat de paiement.

Adresse du deuxième portefeuille : 0x83f4424a401a9bb75f90314f21adaea6a9ce09c5

Bitquery remonte la source des premiers fonds de la principale adresse de collecte jusqu’à ChangeNOW.

La transaction par laquelle ChangeNOW fournit des fonds : 0xa99a8b71bd90d295db305639fc976339a057812c2693f3e44ae9288e5c13ebe1

L’historique Ethereum de cette adresse de collecte montre aussi qu’une livraison effectuée via le pont inter-chaînes Across a eu lieu le 1er septembre.

Transaction de livraison Across du 1er septembre : 0xb56d3b900b5ac694d56d6efb9552a89fc0a14641eceefa7e16107cb8ccb0ea6d

Le 20 septembre à 04 h 04, le deuxième portefeuille reçoit l’ETH destiné au paiement du gas, puis commence à vendre les jetons après environ une minute.

Transaction par laquelle le deuxième portefeuille reçoit des fonds pour le gas : 0x4e8894823caaf8fefaf0849cf69b30148ae5ddcee9e7f9bd0c1be0dae0c720c2

Transaction par laquelle le deuxième portefeuille autorise MetaMask Swap Router à utiliser 100 000 WMTX : 0x8fcaa005da0c1a5ab138898571e2974ba8aa8f0b9864381e5b2b98b81e702da9

La transaction de la première vente du deuxième portefeuille de WMTX : après déduction des frais MetaMask affichés, 100 000 WMTX ont été échangés contre 0,832455441 ETH : 0xcf4b119f38d0da10dccac787234e05c6cabe3440dfe303f4f407daa92ab8829e

Les actifs sont répartis entre deux portefeuilles, ce qui rend les statistiques présentées dans l’article plus complexes. L’alerte précoce de PeckShield a estimé la valeur des actifs appartenant à l’attaquant à 16,77 millions de dollars, incluant 198,3 millions d’AGIX, 649 ETH et 33,538 millions de WMTX.

Les résultats de vente réels révèlent l’écart entre l’évaluation comptable et la capacité de réaliser des fonds. Un échange routé via MetaMask et exécuté par Mayan a transformé 10 millions de NTX en 940,39 USDT. En parallèle, le deuxième portefeuille a passé des ordres sur UniswapX, avec une contrepartie en ETH fournie par un exécuteur tiers. Les relevés de règlement ne permettent pas de savoir comment ces exécuteurs ont réuni les fonds, s’ils ont procédé à une couverture, ni comment ils ont finalement géré le WMTX reçu.

Transaction échangée via le chemin MetaMask/Mayan pour NTX : entrée de 10 000 000 NTX, 940,5087 USDT arrivent sur le contrat source de Mayan sur Ethereum, pour être utilisé lors du règlement sur BNB Chain : 0xb6ecca4deeb2a616507a3f5779cb12db4fd986e5ee37c1832237fae2a1f1258f

CGV est l’exemple le plus extrême : 246,2 millions de CGV vendus dans le pool Uniswap de Cogito, pour seulement 0,0123 ETH en retour.

Transaction d’échange de 246 200 000 CGV contre 0,0123 ETH : 0x69a28fb152b2b1b4158ec3db17f7baf565b644859a5150c38729bbb2d198bfad

En outre, les 289 575,10 USDC envoyés par le contrat de paiement finissent par entrer dans le deuxième portefeuille, devenant ainsi une autre grosse recette en stablecoins. Ces fonds n’ont pas besoin d’être obtenus en vendant des jetons nouvellement émis.

Transaction du contrat de paiement vers l’adresse de transfert de 289 575,1047 USDC : 0x869343d87a137a52aebce119c8c35e2fc3500205bf7a8c574ec2e8f4ab677c18

Transaction par laquelle l’adresse de transfert envoie 289 575,1047 USDC vers le deuxième portefeuille : 0xca9facda3f3629fa72ff98b4c8e663d3b415011979d749fab96ed9eda287e66f

Au 22 septembre, la reconstitution des transactions une à une a révélé que les deux principales adresses ont reçu l’équivalent de quelque 742,7 ETH d’actifs, ainsi que des stablecoins d’une valeur de 362 075 dollars. Ce calcul n’inclut pas les AGIX, WMTX, CGV et NTX qui n’ont pas encore été vendus. En convertissant WETH et ETH sur un ratio 1:1, il s’agit d’un total de revenus et non d’un bénéfice net.

Une part substantielle des actifs liquides n’est pas restée dans ces deux portefeuilles principaux. Au plus tard le 21 septembre à 00 h 00, trois portefeuilles distincts ont chacun déposé 75 000 USDC dans Chainflip, 75 000 USDC dans Baltex, puis 118 015,16 USDC dans Chainflip.

Baltex décrit son service comme « sans KYC » et fait la promotion d’un parcours d’échange « confidentialité » impliquant des Monero. D’après les révélations d’AMLBot, un courtier de Chainflip a refusé un dépôt ETH et AMLBot attribue ce dépôt au même attaquant.

Transaction de dépôt de 75 000 USDC vers Chainflip : 0x3c8b12fedf147d82c8a5506edf3fcad4b7e25c8b96e4fb13b10cf2915aba0076

Transaction de dépôt de 75 000 USDC vers Baltex : 0x05d6d42c75356900e523116d34892b480e9f9134ba195db698d7b1448e0b0696

Dernière transaction de dépôt de 118 015,16 USDC vers Chainflip : 0xea254b148da1a6d028050f3a59f87845e3dc177ca37ef6441c7eb6cff47eb8ed

Aux alentours de minuit UTC, le deuxième portefeuille envoie 93,70 ETH à une adresse de réception. Les sources publiques citées dans cet article n’ont pas confirmé le propriétaire de cette adresse. Environ 40 minutes plus tard, le portefeuille principal de collecte de l’attaquant a de nouveau lancé deux transferts, chacun exactement pour 100 ETH.

Transaction par laquelle le deuxième portefeuille transfère 93,70 ETH : 0x605d803890ae4eddc684f82f6de1a82c49a6a3f5646295c1a01fd897fa2a7577

Portefeuille destinataire : 0x2fD3285C93437077EF5FA6cecc367FD24d0fF726

Les principales transactions de collecte par l’attaquant pour transférer la première tranche de 100 ETH : 0xa8511628388c330db78fcdcfe7af5577e1f300adee795b578508fb21203b4756

Transaction par laquelle l’attaquant a principalement collecté et transféré la deuxième tranche de 100 ETH : 0x14399c61687de491461f76e961a91d2c0dcda4c6bb00ba332ec18b19d394822f

AMLBot a ensuite décrit deux virements indépendants de 100 ETH chacun. Il indique que l’un des deux a été échangé contre environ 266 000 USDC, puis acheminé vers « FXMR » via CCTP, Arbitrum et Hyperliquid ; l’autre, après que le courtier de Chainflip l’a refusé, aurait ensuite été échangé en environ 3,28 BTC via THORChain. AMLBot n’a pas publié les adresses sources de ces fonds.

Les deux portefeuilles affichent aussi des transferts « de poussière » de faible montant et des enregistrements falsifiés de transferts de jetons : l’adresse d’envoi imite intentionnellement l’adresse de son contrepartiste lors de transactions précédentes, ce qui correspond à une attaque par empoisonnement d’adresse. Si tel est bien son objectif, alors quelqu’un tentait de voler encore une fois l’argent de l’attaquant.

Au 25 septembre, les principaux portefeuilles de collecte de l’attaquant détiennent environ 433 ETH, 15,94 WETH et 52 395 mUSD, ce qui correspond au solde d’environ 433 ETH rapporté par AMLBot la veille. En outre, ce portefeuille détient environ 198,3 millions d’AGIX et 33,54 millions de WMTX. Le deuxième portefeuille, lui, détient environ 18 109 USDC, 625,86 millions d’AGIX, 166,49 millions de WMTX et 246 millions de CGV.

La valeur affichée par ces jetons ne correspond pas nécessairement à la valeur réellement vendable. Une position de cette ampleur, une fois cédée, peut se heurter à une liquidité insuffisante et à un choc de prix sévère. La vraie question n’est pas « combien » le solde de l’interface affiche, mais « combien » on peut vendre, sans faire s’effondrer le marché.

D’après la reconstitution de cette transaction, le total des actifs liquides déjà monétisés résultant de l’action d’attaque est d’environ 2,29 millions de dollars. Les fonds déjà monétisés peuvent être transférés, mais environ 1,27 milliard de jetons restants ont du mal à être monétisés de la même façon. Si ces positions sont finalement vendues, qui en paiera le coût ?

Soixante-dix pour cent des jetons proviennent d’un mint illégal

Les prix peuvent se rétablir, mais la structure d’offre ne peut pas se reconstituer toute seule.

Bitquery a comptabilisé, lors de la vérification inter-chaînes, environ 1,28 milliard d’AGIX, dont environ 895,96 millions auraient été mintés pendant l’attaque, soit 70,1 % du total ; le reste, environ 382,65 millions, peut être retracé à l’offre avant l’attaque. La même analyse indique que les jetons mintés sans autorisation représentent respectivement 81,1 % de l’offre CGV, 32,4 % de l’offre WMTX et 29,0 % de l’offre NTX.

Ce mint de NTX a fait grimper l’offre inter-chaînes totale comptabilisée à environ 1,41 milliard de jetons, dépassant l’offre de 1 milliard de jetons stipulée par la documentation de NuNet. Parmi environ 40,1 millions de NTX mintés illégalement qui ont traversé l’inter-chaînes vers Cardano, environ 40 millions sont entrés dans des pools de liquidité ordinaires. Les relevés de transaction permettent de retracer le chemin de ces jetons, mais une fois qu’ils entrent dans un pool, le pool ne peut plus les distinguer des NTX émis légitimement.

Le problème avec le FET n’est pas un mint illégal, mais la capacité du pont inter-chaînes à honorer les échanges. Le contrat d’échange Ethereum chargé de libérer les FET provenant de Cardano a été vidé, tandis que Cardano conserve environ 870 millions de FET. D’après cette analyse, depuis le moment où les fonds ont été transférés, personne n’a tenté de transférer les FET de Cardano vers Ethereum, de sorte qu’aucun cas n’a encore été observé où des utilisateurs attendraient une compensation parce que le solde du contrat d’échange serait épuisé.

Le NTX pose un autre problème : environ 40 millions de jetons mintés illégalement sont déjà entrés dans le pool de liquidité ordinaire de Cardano ; même si la source n’est pas autorisée, le pool les traitera comme n’importe quel autre NTX.

SingularityNET indique que les droits d’accès compromis ont été révoqués, que les ponts inter-chaînes et contrats d’échange affectés ont été désactivés et que les transferts d’AGIX et NTX sur Ethereum ont été suspendus. Le projet déclare que les ponts inter-chaînes concernés resteront hors ligne jusqu’à ce qu’un audit de sécurité indépendant confirme qu’un retour en service est sûr. Bitquery constate qu’au 20 septembre, sur les cinq clés d’ayant droit, trois n’avaient toujours pas été remplacées. Dans le contexte d’une fermeture des ponts inter-chaînes, si ces clés peuvent encore être exploitées, seul un redémarrage effectif permettra de le vérifier.

Pour les détenteurs d’AGIX, SingularityNET a d’abord indiqué qu’une « voie de traitement ultérieur légale et vérifiée » était en préparation pour les détenteurs éligibles. Par la suite, le projet a annoncé qu’il désactiverait le jeton AGIX d’origine et émettrait un jeton de remplacement pour les détenteurs affectés, mais sans expliquer qui était éligible ni comment le jeton de remplacement serait distribué. Les transferts d’AGIX sur Ethereum restent suspendus.

Sur les AGIX comptabilisés, environ sept sur dix auraient été mintés pendant l’attaque ; la question de l’éligibilité demeure donc la plus délicate. Toute alternative doit décider quoi faire de ces positions qui, après le mint illégal, ont ensuite circulé via des transactions de marché normales.

Fetch.ai indique que son contrat n’a pas été affecté. ASI Alliance confirme que des FET d’une valeur de 1,56 million de dollars ont été transférés dans le contrat d’échange et s’engage à publier un rapport complet. Mais au moment où l’article original a été publié, ce rapport n’était toujours pas apparu, et aucune compensation n’avait été dévoilée pour les détenteurs, ni pour les exécutants d’ordres et les fournisseurs de liquidité qui auraient payé de vrais fonds pour acheter des jetons mintés illégalement.

Les signatures acceptées par le contrat de pont inter-chaînes sont bien réelles et valides. Le contrat vérifie la signature et exécute les instructions, mais sans vérifier si l’événement inter-chaînes prétendument correspondant s’est réellement produit. Le mint de NTX de NuNet emprunte une autre voie : l’attaquant a utilisé directement la permission de mint du jeton lui-même.

Une alliance, portée par une vision d’IA décentralisée, a pourtant exposé les permissions de mint de quatre jetons et la permission de libérer le FET depuis des contrats d’échange à la portée d’une seule intrusion dans l’infrastructure.

Si l’avenir décrit par ces projets est un logiciel qui fonctionne de façon autonome, alors quel logiciel détient les clés et qui le surveille ?

Les ponts inter-chaînes et les contrats d’échange acceptent les signatures des autorisés désignés. Pendant le mint inter-chaînes, le contrat considère ces signatures comme la preuve qu’un événement correspondant s’est déjà produit sur l’autre chaîne, sans vérifier lui-même que l’événement a bien eu lieu. Le mint de NTX est différent : l’attaquant utilise ses droits de mint et appelle directement la fonction mint() du contrat de jeton.

SingularityNET indique qu’un tiers non autorisé a accédé à une partie de son infrastructure cloud et en a profité pour émettre des tokens via l’infrastructure du pont inter-chaînes et en extraire des actifs. Fetch.ai indique, de son côté, que ses propres contrats n’ont pas été affectés. Toutefois, les déclarations publiques n’expliquent pas comment l’attaquant a obtenu cet accès, ni ne précisent clairement comment les différentes permissions se sont révélées exposées.

Les enregistrements on-chain permettent de suivre les transactions rendues possibles par ces permissions, mais ils ne prouvent pas comment l’attaquant a obtenu l’accès, ni ne permettent d’identifier précisément qui a pris les décisions de sécurité derrière tout cela. Bitquery constate que les adresses de cinq autorisés de pont inter-chaînes n’avaient jamais auparavant initié de transaction ; cela correspond à leur utilisation pour signer des messages hors chaîne. Le contrat vérifie la signature.

Quand une signature est traitée comme une preuve, qui vérifie que ce que la signature « prouve » est bien réel ?