Bug sur le Lightning Network de Bitcoin – Le pire évité de justesse ?

Collectionnez les articles du JDC en NFT

Collecter cet article

À deux doigts de la catastrophe – Le Lightning Network est une solution de seconde couche du réseau Bitcoin. Celle-ci a pour objectif de permettre des paiements instantanés et à bas frais sur Bitcoin. Cependant, le réseau aurait pu se retrouver au cœur de la tourmente après qu’un bug se soit glissé dans le code suite à l’activation de Tapscript.

Tapscript : l’ouverture à un nouveau type de multisig

Cela fait presque un an que Taproot a été activé sur le réseau Bitcoin. En effet, la mise à jour a été déployée au début du mois de novembre 2021, via un soft fork. 

Cette mise à jour a permis le déploiement de trois composantes :

  • Taproot ;
  • Tapscript (qui est étroitement lié à Taproot) ;
  • Les signatures de Schnorr.

Sans entrer dans les détails de ces trois composantes, celles-ci ont pour objectif de réduire la taille des transactions, améliorer la confidentialité et faire évoluer Script, le langage permettant de créer des conditions de dépenses sur Bitcoin. 

Le déploiement de Tapscript a également permis d’améliorer les transactions dites multi-signatures ou multisig. Pour rappel, ce type de transaction nécessite la signature de plusieurs adresses afin d’autoriser la dépense. 

Précédemment, les multi-signatures possédaient une limite sur le réseau Bitcoin, allant de 15 à 20 signataires différents, selon le type de script utilisé. Cependant, cette limite a pu être retirée grâce à Tapscript. Par conséquent, les multi-signatures ne sont désormais plus limitées par le langage Script, mais par la taille des blocs. 

Précédemment, les multi-signatures possédaient une limite sur le réseau Bitcoin, allant de 15 à 20 signataires différents, selon le type de script utilisé. Cependant, cette limite a pu être retirée grâce à Tapscript. Par conséquent, les multi-signatures ne sont désormais plus limitées par le langage Script, mais par la taille des blocs. 
Le Lightning Network supprime une limite sur les transactions multisig

>> Vous cherchez des rendements audacieux pour vos cryptos ? Inscrivez-vous sur AscendEX (lien commercial) <<

Un bug critique sur Lightning Network

Le 9 octobre dernier, le développeur, connu sous le pseudonyme Burak, a souhaité tester cette nouvelle fonctionnalité. Pour ce faire, il a effectué une multi-signature « 998 parmi 999 ». En fait, pour être dépensés, les fonds nécessitent la signature de 998 adresses parmi les 999 définies dans les conditions. 

Burak annonce avoir réalisé une multisig 998 of 999
Burak annonce avoir réalisé une multisig 998 of 999 – Source : Twitter

Cependant, comme l’ont rapidement soulevé plusieurs utilisateurs, son test a révélé un bug le client LNG. En effet, LND, le client Lightning Network a été affectés par ce test.

Mais pourquoi ? L’implémentations avait omis d’actualiser une partie de leur code source pour coller aux nouvelles spécifications induites par le déploiement de Taproot. Notons que le client avait bel et bien modifié les règles de consensus en corrélation avec Taproot. Par conséquent, la limite concernant le nombre de signataires d’un multisig a été retirée. 

Néanmoins, le client effectue une seconde série de vérifications, lors de la communication en pair-à-pair des blocs, afin de s’assurer de ne pas propager un bloc invalide. C’est à ce niveau que la limite n’avait pas été retirée. Résultat : bien que le client considère le bloc valide, celui-ci ne va pas le propager au reste du réseau, car il détecte une erreur au niveau de la limite des multisig. 

Plusieurs millions de dollars à risque sur Lightning Network

Ce bug aurait pu entraîner la perte de millions de dollars sur le Lightning Network. Effectivement, un utilisateur malveillant aurait pu utiliser à son avantage l’erreur de vérification sur le Lightning Network. 

Pour ce faire, l’attaquant doit envoyer une transaction semblable à celle émise par Burak. Évidemment, celle-ci va se retrouver bloquée, car le nœud chargé de la traiter n’est pas en mesure de la propager au réseau du fait de l’erreur de vérification. 

Comme le nœud se retrouve bloqué sur ce bloc, celui-ci n’est plus en mesure de se tenir à jour concernant l’état du réseau. De ce fait, l’attaquant peut soumettre un ancien état du canal de paiement sur le Lightning Network, sans que l’autre partie ne puisse contester l’état publié.

La situation a parfaitement été décrite par Shinobi, invité pour parler de ce bug par nos confrères de Bitcoinmagazine.

« Un individu, ou un groupe de personnes, aurait pu très facilement ouvrir un grand nombre de canaux sur le LN et échanger tout l’argent de ces canaux vers leur adresse sur la chaîne Bitcoin via un ‘échange sous-marin’, laissant tous les fonds du canal de l’autre côté, puis soumettre une grande transaction Taproot comme Burak l’a fait, fermant immédiatement leurs canaux en utilisant un état périmé. »

Heureusement, un correctif a rapidement pu être publié suite aux découvertes qui ont résulté de la transaction de Burak. De plus, il semblerait que la faille n’ait pas été exploitée avant la publication du correctif.

De son côté, le cours du Bitcoin reprend des couleurs. En effet, la cryptomonnaie reine du marché est repassée au-dessus de la barre symbolique des 20 000 dollars.


Accompagnerez-vous la révolution Bitcoin ? Il ne tient plus qu’à vous d’embarquer dans le train crypto ! Obtenez des rendements solides pour vos cryptomonnaies avec AscendEX Earn.  Inscrivez-vous dès aujourd’hui sur AscendEX (lien commercial).

Renaud H.

Ingénieur en software et en systèmes distribués de formation, passionné de cryptos depuis 2013. Touche à tout, entre mining et développement, je cherche toujours à en apprendre plus sur l’univers des cryptomonnaies et à partager le fruit de mes recherches à travers mes articles.

Recevez un condensé d'information chaque jour