← Derniers articles
💻 computer science

Formal Verification of Smart Contracts for EEG Data Governance: A Case Study with Slither and Formal Specification

Cet article démontre que si des outils automatisés tels que Slither et Mythril détectent efficacement les modèles de vulnérabilité connus, la spécification formelle est essentielle pour vérifier la correction logique et garantir la sécurité de la gouvernance des données EEG basées sur la blockchain, car elle a identifié de manière unique une vulnérabilité de dépassement de limites de tableau injectée que les outils automatisés ont manquée.

Auteurs originaux : Jonathas Tavares Neves, Moisés Pereira Bastos, Lucas Carvalho Cordeiro, Carlos Augusto de Moraes Cruz

Publié 2026-06-29
📖 6 min de lecture🧠 Analyse approfondie

Auteurs originaux : Jonathas Tavares Neves, Moisés Pereira Bastos, Lucas Carvalho Cordeiro, Carlos Augusto de Moraes Cruz

Article original sous licence CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète

Imaginez que vous construisez un coffre-fort numérique de haute technologie pour stocker les enregistrements d'ondes cérébrales (EEG) de personnes essayant de communiquer avec des ordinateurs uniquement par la pensée. Ce coffre-fort est géré par un « smart contract » (contrat intelligent) — un morceau de code sur une blockchain qui agit comme un robot garde automatisé et immuable. Son rôle est de veiller à ce que personne ne vole les données, que personne ne corrompe les registres et que le système ne plante pas.

Ce document est un rapport d'inspection de sécurité pour ce robot garde. Les chercheurs ont posé une question simple mais effrayante : « Si nous introduisons une faille dans la logique du robot, les scanners de sécurité automatiques la trouveront-ils ? »

Voici la décomposition de leur expérience, expliquée simplement :

1. La mise en place : Le « Piège »

Les chercheurs ont construit un coffre-fort numérique utilisant de réelles données d'ondes cérébrales (un ensemble de données appelé Kara-One, qui contient 406 enregistrements de 6 personnes). Pour tester la sécurité, ils n'ont pas attendu que des hackers trouvent des bugs ; ils ont délibérément planté un bug eux-mêmes.

Voyez cela comme une partie de « Où est Charlie ? », mais ils ont caché un piège spécifique :

  • Le Piège : Le robot garde recevait l'ordre de vérifier une liste d'enregistrements d'ondes cérébrales. Cependant, le code a oublié de demander : « Est-ce que le nombre que je vérifie est réellement présent dans la liste ? »
  • Le Résultat : Si quelqu'un demandait au robot de vérifier l'enregistrement n°11, alors que la liste n'en contient que 10, le robot tenterait de consulter un enregistrement inexistant. Dans le monde numérique, c'est comme essayer d'ouvrir une porte qui n'existe pas ; cela provoque une panique totale et fait planter tout le système.

2. Les trois gardes de sécurité

Les chercheurs ont engagé trois types différents de gardes de sécurité pour trouver ce piège planté :

  • Garde A (Slither) : L'Inspecteur Rapide. Cet outil scanne le code très rapidement (en environ 2 secondes) à la recherche d'un « Avis de Recherche » de mauvaises habitudes connues (comme laisser une porte déverrouillée ou laisser entrer des inconnus). Il est excellent pour repérer les erreurs communes.
  • Garde B (Mythril) : Le Simulateur. Cet outil prétend être un hacker, exécutant des millions de scénarios différents dans une simulation informatique pour voir s'il peut briser le système. Il est approfondi mais prend plus de temps (environ 45 secondes).
  • Garde C (Spécification Formelle) : Le Détective de la Logique. Ce n'est pas une machine ; c'est un expert humain qui écrit les règles du jeu avant même que le code ne soit exécuté. Il demande : « Si l'entrée est 11, et que la taille de la liste est 10, est-ce que le calcul tient la route ? »

3. La Grande Découverte

Voici ce qui s'est passé lorsqu'ils ont testé le piège planté :

  • L'Inspecteur Rapide (Slither) et le Simulateur (Mythril) ont tous deux ÉCHOUÉ. Ils ont examiné le code, exécuté leurs tests et ont déclaré : « Tout semble correct ! ». Ils ont manqué le piège complètement. Pourquoi ? Parce que le piège n'était pas une « mauvaise habitude connue » (comme une porte mal fermée) ; c'était une erreur de logique. Le code était syntaxiquement correct, mais le raisonnement était brisé. Ces outils sont comme des correcteurs orthographiques ; ils attrapent les fautes de frappe, mais ne peuvent pas vous dire si votre phrase a un sens logique.
  • Le Détective de la Logique (Spécification Formelle) a RÉUSSI. En écrivant les règles, l'expert humain a immédiatement vu la règle manquante : « Vous devez vérifier si le nombre est inférieur à la taille de la liste ». Il a capturé le bug instantanément.

4. Le Test en Conditions Réelles

Les chercheurs ne se sont pas arrêtés à ce piège. Ils ont également testé le système avec les données réelles d'ondes cérébrales (l'ensemble de données Kara-One).

  • Ils ont réussi à stocker 406 enregistrements sur la blockchain.
  • Ils ont vérifié 8 règles de sécurité différentes (comme « pas d'ID en double » et « les horodatages doivent progresser vers l'avant »).
  • Résultat : Le système a parfaitement fonctionné pour les données réelles, mais seulement parce que le Détective de la Logique avait déjà réparé le piège caché que les outils automatiques avaient manqué.

5. La Leçon Principale : La Stratégie de la « Défense en Profondeur »

Le document conclut que vous ne pouvez pas vous contenter d'un seul type de garde de sécurité. Vous avez besoin d'une approche d'équipe, qu'ils appellent une Stratégie de Défense en Profondeur :

  1. Le Détective de la Logique (Spécification Formelle) : Vous devez utiliser ceci pour les parties les plus critiques du système (comme les données médicales). Cela prouve que les mathématiques sont exactes. C'est lent et cela demande un effort humain, mais c'est le seul moyen de capturer les bugs « logiques ».
  2. L'Inspecteur Rapide (Slither) : Utilisez-le à chaque fois que vous modifiez le code (comme un contrôle quotidien). Il est rapide et attrape les erreurs faciles et communes.
  3. Le Simulateur (Mythril) : Utilisez-le juste avant de lancer votre système pour revérifier les techniques spécifiques des hackers.

L'Essentiel

Si vous construisez un système pour protéger des données médicales sensibles (comme des scanners cérébraux), les outils automatisés sont nécessaires, mais ils ne sont pas suffisants. Ils sont comme un détecteur de métaux dans un aéroport ; ils trouvent les couteaux et les pistolets (menaces connues), mais ils ne trouveront pas une bombe faite de logique pour laquelle les règles n'ont pas prévu de réponse.

Pour garder votre coffre-fort numérique en sécurité, vous devez combiner la vitesse des machines avec la pensée profonde de la logique humaine. Comme le dit le document, pour les applications médicales critiques, la vérification formelle n'est pas un supplément optionnel ; c'est une exigence.

Noyé(e) sous les articles dans votre domaine ?

Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.

Essayer Digest →