31 / 736M-of-N

Multisig

autoriser un paiement avec plusieurs clés

Un paiement ne doit pas forcément dépendre d’une seule clé. Multisig permet d’exiger, par exemple, la signature de deux clés quelconques parmi trois clés indépendantes.

Multisig protège les bitcoins en exigeant les signatures de plusieurs clés désignées pour les dépenser. Avec une règle de 2 sur 3, deux clés distinctes quelconques parmi les trois suffisent. Perdre une clé ne signifie donc pas forcément perdre son argent, et un voleur ne peut pas le dépenser avec une seule clé. Cela suppose des sauvegardes adaptées et une véritable séparation des clés.

Multisig : simulateur du seuil de signaturesVérifiez si les clés restantes dans un modèle m sur n permettent d’atteindre le seuil de signatures. Le résultat décrit la disponibilité des signatures, pas la sécurité ni la restauration complète du portefeuille.

Alice ne veut pas faire dépendre toutes ses économies d’un seul appareil. Elle crée un portefeuille de 2 sur 3 avec trois clés indépendantes, A, B et C. Un paiement peut être autorisé par A + B, A + C ou B + C. Chaque signature est une autorisation vérifiable mathématiquement, produite avec la clé privée correspondante ; la clé elle-même n’est pas envoyée au réseau. Si Alice perd A, elle peut encore utiliser B et C, à condition de disposer aussi des informations nécessaires sur le portefeuille. Quelqu’un qui ne vole que A ne peut pas envoyer l’argent seul. Les bitcoins ne sont pas divisés en trois tas : la règle commune protège l’ensemble des fonds concernés. Trois personnes peuvent détenir les clés, mais une seule peut aussi les conserver sur des appareils séparés. Trois copies de la même Seed Phrase, c’est-à-dire des mêmes mots de sauvegarde, ne créent pas trois clés indépendantes. [1] [2]

Alice saisit l’adresse du destinataire et le montant dans une application. Celle-ci joue le rôle de coordinateur : elle prépare une proposition de transaction et la transmet aux appareils de signature. Elle utilise souvent PSBT, un format qui transporte les données du paiement et les signatures ajoutées progressivement. Les appareils n’ont donc pas besoin d’être connectés en même temps ni de se trouver au même endroit ; les clés privées restent séparées. Avant de signer, Alice vérifie le destinataire, le montant et les frais sur l’écran de confiance de chaque appareil utilisé. À partir des règles vérifiées du portefeuille, l’appareil doit aussi reconnaître la sortie qui lui restitue la monnaie. Deux signatures sur un paiement frauduleux ne la protégeraient pas. Le coordinateur ne peut pas inventer une signature manquante, mais peut présenter une mauvaise proposition. L’application ne diffuse la transaction qu’après avoir obtenu les signatures requises et l’avoir finalisée. [5]

Chaque clé indépendante a besoin de sa propre sauvegarde sécurisée. Toutefois, deux séries de mots ne suffisent pas automatiquement à restaurer le portefeuille entier. Il faut aussi sa configuration commune : le nombre de signatures requis, les informations publiques des trois clés, leur ordre et la manière de produire les adresses. Ces informations peuvent être conservées dans un Output Descriptor, une description technique précise du portefeuille, ou un export de configuration équivalent. Un descripteur public sans clés privées ne peut pas signer un paiement à lui seul, mais peut dévoiler les adresses et les mouvements d’argent : il mérite donc aussi de rester privé. Alice teste d’abord réception, envoi et restauration avec une petite somme. Si elle perd ensuite A ou soupçonne une fuite, supprimer l’appareil de l’application ne modifie pas l’ancienne règle. Elle doit utiliser les clés restantes pour déplacer les fonds vers de nouvelles adresses vérifiées, reposant sur un nouveau jeu de clés. [4] [6]

La règle de 2 sur 3 tolère la perte d’une clé ; celle de 2 sur 2 n’en tolère aucune. Avec la première, n’importe quelle paire peut également dépenser, y compris deux personnes qui s’entendent sans la troisième. Le bon choix dépend donc de l’argent à protéger et des défaillances envisagées. Si Alice range tous les appareils et leurs sauvegardes dans le même tiroir, un vol ou un incendie peut annuler l’intérêt de les séparer. Il faut aussi davantage de travail pour vérifier les paiements, la compatibilité des portefeuilles et la restauration. Les conditions de dépense sont ici décrites dans un script, un petit programme. Une transaction multisig classique fondée sur un script occupe généralement plus de place qu’une transaction comparable à signature unique, donc coûte plus cher à taux de frais identique. Pour un débutant, un portefeuille simple et bien maîtrisé peut être plus sûr qu’un montage complexe qu’il ne comprend pas. [1] [2]

L’expression générale m sur n signifie qu’il faut m signatures valides parmi n clés désignées. Dans le Multisig classique fondé sur un script, les clés publiques et ce seuil font partie de la condition de dépense. Une sortie de transaction précise cette condition directement ou se lie cryptographiquement au script correspondant. Lors de la dépense, les nœuds, les ordinateurs qui contrôlent le respect des règles de Bitcoin, vérifient les signatures et les données de script requises : une autorisation de l’application ne suffit pas. Dans les descripteurs, multi conserve l’ordre fourni des clés publiques, tandis que sortedmulti les trie selon une règle précise. Un chemin de dérivation indique au portefeuille quelles clés précises calculer à partir de ses données de départ. Un ordre incorrect ou d’autres chemins de dérivation peuvent produire des adresses différentes. Le descripteur permet au portefeuille de reconstruire ces conditions ; il n’est pas lui-même enregistré dans la blockchain comme fichier de configuration. Cette explication concerne le Multisig classique fondé sur un script. D’autres constructions peuvent réunir plusieurs participants derrière une signature commune et suivent leurs propres règles. [3] [4] [7]

Exemple · M-of-N

Une règle de 2 sur 3

Multisig avec trois clés distinctes exige les signatures valides de deux quelconques. Une seule clé volée ne suffit pas ; après la perte d’une clé, les deux autres permettent de dépenser si les données de script nécessaires sont disponibles. Séparez clés et sauvegardes et conservez l’Output Descriptor complet ou la politique équivalente du portefeuille.

Pour une vision complète, lisez aussi Private Key, Portefeuille, PSBT. Cette entrée est également citée par HD Wallet, Cold Storage, Watch-only Wallet, Change Address.

01Multisig est-il automatiquement plus sûr qu’une Hardware Wallet ?

Non. Des clés et sauvegardes bien séparées peuvent réduire un point unique de défaillance, mais davantage de participants ajoutent de la complexité. Il faut une politique vérifiée et une récupération testée ; un coordinateur commun compromis peut présenter le même paiement erroné à tous.

02Toutes les clés Multisig doivent-elles être au même endroit pour signer ?

Non. PSBT permet d’échanger données et signatures séparément sans rassembler les clés privées. Chaque signataire doit vérifier destinataires, montants et frais. Avant diffusion, la transaction doit être finalisée avec les signatures valides requises et satisfaire toutes les autres conditions des entrées.

DOC · 001Bitcoin Developer Guide — P2SH MultisigDocumentation DOC · 002BIP 11 — M-of-N Standard TransactionsSource primaire DOC · 003BIP 67 — Deterministic key sortingSource primaire DOC · 004BIP 383 — Multisig output descriptorsSource primaire DOC · 005BIP 174 — Partially Signed Bitcoin Transaction FormatSource primaire DOC · 006BIP 380 — Output Script DescriptorsSource primaire DOC · 007BIP 327 — MuSig2Source primaire
Révisé le: Sources d’abord · Pas un conseil financier