Aller au contenu
buybitcoinsmart

Glossaire / Lightning et couche 2

Fermeture forcée

Qu'est-ce qu'une fermeture forcée ?
Une fermeture forcée met fin à un canal Lightning sans l'aide de votre contrepartie : vous diffusez la dernière transaction d'engagement, payez des frais on-chain et attendez un délai avant de pouvoir dépenser votre solde.

Chaque canal Lightning garde une sortie signée prête à l'emploi, et une fermeture forcée, c'est cette sortie que l'on utilise. Elle coûte une vraie transaction on-chain, plus une autre pour chaque paiement encore en cours, et les canaux à ancres immobilisent une sortie de 330 satoshis de chaque côté uniquement pour pouvoir augmenter les frais ensuite. Comptez un retour de votre argent en environ une journée, pas en une seconde.

Comment cela fonctionne

Il existe deux façons de sortir d'un canal Lightning, et la coûteuse est la fermeture forcée, qui ne demande aucune coopération.

Une fermeture coopérative est une négociation : les deux parties s'accordent sur le partage final, signent une transaction, et les bitcoins de chacun deviennent des sorties ordinaires dépensables dès la confirmation. Une fermeture forcée saute la négociation. Vous publiez la transaction d'engagement la plus récente que vous détenez, et les règles de consensus du bitcoin font l'arbitrage à la place de votre pair. L'asymétrie est délibérée et elle joue contre celui qui appuie sur le bouton : le solde de votre contrepartie est immédiatement dépensable, tandis que le vôtre est verrouillé derrière un délai OP_CHECKSEQUENCEVERIFY de to_self_delay blocs, convenu à l'ouverture du canal.

Ce délai est la fenêtre de sanction. Il existe pour que, si la transaction que vous diffusez s'avère ancienne et affiche un solde que vous avez déjà dépensé, l'autre partie ait le temps de publier une transaction de pénalité et de tout prendre. Le BOLT 2 stocke to_self_delay comme un nombre de 16 bits, il peut donc valoir jusqu'à 65 535 blocs, et il exige qu'un pair rejette une valeur qu'il juge déraisonnablement grande. Un délai plus long rend la triche contre vous plus difficile et votre propre sortie plus lente.

Les paiements en cours compliquent l'arithmétique. Chacun exige sa propre transaction de suivi, pesant 666 ou 706 unités de poids dans un canal à ancres selon qu'il se résout par expiration ou par secret, et chacun est diffusé séparément une fois sa condition remplie. Les sorties d'ancre de 330 satoshis, dimensionnées à la limite de poussière pour une sortie P2WSH, existent pour que chaque partie puisse attacher une transaction enfant et augmenter les frais sur un engagement signé quand la mempool était bon marché.

Où cela se voit

Les fermetures forcées sont courantes, et la plupart ne sont pas des tricheries.

Le déclencheur habituel est un pair injoignable trop longtemps alors qu'une échéance de paiement approche, si bien que votre nœud ferme plutôt que de risquer de perdre la somme. Des fournisseurs élaguent les canaux restés inactifs. Des portefeuilles ferment automatiquement quand ils ne joignent plus l'autre côté après une mise à jour. Dans tous les cas, vous l'apprenez parce qu'une partie de votre solde apparaît soudain en attente et qu'une transaction d'un inconnu se trouve dans la mempool avec votre argent dedans.

La règle qui fait économiser de l'argent : ne restaurez jamais un portefeuille Lightning à partir d'une phrase de récupération seule pour l'utiliser ensuite. Une phrase de récupération restaure les bitcoins on-chain, mais l'état actuel d'un canal ne s'y trouve pas, et diffuser un engagement périmé invite à la pénalité. Ce que vous conservez à la place, c'est un fichier de sauvegarde de canal, et ce qu'il vous donne, c'est le droit de demander à vos pairs de fermer, à leur rythme, avec des frais que vous ne maîtrisez pas. C'est la raison pratique pour laquelle Lightning sert à dépenser de l'argent et l'auto-conservation on-chain à épargner.

L'environnement des frais décide des dégâts. Une fermeture forcée pendant une mempool calme coûte quelques milliers de satoshis. La même fermeture pendant un pic de frais peut coûter plus qu'un petit canal ne contient, et les canaux dont le solde est inférieur au coût de son balayage sont simplement abandonnés.

À ne pas confondre avec

Questions fréquentes

Est-ce que je perds mon argent lors d'une fermeture forcée ?

Non, à condition de diffuser votre état actuel. Vous payez des frais on-chain et attendez le délai en blocs convenu avant de dépenser. Vous ne perdez le solde que si vous publiez un ancien état et êtes sanctionné.

Combien de temps prend une fermeture forcée ?

Votre contrepartie est payée dès la confirmation de la transaction. Votre propre côté attend le délai négocié à l'ouverture du canal, qui correspond couramment à environ une journée de blocs et peut légitimement être bien plus long.

Puis-je forcer la fermeture à partir d'une sauvegarde par phrase de récupération ?

Pas en toute sécurité. Une phrase de récupération restaure les fonds on-chain mais pas l'état du canal. Il vous faut le fichier de sauvegarde de canal, qui vous permet de demander à vos pairs de fermer de leur côté plutôt que de diffuser vous-même un engagement périmé.

À lire ensuite

Termes associés

Plus de termes : Lightning et couche 2

Lire cette page en anglais