Qu’est-ce qu’un compte multisignatures ?

 

explication d'un compte multi-signatures dans bitcoin

 

Dans le monde des cryptomonnaies, les adresses multisignatures (multisig addresses) ou les comptes multisignatures sont des comptes dont le contrôle est partagé entre plusieurs entités, dont le fonctionnement se rapproche de celui d’un coffre-fort à clés multiples. Dans le cas de Bitcoin, ils sont rendus possibles grâce à la nature programmable du protocole en permettant une utilisation étendue de l’algorithme de signature des transactions. Le schéma de multi-signature peut être exploité pour former un compte joint partagé par les membres d’un couple ou par les associés d’une entreprise.

 

Qu’est-ce qu’une signature numérique ?

Pour comprendre comment fonctionnent les comptes multisignatures, il faut d’abord s’attarder sur l’utilisation des signatures numériques dans Bitcoin. Pour garantir la propriété des bitcoins, la protocole utilise en effet un algorithme de cryptographie asymétrique permettant d’authentifier l’auteur d’un message numérique à l’aide d’une signature. Cet algorithme de signature est appelé ECDSA pour Elliptic Curve Digital Signature Algorithm ou « algorithme de signature numérique sur courbes elliptiques » en français.

Pour toute utilisation de cet algorithme, il est nécessaire générer une paire de clés numériques : une clé privée et une clé publique. La clé privée est un nombre aléatoire gardé secret par l’utilisateur. La clé publique est calculée à partir de cette clé privée de manière à ce qu’on ne puisse pas faire le calcul en sens inverse. Le rôle de la clé privée est de produire des signatures numériques qui peuvent être vérifiées à l’aide de la clé publique. Cette clé privée n’est jamais dévoilée et ne peut pas être déduite des signatures produites.

Dans Bitcoin, une troisième donnée vient s’ajouter : c’est l’adresse publique permettant de recevoir des fonds. Dans le cas simple, l’adresse est simplement calculée à partir de la clé publique par le biais de fonctions de hachage, et prend généralement la forme d’une chaîne de caractères numériques commençant par un 1, comme :

1KMnRF6NbRnLg8KkqBGorSyLGM14BVR2LS

C’est alors la clé privée qui permet de signer des transactions à partir de cette adresse. Ainsi, seul celui qui possède cette clé privée est en mesure de déplacer les bitcoins présents à cette adresse.

Supposons que Alice possède des fonds à une adresse et souhaite envoyer 1 bitcoin à Bob. Pour ce faire, elle construit une transaction stipulant le transfert de valeur entre son adresse et celle de Bob (« Moi Alice donne 1 bitcoin à Bob. ») et la signe à l’aide de sa clé privée. Elle inclut également dans la transaction sa clé publique. Les mineurs du réseau Bitcoin, qui sont en charge de valider la chaîne de blocs, pourront ainsi vérifier que sa signature correspond bien à sa clé privée.

 

Signature simple

 

Pour plus de détails sur les clés et les adresses, vous pouvez aller jeter un œil à l’article « Clés privées, clés publiques et adresses dans Bitcoin » qui explique ces concepts de manière plus avancée.

 

Comment fonctionnent les comptes multisignatures ?

Au-delà des adresses simples correspondant à une seule clé privée, il existe des adresses dites « multisignatures » dont le contrôle est partagé entre plusieurs clés entités. Chaque adresse multisignatures suit un schéma « m-of-n » pour 1 ≤ m ≤ n ≤ 15 qui requiert m signatures de la part des n co-propriétaires pour effectuer une transaction à partir de l’adresse.

Notez toutefois que seuls les schémas pour 1 ≤ m ≤ n ≤ 3 sont considérés comme standard, c’est-à-dire que la plupart des nœuds du réseau ne relaieront pas les transactions émanant d’une adresse multisignatures à 4 participants ou plus, bien que ces transactions soient tout à fait valides.

La possibilité de vérifier plusieurs signatures à la fois pour effectuer un paiement provient de la nature programmable de Bitcoin. C’est pourquoi les adresses multisignatures sont usuellement des adresses P2SH (Pay-to-Script-Hash) commençant par un 3 : le schéma de multi-signature est un script avancé vers lequel on dirige le paiement.

Pour plus de détails sur les scripts utilisés dans la multi-signature, vous pouvez consulter notre article sur les cas d’utilisation des smart contracts.

Pour illustrer la chose, prenons le cas de trois personnes qui créent une adresse multisignatures : Alice, Bob et Carole. Elles souhaitent utiliser un schéma à 3 participants et à 2 signatures requises (2-of-3). Pour cela, elles mettent en commun leurs clés publiques et créent leur adresse multisignatures :

3DyDCGSC59yYY46dnRH7Vw1iKbV8zeW36q

 

Création d'une adresse multisignatures

 

Elles peuvent ainsi recevoir des fonds de n’importe qui. Disons qu’une quatrième personne, Diane, leur envoie 1 bitcoin.

 

Réception d'une transaction

 

Puisque 2 signatures seulement sont requises, Bob et Carole peuvent effectuer une transaction sans qu’Alice n’intervienne. Ils décident donc d’envoyer le bitcoin reçu précédemment à une autre personne, Éric. Pour cela, il leur suffit de construire une transaction et de la signer chacun leur tour à l’aide de leur clé privée. Le schéma de multi-signature utilisé est également transmis au sein de la transaction. Lorsque les mineurs du réseau valideront la transaction, ils pourront ainsi vérifier que les deux signatures correspondent à 2 des 3 clés publiques correspondant à l’adresse multisignatures.

 

Multi-signature d'une transaction

 

On a parlé ici d’adresse multisignatures, mais il faut savoir qu’il est également possible de gérer des comptes multisignatures à adresses multiples. Ces derniers sont générés d’une manière analogue aux comptes des portefeuilles modernes : les co-propriétaires ont chacun une graine (une clé privée générant toutes les autres) qui leur fournit un accès au compte ; en partageant chacun une clé publique correspondant à cette graine, ils peuvent ainsi générer autant d’adresses multisignatures qu’ils le veulent. Cela permet d’améliorer grandement la confidentialité des transactions en utilisant une nouvelle adresse à chaque paiement effectué.

Si vous recherchez un portefeuille permettant la création d’un compte multisignatures, nous vous conseillons d’utiliser Electrum.

 

L’utilisation des comptes multisignatures

Les comptes multisignatures peuvent être utilisés pour une variété de raisons. Un couple peut ouvrir un compte joint qui mettra leurs fonds en commun tout en leur permettant à chacun des membres du couple de dépenser les fonds individuellement (schéma 1-of-2). Des associés peuvent aussi ouvrir un compte pour leur entreprise : par exemple, 3 associés peuvent ouvrir une adresse requérant 3 signatures qu’ils partageront avec leur comptable ou leur avocat (schéma 3-of-4).

Les adresses multisignatures sont également utilisées dans la construction des canaux de paiement bidirectionnels, qui constituent les briques de base du réseau Lightning. Il s’agit d’adresses 2-of-2 faites pour permettre à deux personnes d’échanger de la valeur sans publier leurs transactions sur la chaîne de blocs.

La multi-signature était présente dans le protocole dès le lancement de Bitcoin en 2009. Néanmoins, elle n’a été standardisée qu’à la fin de l’année 2011 par le BIP-11, et n’a commencé à se développer qu’à partir de 2012, notamment grâce à l’introduction des adresses P2SH.

Aujourd’hui, les adresses multisignatures représentent une part non négligeable de l’activité économique de Bitcoin. En fait, les adresses P2SH (et leurs homologues P2WSH) sont dédiées dans une grande majorité des cas aux comptes multisignatures.

Si l’on regarde les graphiques sur Grafana (07/01/2019), on constate que, sur les sorties transactionnelles identifiées, la multi-signature constitue 65 % des sorties transactionnelles identifiées, l’autre cas d’usage majeur étant les adresses SegWit P2WPKH. Parmi tous les schémas existant, c’est le schéma 2-of-3 qui est le plus populaire, suivi de loin par les schémas 3-of-4 et 2-of-2.

 

Répartition par type des sorties P2SH

 

Si l’on s’attarde sur la richesse conservée dans les adresses multisignatures, c’est le schéma 3-of-5 qui est le plus plébiscité, suivi des schémas 3-of-4, 2-of-3 et 3-of-6. On a donc des schémas complexes qui se retrouvent à détenir plusieurs millions de bitcoins, et pour cause : ces schémas constituent une solution de choix pour le stockage à froid des plateformes d’échange comme Coinbase ou Kraken. En témoignent notamment la présence de nombreuses adresses P2SH dans top 100 des adresses les plus riches en bitcoins. L’adresse la plus riche est d’ailleurs une adresse multisignatures 3-of-6 de Bitfinex et contient plus de 138 000 BTC.

 

Répartition des bitcoins conservés par les adresses P2SH

 

L’avenir de la multi-signature

À l’avenir, les comptes multisignatures pourraient évoluer grâce à l’implémentation des signatures de Schnorr dans le protocole Bitcoin. Cette évolution est actuellement en discussion au sein de la communauté, et est notamment soutenue par Pieter Wuille, un développeur de Bitcoin Core. Bitcoin Cash a aussi pour projet de les implémenter en mai 2019.

Comme on l’a vu, dans le schéma actuel, chacun des signataires doit ajouter sa signature dans la transaction et ce sont les mineurs qui sont en charge de vérifier qu’elles coïncident bien avec les clés publiques du compte multisignatures. Avec les signatures de Schnorr, il serait possible de réaliser ce travail en amont et de compresser toutes les signatures en une seule. Cette amélioration permettrait d’alléger le fardeau des nœuds du réseau tant au niveau de la vérification que de la place occupée par les signatures dans les extensions de bloc. Elle permettrait également d’augmenter la confidentialité des utilisateurs puisque la multi-signature aura tout l’air d’une transaction ordinaire provenant d’une adresse simple.

 


Ludovic

Ludovic est fasciné par les cryptomonnaies et par l'impact qu'elles pourraient avoir sur le monde. De formation scientifique, il s'attache à décrire leur fonctionnement technique de la façon la plus fidèle possible.

facebook-cryptoast twitter-soothsayerdata


Poster un Commentaire

avatar