Anthropic a publié FlashProve, un prototype de recherche open source consacré à l’inférence prouvable. Ce système, fondé sur un zkSNARK (une preuve cryptographique permettant de démontrer une affirmation sans en révéler les détails), permet de prouver qu’une réponse provient d’un modèle figé, sans rien révéler de ses poids.
- Anthropic publie FlashProve, un prototype open source qui prouve qu’une réponse provient d’un modèle figé.
- Le système détecte les substitutions de modèle sans révéler les poids.
- Il reste coûteux : une preuve pèse 18,78 Mo et demande environ 72 fois plus de temps GPU que vLLM par lot.
- Il se limite à 1 024 tokens par requête, au décodage glouton et aux modèles MoE.
Le problème visé concerne d’abord les développeurs. Aujourd’hui, un utilisateur qui interroge un modèle ne peut pas vérifier quel modèle a réellement produit la réponse. Un service d’aiguillage pourrait remplacer le modèle demandé par un modèle moins coûteux, et un attaquant pourrait modifier le flux de tokens (les unités de texte traitées par le modèle). Juger la qualité d’une réponse ne suffit pas, selon la source, pour détecter ces substitutions.
Fonctionnement et performances
FlashProve oppose deux acteurs : le prouveur, c’est-à-dire le fournisseur du modèle, et le vérificateur, c’est-à-dire l’utilisateur. Le système fonctionne en deux phases. Hors ligne, le fournisseur publie un engagement, une empreinte courte qui lie un ensemble exact de poids. Cette étape prend environ 39 minutes et couvre environ 16 millions de requêtes. En ligne, le GPU produit pour chaque requête une preuve que le modèle engagé a bien généré ces tokens.
Anthropic affirme que ce dispositif offre une sécurité post-quantique, et indique qu’il appartient à la même famille que les preuves de validité utilisées par des réseaux de niveau 2 comme Starknet. Selon le guide de performance du dépôt, Anthropic a mesuré le système sur les poids publics de Llama 4 Maverick, un modèle de 400B paramètres en mélange d’experts (MoE, architecture qui n’active qu’une partie des paramètres à chaque token), avec 4 bits de précision, sur un seul H100, un GPU de Nvidia.
Pour un lot de 24 requêtes, le débit annoncé est de 111,23 tokens par seconde. Une requête seule ne atteint que 17,41 tokens par seconde. La taille de la preuve est de 18,78 Mo, et sa vérification prend 17 secondes sur 24 threads. Face à vLLM, un système d’inférence exécutant Maverick en FP8 sur 8 H100, la preuve coûte environ 72 fois plus de temps GPU par lot, et environ 94 fois au débit maximal testé par vLLM.
Sécurité et limites
Le code cryptographique étant fragile, Anthropic dit avoir formalisé le protocole dans le langage Lean, pour en prouver la complétude, la validité et la divulgation nulle de connaissance. Le README indique qu’un fournisseur tricheur serait détecté, sauf avec une probabilité d’environ q/2^124 + 2^-101. FlashProve comprend deux vérificateurs : un vérificateur rapide en C++, destiné à un usage quotidien, mais qui ne bénéficie d’aucune garantie formelle, et un vérificateur plus lent en Lean, dont l’acceptation se limite, selon Anthropic, à ce que le théorème de validité admet.
Le système comporte aussi des contraintes. Il est limité à 1 024 tokens par requête, au décodage glouton et aux modèles MoE pour l’instant. Anthropic indique par ailleurs que son équipe a utilisé Claude pour optimiser le système. Le code est publié sous licence Apache 2.0 sur le dépôt GitHub de FlashProve.
