Ce post explique comment nous réfléchissons aux incidents comme la panne de Cloudflare cette semaine, pourquoi les plans de contrôle basés uniquement sur des Smart Contracts avec timelocks modifient les modes de défaillance, et où les preuves à divulgation nulle de connaissance s'intègrent.
Le 18 novembre 2025 à 11h20 (UTC), l'infrastructure edge de Cloudflare a commencé à renvoyer des erreurs 5xx pour une grande partie du trafic. La cause première n'était pas une attaque, mais un changement de permissions ClickHouse qui a fait qu'une requête renvoie des lignes en double. Cette requête générait un "fichier de fonctionnalités" de gestion des bots envoyé à chaque serveur edge toutes les quelques minutes.
Les doublons ont doublé la taille du fichier et fait passer le nombre de fonctionnalités au-delà de 200. Le module de bots avait une limite stricte et un unwrap() qui paniquait en cas de dépassement. Comme les nœuds alternaient entre les sorties "anciennes-bonnes" et "nouvelles-mauvaises" toutes les cinq minutes, la flotte oscillait jusqu'à ce que tous les shards soient mis à jour et restent dans un état défectueux.
Cloudflare a arrêté le système de publication à 14h24, a déployé un dernier fichier connu comme fonctionnel à 14h30, et a signalé une récupération complète à 17h06. Les suivis qu'ils ont listés : renforcer l'ingestion de la configuration interne, ajouter des interrupteurs d'arrêt globaux et revoir les modes de défaillance dans tous les modules.
Consultez le post-mortem de Cloudflare pour la chronologie complète et les extraits de code.
Il y a deux problèmes distincts dans cette histoire :
Vous corrigez toujours (2) dans les revues de code. Mais (1) est là où les blockchains excellent : comme une barrière programmable et inviolable devant les déploiements.
Si vous compressez l'idée en une phrase : aucune configuration ne devient "actuelle" sans l'accord d'un smart contract, et le contrat ne bascule ce drapeau qu'après un timelock et une preuve que l'artefact respecte les invariants. Cette seule phrase implique une architecture complète.
Il s'avère que les blockchains publiques, en particulier celles construites sur Ethereum, les chaînes EVM exécutant la Machine Virtuelle Ethereum et la couche de consensus, offrent une bonne solution à ce problème.
Adaptation de la latence. Ethereum finalise par époques, mais les L2 confirment en secondes (OP Stack vise ~2s ; zkSync ~1s ; de nombreux systèmes exposent une attestation rapide). C'est suffisant pour des cadences de plan de contrôle de cinq minutes, voir par exemple la discussion sur le temps de bloc OP ou les délais d'attestation de Circle).
Attachez une preuve succincte à chaque artefact et vérifiez-la on-chain. C'est exactement ce que nous faisons pour notre protocole Chainwall, bien que pour un type de données différent !
L'objectif principal est de prouver des propriétés de base : row_count <= 200, trié + unique par clé, schéma correspondant aux règles regex et de type, taille de fichier <= N. Vous pouvez soit intégrer toute la logique on-chain, soit vous appuyer sur des circuits Plonk/Groth pour des expressions plus importantes. Par exemple, un invité zk-VM peut analyser CSV/Parquet/JSON et émettre un SNARK. Vous n'avez pas à révéler le contenu, seulement l'engagement. Des systèmes de recherche et de production pour regex en ZK existent (par exemple, Reef et les travaux connexes sur zk-regex), ce qui rend les vérifications de schéma réalistes.
Il y a deux voies pratiques :
Les edges interrogent le registre et n'adoptent que les artefacts qui sont validés on-chain. Pour éviter de faire confiance à un RPC tiers, exécutez un client léger dans votre plan de contrôle (par exemple, Helios) ou planifiez pour le Portal Network. De cette façon, les edges vérifient localement les en-têtes et les preuves d'inclusion avant d'accepter tout nouvel état "actuel".
L'interrupteur d'arrêt et le rollback ne sont que des bits dans le contrat, respectés par l'edge. Cloudflare a explicitement souligné la nécessité d'interrupteurs d'arrêt globaux plus robustes ; placer cet interrupteur dans un petit contrat audité vous donne une source unique de vérité sous pression.
L'événement CloudFlare n'était pas une attaque, mais ils l'ont initialement pensé et c'était en effet probable ! Comme nous l'avons vu dans la sécurité crypto : les attaquants ne se contentent pas de poursuivre les clés ; ils contraignent le plan de contrôle.
Notre position : le contrôle des actifs numériques doit résider dans des smart contracts protégés par des timelocks et des multisigs, et non dans des identifiants privés, des jetons CI, des ACL cloud ou des tableaux de bord d'administration. Si votre déploiement ou action de "changement de propriétaire" doit traverser le chemin schedule() et execute() d'un contrat, même un rootkit sur un laptop de développeur ne peut pas sauter la file d'attente. Le délai est un disjoncteur sur lequel vous pouvez compter, et la piste d'audit on-chain est objective. Cela ne laisse que la question "et si ce que nous promouvons est mal formé ?", ce à quoi répond exactement la "configuration avec preuve".
Nous croyons également qu'il existe un marché considérable pour les applications à confiance minimisée. Nous ne construisons que les bonnes fondations maintenant pour un premier cas d'utilisation bien défini chez OKcontract Labs.
When a Feature File Tripped the Internet a été initialement publié dans Coinmonks sur Medium, où les gens continuent la conversation en mettant en évidence et en répondant à cette histoire.


