Crypto : BNB Chain a refermé deux trous ce matin à 4h30. Voilà ce qu'ils permettaient.

Crypto : BNB Chain a refermé deux trous ce matin à 4h30. Voilà ce qu'ils permettaient.

Ce matin à 4h30, heure de Bruxelles, pendant que tout le monde dormait, le réseau BNB Chain a changé ses règles. Ça s'appelle Pasteur, et c'est le genre de chose dont on parle d'habitude le lendemain d'une catastrophe, quand il est trop tard et que tout le monde compte les dégâts. Là, non. Rien n'avait explosé.

Alors autant en profiter, parce que les deux trous rebouchés ce matin se racontent à n'importe qui, et parce qu'ils sont bêtes à pleurer.

Deux trous rebouches sur un pont, avant l'ouverture

Deux rustines posées avant l'ouverture, pas après l'incendie. C'est beaucoup plus rare qu'on ne croit.

D'abord, imagine un immeuble sans syndic

Deux minutes pour poser le décor, et je te promets qu'il n'y a pas un seul mot compliqué dedans.

Un truc comme BNB Chain, c'est un immeuble en copropriété où personne ne possède l'immeuble. Il y a des centaines d'appartements, chaque appartement est un ordinateur tenu par quelqu'un quelque part dans le monde, et aucune décision ne peut être prise par une seule personne. Pour que quoi que ce soit se passe, il faut qu'un grand nombre d'habitants signent un papier qui dit « moi je suis d'accord », et quand il y a assez de signatures dans l'urne, c'est adopté. Voilà, c'est tout le principe. C'est aussi la seule protection du bâtiment : comme personne ne commande, personne ne peut trahir tout seul.

Un immeuble ou chaque habitant vote, personne n'est le patron

Pas de patron, pas de directeur, pas de bouton rouge quelque part. Juste des gens qui signent.

Le concierge qui compte les signatures, par contre, n'est pas une personne. C'est un programme. Et un programme compte exactement ce qu'on lui a dit de compter, ni plus, ni moins, sans jamais froncer les sourcils.

Premier trou : la photocopieuse

Premier bug, et c'est mon préféré de toute l'affaire.

Le programme qui comptait les signatures ne vérifiait pas qu'elles venaient de personnes différentes.

Le meme bulletin compte deux fois, et le seuil est atteint

Trois signataires, quatre bulletins, décision adoptée. Le rêve de tout élu véreux.

Relis la phrase, elle vaut le détour. Ça veut dire que trois habitants pouvaient signer, passer un de leurs papiers à la photocopieuse, glisser la copie dans l'urne, et le compteur montait comme s'il s'agissait d'une quatrième personne. Une petite bande fabriquait donc l'apparence d'une grande majorité qui n'a jamais existé, et faisait adopter au nom de tout l'immeuble une décision que l'immeuble entier aurait refusée.

Le correctif tient en une phrase : on jette les doublons. Une signature déjà vue ne compte plus une deuxième fois.

Ce qui me sidère là-dedans, c'est que c'est le contrôle qu'on met dans un sondage de fin de banquet pour empêcher Michel de voter douze fois pour le tiramisu. Rien de sophistiqué, rien de génial, ça s'apprend au premier trimestre. Et ça manquait dans un truc qui déplace des milliards.

Deuxième trou : le badge du gardien

Deuxième bug, même famille.

De temps en temps, un habitant change sa signature. C'est normal, c'est même recommandé, exactement comme on change un mot de passe ou comme une entreprise récupère le badge d'un employé qui s'en va. L'ancienne signature part à la retraite, la nouvelle prend le relais.

Sauf que l'ancienne continuait d'ouvrir les portes.

Une cle retiree qui ouvre encore la porte

La pancarte dit retirée. La serrure n'a pas lu la pancarte.

Et il y avait pire, un détail qui m'a fait rire jaune. Quand un habitant était sur le point de se prendre une amende pour mauvaise conduite, il lui suffisait de changer de signature pour que l'amende ne le retrouve plus : elle restait accrochée à l'ancienne, qui n'appartenait plus à personne. Tu changes de nom, tes points de permis restent chez le fantôme.

Depuis ce matin, une signature retirée ne vaut plus rien du tout, et les punitions en attente suivent l'habitant jusqu'à sa nouvelle signature. Elles ne s'oublient plus en chemin.

Troisième morceau : la file à la caisse

Le dernier bout ne corrige rien, il accélère.

Jusqu'ici, tout le travail se faisait au pire moment, celui où la file attend. Imagine un caissier qui scannerait tes articles, encaisserait, imprimerait le ticket, rangerait les sacs et vérifierait la caisse dans le même mouvement, pendant que quinze personnes soufflent derrière toi. Maintenant, une partie du travail se prépare à l'avance et la vérification se fait après, une fois que tu es sorti du magasin.

Operations par seconde, place par lot et moment le plus serre, avant et apres Pasteur

Trois mesures, trois échelles différentes. Les mettre sur le même axe aurait été un joli mensonge.

Les chiffres annoncés : le nombre d'opérations traitées chaque seconde passe de 1 237 à 2 324, la place disponible dans chaque lot d'opérations grimpe de 46 à 84 millions, et le moment le plus serré tombe de 125 à 15 millièmes de seconde.

Maintenant la précaution, et elle compte au moins autant que les chiffres : ces trois nombres viennent d'essais faits par BNB Chain sur son propre réseau d'entraînement, c'est-à-dire un endroit où les machines sont bien rangées, où la charge est celle qu'on a décidé d'envoyer, où personne ne lance de vente aux enchères d'images de singes à trois heures du matin, et où, curieusement, tout se passe toujours mieux que dehors. Un chiffre de laboratoire annoncé par la maison qui vend le produit, ça se lit comme une promesse, pas comme un résultat. On verra dans quelques semaines ce que ça donne avec de vrais gens dedans.

Concrètement, ça change quoi pour toi ?

Si tu as des jetons BNB rangés quelque part, tu n'as rien à faire. Rien du tout. Ce qui a changé cette nuit concerne les machines qui font tourner le réseau, pas ce que tu as dans ton portefeuille : aucun bouton à cliquer, aucune mise à jour à installer, aucune manipulation.

Ce qui change, c'est ce qui ne pourra plus arriver. Le premier trou permettait à une poignée de gens de faire passer une décision au nom de tout le monde, et ce genre de faille, quand quelqu'un finit par s'en servir, ça se termine toujours pareil : un communiqué embarrassé, un réseau à l'arrêt, et des utilisateurs qui regardent leur argent partir en direct. C'est exactement ce que je racontais il y a deux jours, avec 49 millions de jetons fabriqués à partir de rien.

Et si tu ne possèdes pas un centime de crypto, il reste quand même quelque chose à en tirer, parce que les deux bêtises de ce matin ne sont pas des bêtises de crypto. Compter des votes sans vérifier qu'ils viennent de personnes différentes, retirer un badge d'un côté en oubliant qu'il ouvre encore de l'autre : ça vit dans le logiciel de ta banque, dans celui de ta mutuelle et dans le portail de ton école. La différence, c'est qu'ici tout est public. N'importe qui peut lire le code, voir ce qui a été corrigé, et à quelle heure exactement. Ton opérateur téléphonique ne te dira jamais ce qu'il a rebouché la nuit dernière.

Si tu es développeur

Ce qui suit est pour toi. Si tu n'es pas du métier, saute jusqu'à la fin, tu n'auras rien raté.

Pasteur est un hard fork, activé à 02:30 UTC sur le réseau principal, client 1.7.7 obligatoire avant l'heure. Un nœud resté sur l'ancienne version ne plante pas, il continue tranquillement sur des règles que plus personne n'applique, ce qui est la pire façon de tomber en panne. Si ce n'est pas encore fait, va vérifier maintenant.

Les deux correctifs en clair :

  • Déduplication des signatures dans la vérification de supermajorité, côté pont. Les entrées en double étaient comptées, donc le seuil pouvait être atteint sans quorum réel de validateurs distincts. Le correctif rejette les doublons avant le comptage.
  • Révocation effective d'une clé de validateur après rotation. L'ancienne clé conservait son autorité, et une sanction en attente ne suivait pas le validateur vers sa nouvelle clé, ce qui faisait de la rotation une porte de sortie au slashing. Au passage, les adresses en liste noire ne contournent plus les règles de gouvernance.

Les deux sont des classiques absolus, et c'est bien ça qui pique. Le premier, c'est le comptage sans clé unique, la faute du formulaire de vote écrit un lundi matin. Le second, c'est la révocation d'autorisation appliquée à un endroit et pas à l'autre, celle qu'on se prend tous une fois dans sa carrière parce qu'on a désactivé le compte dans la table des utilisateurs en oubliant que le jeton d'authentification, lui, vit ailleurs, dans un cache, avec sa propre date d'expiration, et qu'il continuera gentiment d'ouvrir les portes pendant les vingt-quatre heures suivantes en attendant qu'un client appelle pour signaler que son ancien stagiaire lit encore les factures. Ça pique.

Côté performances, le gain vient du déplacement de l'exécution hors du chemin critique : le bloc peut être exécuté en avance et vérifié après, au lieu de tout faire dans la fenêtre de production et de diffusion. D'où le chemin critique qui tombe de 125 à 15 ms, le gaz par bloc qui passe de 46,35 à 84,15 millions et le débit annoncé à 2 324 transactions par seconde. Chiffres de réseau de test contrôlé, comme toujours : à confronter au réseau principal dans quelques semaines.

Ce qui me plaît, pour une fois

J'ai passé la semaine à écrire sur des trucs qui cassent, et le correctif arrivait toujours après. Après le vol, après l'arrêt, après le communiqué.

Ce matin, c'est l'inverse. Deux failles qui permettaient de truquer un vote et de garder les clés de la maison après avoir rendu son badge, bouchées sans qu'on ait eu besoin de raconter d'abord l'histoire du type qui en a profité. Ce n'est pas spectaculaire, ça ne fera aucune une, et c'est précisément pour ça que ça mérite qu'on en parle.

Les autres s'y mettent aussi, chacun sur son terrain. Solana faisait le ménage la semaine dernière dans les opérations qui ne servent à personne. Il y a une vraie course en ce moment, et pour une fois elle ne se joue pas sur les annonces mais sur la plomberie.

Reste le truc qui me trotte dans la tête. Ces deux bugs sont d'une banalité totale, ils étaient dans un réseau relu, audité, avec des primes pour ceux qui trouvent des failles, et ils sont restés là tranquilles pendant des mois. Alors combien il en reste ailleurs, dans tous les autres, à compter deux fois le même bulletin ? On va finir par le savoir, remarque : il y a maintenant des programmes qui relisent du code à longueur de journée sans jamais se fatiguer, et ils sortent des choses que personne n'avait vues en trois ans. C'est dingue ce qu'ils trouvent !


Sources

#Crypto#Blockchain#Cybersecurite#MiseAJour#Actualite
Rejoignez la conversation

Vous devez avoir un compte pour commenter cet article. La création est gratuite et prend moins d'une minute.

  • Le fichier XMLTV à télécharger gratuitement, chaque jour
  • Commenter les articles et répondre aux autres lecteurs
  • Être averti par e-mail des nouveaux articles que vous suivez

Aucun commentaire pour le moment.

Une erreur s'est produite. Cette application peut ne plus répondre jusqu'à ce qu'elle soit rechargée.Veuillez contacter l'auteur. Reload 🗙