Attaque de cycle de remplacement dans le réseau Lightning


Le Bitcoin Lightning Network est une solution de mise à l’échelle de couche 2 pour Bitcoin, visant à relever les défis d’évolutivité de la blockchain Bitcoin. Il permet des transactions Bitcoin instantanées et à faible coût, ce qui le rend plus efficace et accessible aux utilisateurs. Par rapport aux transactions en chaîne sur Bitcoin, les transactions sur le Lightning Network sont privées, se produisent hors chaîne et seul le résultat global est enregistré.

L’un des principaux avantages du Lightning Network est sa rapidité et son prix abordable. Il permet aux utilisateurs d’envoyer et de recevoir de petits paiements sur le réseau Bitcoin de manière simple et rentable. En créant un réseau de canaux de paiement entre utilisateurs, le Lightning Network permet des transactions sans diffuser chaque transaction sur la blockchain. Cela réduit la congestion sur la blockchain Bitcoin et améliore l’évolutivité des transactions.

Cependant, il convient de noter que le Lightning Network est encore en développement et est confronté à certains risques de sécurité et de centralisation. En octobre de cette année, une vulnérabilité appelée « attaque du cycle de remplacement » a été récemment découverte dans le réseau Lightning. Elle implique le mécanisme de remplacement des transactions et peut entraîner la perte de fonds de canal dans le réseau Lightning. L'émergence de cette méthode d'attaque a soulevé des inquiétudes quant à la sécurité du Lightning Network et a suscité des recherches plus approfondies et des améliorations de ses protocoles et de ses implémentations.

Attaque de cycle de remplacement dans le réseau Lightning

Mécanisme de réseau Lightning

Le Bitcoin Lightning Network exploite le mécanisme Multisig pour assurer la sécurité des canaux de paiement. Les participants doivent bloquer des fonds et établir des canaux de paiement. Les participants peuvent effectuer des paiements rapides et peu coûteux au sein du canal, sans avoir à soumettre les transactions à la blockchain Bitcoin à chaque fois. Le canal de paiement n’est qu’une relation entre les participants en dehors de la blockchain Bitcoin, qui est réalisée en signant une série de transactions au sein du canal qui se propagent uniquement entre les deux extrémités du canal sans impliquer le consensus de l’ensemble du réseau Bitcoin.

En termes de processus spécifique, lors de l'ouverture d'un canal de paiement, les participants doivent créer un script multi-signature qui oblige chaque partie du canal à fournir sa clé publique, tout en précisant le nombre de signatures requis, par exemple en définissant un script qui contient plusieurs clés publiques et une logique de vérification de signature. Lors de la génération de l'adresse multi-signature, ce script sera converti en une adresse Bitcoin, formant l'infrastructure du canal de paiement.

Par exemple, comme le montre la figure 1, Bob et Alice créent d'abord une adresse Bitcoin multi-signature 2 sur 2 sur la chaîne en tant que fonds commun. Au sein du canal, ils peuvent effectuer un nombre illimité de transactions d'engagement hors chaîne pour enregistrer l'état actuel de l'allocation des fonds. Les deux parties peuvent négocier et signer de nouvelles transactions d’engagement pour mettre à jour l’état du canal, sans diffuser ces mises à jour sur l’ensemble du réseau Bitcoin. Lorsqu'ils décident de fermer le canal, la transaction finale de règlement en chaîne distribuera les fonds selon la dernière allocation négociée. Cette transaction de règlement nécessite les signatures conjointes de Bob et d'Alice, garantissant que les fonds sont alloués de la manière finalement convenue. De cette manière, le Lightning Network améliore l’efficacité des transactions Bitcoin et réduit les coûts, tout en conservant ses caractéristiques décentralisées.

githubpng

Mécanisme HTLC

Le réseau Bitcoin Lightning adopte également des canaux de paiement basés sur des contrats Hashed Timelock (HTLC) pour mettre en œuvre un système de canaux de paiement routables et multi-sauts. Dans l'implémentation, les HTLC nécessitent un script de transaction complexe défini dans un langage de script pour répondre à la condition de hachage et à la condition de verrouillage temporel. Ce script sera utilisé pour l'initialisation lors de l'ouverture du canal de paiement et déclenché lors du paiement. De cette manière, le Bitcoin Lightning Network atteint l’efficacité et la sécurité des paiements inter-chaînes.

HTLC (Hashed Timelock Contract) est un contrat Hashed Timelock, qui est l'un des composants importants pour la mise en œuvre de transactions inter-chaînes sur la blockchain. HTLC a deux applications courantes  : les échanges atomiques inter-chaînes et les canaux de paiement dans le réseau Lightning. HTLC peut verrouiller un transfert et définir des conditions de déverrouillage, telles que la fourniture d'informations spécifiques dans un délai spécifié. Cela garantit que les fonds ne peuvent être retirés par le destinataire que lorsque les conditions sont remplies.

OP_EQUALVERIFY, etc. utilisées pour bloquer les fonds afin que seule la fourniture de la valeur de pré-image R puisse les débloquer. Ce script a deux chemins possibles. Le premier chemin (défini dans OP IF) envoie des fonds à Bob si Bob peut fournir R. Le deuxième chemin consiste à appliquer un timelock en utilisant nLockTime dans la transaction de paiement, permettant les remboursements à Alice après l'expiration du verrou.

Exemple de routage

Dans le Lightning Network, Alice veut payer 1 bitcoin à Eric, mais il n'y a pas de canal de paiement direct entre Alice et Eric. Alice achemine donc le paiement via des nœuds intermédiaires du réseau de canaux de paiement (Bob, Carol, Diana) pour construire un chemin de paiement sécurisé, lui permettant de payer indirectement 1 bitcoin à Eric. Le routage des paiements utilise des HTLC : ce n'est qu'en fournissant le « secret » correct dans un créneau horaire spécifique que les fonds peuvent être débloqués, garantissant ainsi la sécurité des paiements.

Dans cet exemple, à l'étape 1, Eric génère un Secret R (solution) et calcule la valeur de hachage H (puzzle), puis donne la valeur de hachage H à Alice.

Étapes 2 à 5  : Alice, Bob, Carol, Diana et Eric construisent chacun des HTLC par paires, nécessitant la fourniture de R (solution) dans un certain laps de temps pour récupérer les fonds bloqués auprès de la partie en amont.

Étapes 6 à 9  : Eric fournit R (solution) à Diana pour récupérer 1 BTC. Diana récupère ensuite le BTC de Carol avec R, et R est transmis en arrière comme ceci jusqu'à ce que les 1,003 BTC d'Alice (dont 0,003 BTC représentent les frais de service pour les nœuds intermédiaires) soient récupérés.

Dans cet exemple, si à l'étape 6, Eric n'a pas fourni R (solution) dans le délai imparti, après l'expiration du délai, les fonds bloqués aux étapes 2 à 5 seront directement déverrouillés et restitués.

githubpng

Attaque cycliste de remplacement

Le mécanisme de remplacement de transaction de Bitcoin fait référence au moment où une transaction est marquée comme remplaçable, une transaction peut alors être remplacée par une autre transaction sur le réseau avec des frais plus élevés avant d'être confirmée dans un bloc. Si une transaction reçoit des frais absolus et un taux de frais plus élevés, elle peut remplacer les transactions en attente non confirmées qui entrent directement en conflit avec elle. Après avoir reçu la transaction de remplacement, les nœuds supprimeront la transaction d'origine avec le taux de frais inférieur du pool de mémoire et ne conserveront que la transaction de remplacement. Le mécanisme de remplacement de transaction permet d'ajuster les frais de transaction ou d'autres paramètres avant que la transaction ne soit confirmée. Mais ce mécanisme peut également être utilisé pour mettre en œuvre des attaques de déni de service de transaction, telles que le remplacement répété d'une transaction critique, entraînant l'échec de sa confirmation. Par conséquent, le mécanisme de remplacement des transactions facilite l’ajustement des transactions, mais introduit également des risques d’abus.

l'attaque du cycle de remplacement implique principalement les canaux de paiement du Bitcoin Lightning Network. L'attaquant diffuse une transaction de pré-image HTLC avec des frais absolus et un taux de frais plus élevés pour remplacer la transaction de délai d'attente HTLC du nœud honnête. Lors du remplacement, l'attaquant peut ajouter des entrées ou des sorties supplémentaires pour garantir que la transaction de remplacement est acceptée avec succès par le réseau. Cette méthode d'attaque peut entraîner une double dépense de fonds dans les canaux de paiement, c'est-à-dire qu'une fois que le nœud honnête a diffusé la transaction avec délai d'expiration HTLC, l'attaquant réussit à récupérer les fonds par remplacement. Nous pouvons donner un exemple simple pour illustrer, similaire à l'exemple précédent, en supposant que le chemin est simplifié à seulement Alice, Bob et Eric, et qu'Alice et Eric s'entendent pour voler le BTC de Bob.

Étape 1 : Alice a l'intention de payer 1 BTC à Eric via Bob. Alice\Bob et Bob\Eric construisent chacun un HTLC. Eric doit fournir R (solution) à Bob avant le bloc 1020 (en supposant que la hauteur actuelle est de 1000), sinon Bob peut récupérer le 1 BTC verrouillé ; de même, Bob doit répondre à Alice avant le bloc 1080, sinon Alice peut récupérer son 1 BTC.

Étape 2 : Eric n'a pas fourni R (solution) à Bob avant le bloc 1020. Bob diffusera une transaction contenant un délai d'attente HTLC. Les fonds de cette transaction seront remboursés à Bob.

Étape 3  : Eric surveille la transaction de délai d'attente HTLC de Bob et la remplace par une transaction de pré-image HTLC avec un taux de frais plus élevé. Ensuite, Eric lance une autre transaction pour expulser la préimage HTLC précédente du pool de mémoire.

Étape 4  : Le nœud de Bob rediffusera la transaction de délai d'attente HTLC jusqu'au bloc 1080. Eric peut lancer le remplacement à chaque fois. Jusqu'au bloc 1080, la transaction de l'autre participant au canal Alice est confirmée et Alice récupère le BTC verrouillé.

Étape 5 : Eric obtient sa préimage HTLC confirmée, donc le 1 BTC verrouillé par Bob est transféré à Eric.

Ainsi, le 1 BTC de Bob a été transféré à Eric, alors qu'il n'a pas non plus reçu le BTC dû par Alice.

Résumé

En novembre 2023, le réseau Lightning comptait plus de 16 000 nœuds Lightning et 5 000 BTC. Bien que les cas réels d'attaques par cycle de remplacement n'aient pas été confirmés, cela souligne la nécessité de recherches et d'améliorations continues en matière de sécurité pour le réseau Lightning. Antoine Riard a également suggéré plusieurs mesures pour éviter ou atténuer les attaques du cycle de remplacement, telles que la surveillance du pool de mémoire local et des transactions relayées, la création de réseaux superposés entre les mineurs et les nœuds Lightning et la relecture active des transactions de délai d'attente HTLC pour augmenter les coûts des attaquants. Mais en même temps, il a annoncé l'arrêt de sa participation à Lightning Network et à ses travaux de mise en œuvre, y compris la coordination de solutions pour les vulnérabilités de sécurité au niveau du protocole.

créant ainsi un écosystème plus sain et plus fiable.

/h3>

Fondée en 2017, CoinEx est une bourse mondiale de crypto-monnaie qui s'engage à faciliter le trading. La plateforme fournit une gamme de services, notamment des services de trading au comptant et sur marge, de contrats à terme, de swaps, de tenue de marché automatisée (AMM) et de gestion financière, à plus de 5 millions d'utilisateurs dans plus de 200 pays et régions. Depuis sa création, CoinEx a fermement adhéré au principe de service « l'utilisateur d'abord ». Avec l’intention sincère de favoriser un environnement de trading crypto équitable, respectueux et sécurisé, CoinEx permet aux utilisateurs d’accéder sans effort au monde de la crypto-monnaie en proposant des produits et services faciles à utiliser.

Les références

github.io/bitcoinbook/

linuxfoundation.org/pipermail/bitcoin-dev/2023-October/022032.html

network/lightning-network-paper.pdf

com/ariard/mempool-research/blob/2023-10-replacement-paper/replacement-cycling.pdf

agit d'un article payant et ne doit pas être traité comme une actualité/un conseil.