Aller au contenu
buybitcoinsmart

Glossaire / Adresses et clés

Multisig P2SH

Qu'est-ce que le multisig P2SH ?
Le multisig P2SH dissimule un script de rachat m-sur-n derrière une adresse 3, et le plafond de 520 octets par script le limite à quinze clés publiques.

Spécifié dans BIP-16.

Un script de rachat 2-sur-3 fait 105 octets : un opcode pour 2, trois clés compressées de 33 octets avec leurs préfixes de push, un opcode pour 3, et OP_CHECKMULTISIG. Dépenser une entrée coûte environ 297 vbytes, soit à peu près le triple d'une entrée native SegWit à clé unique. Ce fut l'arrangement standard de conservation partagée de 2012 jusqu'à l'octroi d'une remise sur les données témoins.

Comment cela fonctionne

Un script de rachat multisig P2SH énumère directement le quorum : le nombre de signatures requises, puis chaque clé publique participante, puis le nombre total de clés, puis OP_CHECKMULTISIG. Personne ne le voit tant que les bitcoins ne sont pas dépensés, car la sortie ne contient que le hachage de 20 octets du script de rachat.

Le plafond de quinze clés relève de l'arithmétique, non d'un choix de politique. Quinze clés compressées de 34 octets chacune, préfixe de push compris, totalisent 510 octets ; en ajoutant les deux opcodes de comptage et OP_CHECKMULTISIG, on atteint 513, ce qui tient dans la limite de 520 octets pour un seul élément de pile. Une seizième clé ne tient pas. Les règles de consensus de Bitcoin autorisent OP_CHECKMULTISIG jusqu'à 20 clés, mais un script de rachat P2SH ne peut physiquement pas en porter autant.

Il existe une vieille bizarrerie dans le chemin de dépense. OP_CHECKMULTISIG retire de la pile un élément de plus qu'il n'en utilise, un bug de l'implémentation d'origine qui n'a jamais pu être supprimé sans hard fork. Les signataires le contournent en poussant d'abord un élément factice, et le BIP-147 a rendu cet élément obligatoirement vide, ce qui a été activé en même temps que SegWit au bloc 481 824. Une entrée finalisée se lit donc : push vide, signature, signature, script de rachat.

Où le voir

Les trésoreries d'entreprise, les arrangements successoraux et les stockages à froid de plateformes d'échange construits entre 2013 et 2018 sont en grande partie du multisig P2SH. Les services de séquestre des anciennes places de marché pair-à-pair utilisaient un 2-sur-3 avec la plateforme détenant la troisième clé, ce qui permettait de régler un litige sans qu'aucun des deux traders ne contrôle les bitcoins seul.

L'obligation de sauvegarde prend les gens au dépourvu. Chaque cosignataire a besoin des clés publiques étendues de tous les autres cosignataires, ou d'un descripteur qui les consigne, car le script de rachat ne peut pas être reconstruit à partir d'une seule phrase de récupération. Détenir deux clés privées sur trois et aucune des clés publiques vous laisse dans l'incapacité de dépenser. Notez le descripteur avec les sauvegardes de phrase de récupération, et testez une récupération avant que l'arrangement ne contienne quoi que ce soit qui compte pour vous.

Les nouveaux quorums se construisent aujourd'hui avec P2WSH ou Taproot, car la même politique coûte bien moins cher à dépenser et n'est pas plafonnée à quinze clés. Les coffres P2SH existants fonctionnent toujours exactement comme avant, et aucune migration forcée n'est imposée.

Multisig P2SH vs multisig

Le multisig est la politique, et le multisig P2SH n'est qu'une façon de la consigner. La même exigence 2-sur-3 peut vivre dans une sortie multisig brute issue des toutes premières règles de bitcoin, dans un script de rachat P2SH, dans un script témoin P2WSH, ou, sous Taproot, à l'intérieur d'une seule clé agrégée qui se dépense comme un paiement ordinaire et ne révèle aucun quorum. Choisir P2SH est une décision qui porte sur les frais, le plafond de quinze clés, et le fait que tout votre arrangement de signature devient public dès la première fois que vous déplacez des bitcoins.

À ne pas confondre avec

Questions fréquentes

Combien de clés un multisig P2SH peut-il contenir ?

Quinze. Un script de rachat est un seul élément de pile et ne peut pas dépasser 520 octets, et quinze clés compressées avec leurs préfixes de push plus les opcodes qui les entourent totalisent 513 octets. Les règles de consensus de Bitcoin autorisent vingt clés, mais elles ne tiendront pas ici.

Que dois-je sauvegarder pour un multisig P2SH ?

Votre phrase de récupération et les clés publiques étendues de tous les autres cosignataires, ou un descripteur qui les consigne toutes. Sans les autres clés publiques, le script de rachat ne peut pas être reconstruit, et les bitcoins restent bloqués même si vous détenez votre propre clé.

À lire ensuite

Termes associés

Plus de termes : Adresses et clés

Lire cette page en anglais