← Derniers articles
💻 computer science

From Rocq to Metal: A Pipeline for Formally Verified Microcontroller Firmware

Cet article présente Encore !, une machine virtuelle de type « Continuation Passing Style » sur matériel nu qui permet l'exécution de micrologiciels Scheme extraits de Rocq et formellement vérifiés sur des microcontrôleurs en structurant le cœur comme une fonction de transition d'état prouvable, facilitant ainsi la génération assistée par IA de code critique pour la sécurité avec des garanties vérifiées par machine.

Auteurs originaux : Valentin Bergeron, Karolina Gorna

Publié 2026-06-03
📖 5 min de lecture🧠 Analyse approfondie

Auteurs originaux : Valentin Bergeron, Karolina Gorna

Article original sous licence CC BY 4.0 (http://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 de haute sécurité pour une banque. Vous devez écrire les instructions (le « firmware ») qui disent au coffre-fort comment s'ouvrir, se fermer et compter l'argent. Par le passé, écrire ces instructions était difficile, et vérifier l'absence d'erreurs l'était encore plus. Aujourd'hui, avec l'IA, nous pouvons générer ces instructions instantanément, mais cela crée un nouveau problème : Comment faire confiance à un code écrit par une machine que nous ne comprenons pas pleinement ?

Ce document, « From Rocq to Metal », présente une solution : une manière d'écrire ces instructions critiques dans un langage dont la perfection est mathématiquement prouvée, puis d'exécuter cette preuve directement sur de minuscules et peu coûteux puces informatiques trouvées dans des appareils comme les portefeuilles matériels (hardware wallets).

Voici la décomposition de leur approche en utilisant des analogies simples :

1. Le Problème : La « Combinaison Spatiale Lourde » contre le « Petit Robot »

La plupart des langages de programmation modernes qui permettent la « preuve mathématique » (comme Lean 4 ou l'OCaml standard) sont comme des combinaisons spatiales technologiques et lourdes. Elles sont excellentes pour les astronautes (ordinateurs puissants), mais elles sont trop lourdes et encombrantes pour un petit robot (une puce microcontrôleur) qui doit tenir dans un appareil de la taille d'une carte de crédit.

  • Le problème : Si vous essayez de mettre cette combinaison spatiale lourde sur le petit robot, le robot s'effondre sous le poids. Il n'a pas assez de batterie (RAM) ou de stockage (Flash) pour exécuter le logiciel de « preuve ».
  • L'ancienne méthode : Les développeurs écrivaient auparavant le code dans la combinaison lourde, puis le traduisaient manuellement dans un langage simple pour le robot. Mais cette traduction est comme un jeu de « Téléphone arabe » — des erreurs s'y glissent, et la preuve mathématique est perdue.

2. La Solution : « Encore ! » (Le Traducteur Ultra-Léger)

Les auteurs ont construit un nouvel outil appelé Encore!. Considérez Encore! comme un traducteur spécialisé et ultra-léger qui peut tenir dans la poche du petit robot.

  • Comment ça marche : Vous écrivez vos instructions dans un langage rigoureux et mathématique appelé Rocq (ce qui revient à écrire une recette selon une logique parfaite et immuable).
  • La magie : Au lieu de traduire la recette dans un langage désordonné et sujet aux erreurs, Encore! la convertit directement en un « bytecode » minuscule et efficace que le robot peut exécuter.
  • Le résultat : Le robot exécute la même logique exacte qui a été mathématiquement prouvée. Il n'y a pas de jeu de « Téléphone arabe » ; la preuve voyage jusqu'au métal.

3. L'Architecture : La « Machine à États »

Pour faire fonctionner cela, les auteurs ont réorganisé la manière dont le logiciel est construit. Ils traitent l'appareil comme un jeu de société.

  • Le plateau de jeu (État) : La situation actuelle (ex: « En attente qu'un utilisateur appuie sur un bouton »).
  • Le jet de dés (Événement) : Quelque chose se passe (ex: « L'utilisateur a appuyé sur le bouton »).
  • Le livre de règles (Le Noyau Prouvé) : Une fonction mathématique pure qui dit : « Si le plateau est à l'État A et que vous lancez un 6, le plateau doit passer à l'État B. »
  • L'Arbitre (La Partie Non Vérifiée) : Les parties du système qui communiquent avec le monde physique (lire le bouton, éclairer l'écran). Ce sont les seules parties qui ne sont pas mathématiquement prouvées, mais elles sont maintenues très petites et simples.

Pourquoi c'est important : Le « Livre de règles » (la logique métier) peut devenir aussi grand et complexe que vous le souhaitez, et il reste 100 % prouvable. L'« Arbitre » reste petit et constant. Cela signifie que vous pouvez ajouter des fonctionnalités complexes sans rendre la sécurité plus difficile à vérifier.

4. Le Lien avec l'IA : « Les Preuves comme Revues de Code »

Le document suggère un futur où l'IA aide à écrire le code, mais l'IA ne se contente pas de deviner.

  • L'ancienne méthode : Une IA écrit du code ; un humain le lit pour vérifier les bugs. Cela ne passe pas à l'échelle.
  • La nouvelle méthode : Une IA écrit la preuve mathématique (le théorème). L'ordinateur vérifie la preuve. Si la preuve est valide, le code est garanti correct.
  • L'analogie : Au lieu de demander à un humain de lire un roman de 100 pages pour trouver une faute de frappe, vous demandez à un ordinateur de vérifier une équation mathématique de 10 pages. Si l'équation est juste, l'histoire est juste.

5. Les Résultats : Ça fonctionne vraiment

L'équipe a testé cela sur du matériel réel (un portefeuille matériel Ledger Flex, qui utilise une puce très petite et sécurisée).

  • Ils ont pris une application de signature de transaction (le genre de chose qui déplace de l'argent).
  • Ils ont écrit la logique centrale en Rocq et ont prouvé qu'elle était correcte.
  • Ils ont utilisé Encore! pour l'exécuter sur la puce.
  • Le résultat : La puce a exécuté avec succès le code mathématiquement prouvé, a analysé les données et a signé des transactions, tout en respectant les limites de mémoire infimes de l'appareil.

Résumé

Le document prouve que vous n'avez pas à choisir entre haute sécurité (preuves mathématiques) et petit matériel (microcontrôleurs). En construisant un moteur personnalisé et léger (Encore!) et en structurant le logiciel comme un simple jeu de société, ils ont montré que le code « parfait » peut s'exécuter sur des puces « imparfaites » dès aujourd'hui. Cela ouvre la porte à un code généré par l'IA qui est automatiquement vérifié, rendant les appareils critiques comme les portefeuilles matériels plus sûrs et plus fiables.

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 →