
Pour quiconque possède des avoirs importants en bitcoins, une structure de garde qui inclut un point de défaillance unique devrait être considérée comme inacceptable. Si un portefeuille comporte un seul composant qui, en cas de perte ou de vol, peut entraîner une perte permanente de fonds, alors il est tout simplement trop dangereux d’envisager une telle solution. Personne ne veut laisser une richesse importante au bord de la catastrophe.
Les détenteurs individuels de bitcoins disposent de nombreux outils qui peuvent les aider à réduire le risque de perte ou de vol. Dans un article précédent, nous avons abordé certains de ces outils, en soulignant les modifications généralement appliquées aux portefeuilles singlesig. Cependant, nous avons également expliqué pourquoi ces approches ne parviennent pas à éliminer complètement les points de défaillance uniques.
Pour une entreprise, un gouvernement ou une autre institution qui souhaite sécuriser une trésorerie en bitcoins, l’élimination des points de défaillance uniques n’est pas seulement une option, mais une condition préalable. Les seuls modèles de garde dignes d’intérêt pour ces entités sont ceux qui incluent une exigence de seuil pour accéder aux fonds. Une exigence de seuil décrit une structure qui implique plusieurs composants sécurisés séparément, où un sous-ensemble de ces composants est nécessaire pour approuver tout retrait. C’est la seule façon d’obtenir une sécurité de niveau institutionnel, en éliminant complètement les points de défaillance uniques.
Dans cet article, nous verrons comment appliquer la sécurité de seuil à l'aide de trois méthodes différentes : le multisig de script, le partage de secret de Shamir (SSS) et le calcul multipartite (MPC). Nous nous pencherons également sur les compromis associés à chaque approche et sur la manière dont une institution peut choisir la meilleure configuration pour répondre à ses besoins.
Qu'est-ce que le multisig ?
Si vous n’êtes pas sûr de ce qu’est le script multisig, nous vous recommandons de consulter notre article précédent consacré à l’explication du fonctionnement des portefeuilles multisig et à leur utilité. Pour rappel, un portefeuille multisignature implique plusieurs clés privées et peut être configuré de manière à ce qu’un nombre spécifique (seuil) de ces clés privées soit requis pour signer une transaction. Les signatures peuvent être produites à des moments et à des endroits différents, ce qui permet à chaque clé de rester physiquement séparée. Une fois qu’un nombre seuil de signatures a été produit, elles peuvent être combinées en une seule transaction Bitcoin capable de dépenser les fonds.
Un quorum multisig de script 2 sur 3, où un seuil de deux signatures uniques provenant de deux clés est requis pour les retraits.
Cette méthode relativement simple de création d'un seuil d'exigence est très efficace pour éliminer tous les points de défaillance uniques. Tant que le seuil de dépenses est supérieur à un mais inférieur au nombre total de clés, n'importe quelle clé peut être perdue, volée ou détruite sans que le bitcoin ne devienne irrécupérable. Les clés restantes pourraient signer une transaction de récupération transférant des fonds vers une nouvelle configuration multisig.
Satoshi Nakamoto a posé les bases du multisig lors de la première sortie du bitcoin, anticipant qu’il pourrait devenir un mécanisme populaire pour sécuriser les fonds. Cependant, ce n’est qu’avec le softfork P2SH en 2012 que le multisig a commencé à devenir un outil largement utilisé. Le multisig a depuis fait ses preuves en tant que modèle de sécurité éprouvé pendant plus d’une décennie, sur plusieurs types d’adresses différents.
Quel est le secret que partage Shamir ?
Le partage de secret de Shamir (SSS) est un algorithme de partage de secret développé par le célèbre cryptographe Adi Shamir en 1979. Il peut être utilisé comme un autre moyen d'introduire une exigence de seuil pour protéger le bitcoin. SSS permet aux utilisateurs de diviser une clé en plusieurs « parts » distribuées, avec seulement un certain seuil de parts nécessaires pour réassembler la clé. Cela peut être utilisé pour concevoir des quorums comme 2 sur 3 ou 3 sur 5, similaires au multisig.
Un arrangement SSS 2 sur 3, où deux actions quelconques, représentées par les formes colorées, peuvent réassembler la clé d'un portefeuille à signature unique. La clé peut produire la signature unique nécessaire pour retirer des fonds.
Cependant, cette approche conduit toujours à des points de défaillance uniques à certains moments de son cycle de vie. Un exemple est lorsque la clé est initialement divisée en partages SSS. Cette opération est généralement effectuée sur un seul appareil, à un moment et à un endroit uniques. Si un attaquant compromet cet appareil, le processus de génération de clé ou le processus de création de partage, il a compromis la clé. Un autre exemple est chaque fois que l'utilisateur doit réassembler la clé pour signer une transaction. Un nombre seuil de partages doit être rassemblé, une fois de plus sur un seul appareil, à un moment et à un endroit uniques, ce qu'un attaquant pourrait exploiter.
Une méthode assez simple et largement utilisée pour mettre en œuvre la technologie SSS pour la garde des crypto-monnaies consiste à utiliser la sauvegarde Shamir, développée par Satoshi Labs en 2017. Elle peut être trouvée en option dans certains modèles de portefeuilles matériels Trezor.
Qu'est-ce que le MPC ?
Le MPC, ou calcul multipartite, est un sous-domaine de la cryptographie qui remonte aux années 1970. L’objectif du MPC est de permettre à plusieurs participants d’effectuer conjointement un calcul, tandis que la contribution de chaque participant au calcul n’est pas révélée au reste du groupe et peut donc rester privée. Cela permet à plusieurs parties de collaborer dans divers contextes sans avoir besoin de se faire confiance.
Appliqué à la garde de bitcoins, le MPC implique des « parts » distribuées, similaires au SSS. Cependant, contrairement au SSS, les parts ne sont pas séparées d'une clé privée ni utilisées pour reconstruire une clé privée. Au lieu de cela, plusieurs parties calculent une signature unique directement à partir d'un seuil de leurs parts.
Un arrangement MPC 2 sur 3, où deux parts quelconques, représentées par les formes colorées, peuvent produire une signature directement sans assembler une clé au préalable.
Contrairement au SSS, le MPC ne nécessite pas de point de défaillance unique. Les parts MPC peuvent être générées séparément les unes des autres et n'ont jamais besoin d'être réunies pour faire fonctionner le portefeuille. Les informations produites à partir d'une part peuvent être communiquées aux autres participants, sans que la part elle-même ne soit révélée.
Étant donné que le bitcoin et d’autres cryptomonnaies ont principalement utilisé un système de signature basé sur l’ECDSA (Elliptic Curve Digital Signature Algorithm), le MPC a dû être adapté à ce contexte. Les premiers protocoles de seuil pratiques pour l’ECDSA ont été publiés en 2018. [GG18, LNR18]
Quels sont les compromis entre les modèles de seuil ?
Avec trois modèles de seuil de sécurité différents parmi lesquels choisir, l’étape suivante consiste à comprendre les forces et les faiblesses de chaque option.
Compromis avec le multisig
Le script multisig est une méthode standardisée pour atteindre un seuil de sécurité, propre au protocole Bitcoin. La structure est considérée comme relativement simple et robuste. La barrière à l'entrée est également faible : si un utilisateur de Bitcoin sait comment utiliser un portefeuille singlesig, il n'y a pas beaucoup de chemin à parcourir pour apprendre à configurer et à utiliser un portefeuille multisig.
Lorsqu'un portefeuille multisig est initialisé, les adresses produites pour recevoir des bitcoins dans le portefeuille ont le seuil requis intégré. Une fois qu'une adresse multisig a été financée, le bitcoin est protégé par un contrat immuable qui a essentiellement été écrit dans la blockchain elle-même. La seule façon de modifier le contrat (comme changer la politique de contrôle d'accès, ajuster les clés qui protègent le bitcoin) est de déplacer le bitcoin vers une nouvelle adresse qui a été créée avec un contrat différent. Pour plusieurs parties qui collaborent pour sécuriser le bitcoin, ce mécanisme de contrat immuable de base peut fournir le plus haut degré de garantie que l'argent est sécurisé conformément à la manière dont toutes les parties l'ont prévu. Si quelque chose devait être fondamentalement modifié, cela deviendrait évident pour tout le monde par la survenue d'une transaction publique, et les clés qui ont approuvé le changement seraient connues. C'est pourquoi les fournisseurs de garde collaborative tels qu'Unchained s'appuient sur le script multisig pour nos produits.
Cependant, le déploiement public de contrats sur la blockchain implique des compromis. Lorsque les bitcoins sont dépensés à partir d’une adresse multisig, la politique de contrôle d’accès de cette adresse doit être publiée de manière permanente sur la blockchain. Les observateurs peuvent alors voir les détails du quorum multisig utilisé. Bien que les fonds restants puissent être facilement migrés vers une nouvelle adresse à l’avenir, le fait que les anciennes dispositions de sécurité soient exposées n’est pas idéal. De plus, la nécessité de déplacer des bitcoins d’une adresse à une autre afin d’ajuster la politique de contrôle d’accès signifie que des frais de transaction sont toujours impliqués dans le processus (et plus le quorum est important, plus cela sera coûteux).
Pour les entités qui accordent de l’importance à la conservation des altcoins, comme les bourses de cryptomonnaies, le script multisig peut poser plus de problèmes que les deux autres méthodes de sécurité par seuil. En effet, un quorum de seuil multisig est imposé au niveau de la blockchain et différentes cryptomonnaies utilisent des blockchains différentes. De nombreuses cryptomonnaies ne prennent même pas en charge une implémentation multisig native et robuste. Parallèlement, SSS et MPC appliquent des quorums de seuil au niveau de la clé et ressemblent publiquement à des transactions singlesig. Étant donné que presque toutes les cryptomonnaies prennent en charge une norme similaire pour la conservation singlesig (la même clé peut être utilisée dans la plupart des cryptomonnaies), cela permet à SSS et MPC d’être plus compatibles entre les chaînes.
Les compromis liés au partage du secret de Shamir
SSS propose une autre façon de concevoir un seuil d’exigence basé sur une cryptographie relativement simple et éprouvée. Aux fins de la conservation des cryptomonnaies, SSS dispose également d’une méthode largement déployée avec une faible barrière à l’entrée (sauvegarde Shamir). Une fois que quelqu’un a l’expérience de l’utilisation d’un portefeuille singlesig conventionnel, il n’y a pas grand-chose à faire pour utiliser un Trezor pour configurer un portefeuille avec une sauvegarde Shamir.
Contrairement au multisig, le SSS fonctionne complètement en dehors des adresses et des transactions publiques sur la blockchain. Au lieu de cela, le seuil requis est déterminé par la manière dont la clé privée est divisée en parts. Cela signifie que la division d'une clé en parts et leur réassemblage ultérieur peuvent être effectués en privé, de sorte que seules les personnes participant à l'accord de garde de bitcoins savent que le SSS est utilisé. Outre les avantages en termes de confidentialité, le fait de conserver la structure du seuil en dehors de la blockchain signifie également que les transactions SSS n'entraîneront pas d'augmentation des frais et qu'elle peut être utilisée pour sécuriser de nombreuses crypto-monnaies différentes. Bien que la plupart des crypto-monnaies aient leurs propres blockchains uniques, elles peuvent toutes partager la même clé privée comme point d'accès, et cette clé peut à son tour être divisée à l'aide du SSS.
Le plus gros inconvénient du SSS a déjà été mentionné ci-dessus : la clé privée doit exister à un seul endroit à un moment donné, avant d’être divisée en parts, et également lorsque les parts sont recombinées pour approuver un retrait. Ces vulnérabilités créent des points de défaillance uniques temporaires, ce qui signifie que le SSS en lui-même n’offre pas une sécurité véritablement de niveau institutionnel, contrairement au multisig ou au MPC.
De plus, SSS n’offre pas nativement de méthode permettant d’ajuster la politique de contrôle d’accès. Une fois qu’une clé privée est divisée en un quorum de parts, ces parts conserveront toujours la capacité de reproduire cette clé. Si un groupe sécurise un trésor en utilisant SSS et qu’un membre du groupe quitte le groupe, révoquer les autorisations de cette personne de manière sécurisée peut poser un défi. Les membres restants du groupe pourraient réassembler la clé, puis la diviser en nouvelles parts, mais les anciennes parts devraient être détruites de manière vérifiable. Sinon, les fonds devraient être envoyés vers un tout nouveau portefeuille protégé par une clé différente.
Compromis avec MPC
Tout comme SSS, MPC applique l'exigence de seuil au niveau de la clé plutôt qu'au niveau de la blockchain. Cela permet d'obtenir des avantages similaires, tels que l'octroi d'une plus grande capacité de confidentialité, l'évitement de frais de transaction plus élevés et la possibilité d'utiliser une structure de garde MPC pour de nombreuses crypto-monnaies différentes.
Il est important de noter que MPC parvient à éviter les points de défaillance uniques temporaires qui accompagnent l'utilisation de SSS. En utilisant une méthode cryptographique différente, les parts de clés peuvent exister séparément dès la création du portefeuille, et même rester séparées lors de la signature des transactions de retrait. La plupart des implémentations MPC incluent également une méthode native d'ajustement de la politique de contrôle d'accès (création d'un nouveau quorum de parts) sans avoir à envoyer de fonds à une nouvelle adresse de portefeuille.
Cependant, le MPC pour l'ECDSA à seuil est considéré comme une cryptographie très complexe, et il n'existe pas de norme convenue pour son utilisation. Il existe de nombreux protocoles différents, les deux premiers ayant été développés indépendamment en 2018 par Gennaro et Goldfeder [GG18] et Lindell et al. [LNR18]. Depuis lors, nous avons également vu des protocoles de Doerner et al. [DKLs19], Castagnos et al. [CCL+20], Damgård et al. [DJM+20], Canetti et al. [CMP20], Gągol et al. [GKSS20], Gennaro et Goldfeder [GG20], Canetti et al. [CGG+21], Abram et al. [ANO+21], Doerner et al. [DKLs23], et peut-être d'autres. Bien que les protocoles les plus récents tendent à apporter certaines améliorations par rapport aux plus anciens, ils ont peut-être bénéficié de moins d’opportunités d’examen par les pairs, d’audit et d’autres tests.
Le niveau de complexité plus élevé associé à MPC crée une surface d'attaque élargie. Avec des composants et des procédures supplémentaires, la marge d'erreur et les vulnérabilités potentielles en matière de sécurité sont plus nombreuses. Des preuves de failles de sécurité graves, notamment des attaques par extraction complète de clés privées, se sont déjà présentées plus d'une fois, affectant certains des protocoles ECDSA de seuil répertoriés ci-dessus.
Voici quelques exemples :
Vulnérabilités AS20, septembre 2020, affectant les implémentations GG18
Vulnérabilités des rayons alpha, décembre 2021, affectant GG18 et GG20
Vulnérabilités TSSHOCK, août 2023, affectant GG18, GG20 et CGG+21
Vulnérabilités BitForge, août 2023, affectant GG18 et GG20
« La cryptographie doit passer l’épreuve du temps pour atteindre la longévité, et ces nouveaux protocoles n’ont clairement pas passé l’épreuve du temps […] cette recherche n’était pas prête pour une mise en œuvre ou une adoption généralisée. De mon point de vue, la mise en œuvre et la productisation de recherches aussi récentes sont assez dangereuses. » — Charles Guillemet, directeur technique de Ledger, réponse de décembre 2021 à Alpha-Rays
« [MPC est] plus compliqué, plus sujet aux erreurs. Les protocoles cryptographiques avancés sont fragiles dans les détails et dans la mise en œuvre. Je me sentirais plus en confiance avec le multisig, qui est super simple et solide comme un roc. » — Article du célèbre cryptographe Adam Back, janvier 2023
Le MPC est également limité par ceux qui peuvent l’utiliser de manière réaliste en premier lieu. Comme mentionné précédemment, le seuil ECDSA est très compliqué. Pour l’individu moyen, il n’existe aucun outil permettant de configurer MPC de manière sûre ou simple. Bien que certaines entreprises proposent des portefeuilles MPC de garde collaborative assez faciles à utiliser, ces entreprises n’offrent aucun moyen simple aux utilisateurs de récupérer des fonds si l’entreprise disparaît (ou aucun moyen du tout, auquel cas elles constituent un point de défaillance unique). Étant donné que le script multisig est une norme simple et ouverte, les entreprises qui fournissent des solutions de garde collaborative utilisant le multisig peuvent proposer des outils de récupération open source et faciles à utiliser. Cela crée un moyen simple pour les clients de récupérer leurs fonds même si l’entreprise multisig collaborative n’était plus disponible pour les aider.
Quel modèle est le meilleur ?
Comme nous venons de le voir, il existe de nombreux compromis entre l'utilisation de multisig, SSS et MPC. Ils peuvent être organisés dans un graphique pour une comparaison visuelle :
Ce graphique montre les points forts (en bleu) et les points faibles (en rouge) de chaque méthode de mise en œuvre du seuil de sécurité. Le gris peut représenter une force ou une faiblesse selon le point de vue de chacun.
Si une entreprise se spécialise dans la conservation de nombreuses crypto-monnaies différentes, elle peut être motivée à embaucher une équipe de professionnels pour mettre en place soigneusement un modèle de conservation MPC. Cependant, si une entreprise ou un particulier recherche un moyen simple et fiable de sécuriser le bitcoin sur le long terme, il peut être préférable d'utiliser le script multisig et d'accepter les compromis en matière de confidentialité. Le SSS est rarement utilisé seul en raison de son incapacité à faire respecter à tout moment les exigences de seuil de niveau institutionnel.
Combinaison de modèles pour la garde collaborative
Bien que les modèles multisig, SSS et MPC soient souvent considérés comme des modèles de sécurité concurrents, il est possible d’en incorporer plusieurs dans une structure de conservation globale. Comme décrit précédemment, SSS et MPC autorisent un seuil de parts de clés pour produire une signature pour une transaction. Si la signature servait à dépenser des fonds à partir d’un portefeuille singlesig, rien d’autre ne serait nécessaire pour terminer la transaction. Cependant, si la signature servait à dépenser des fonds à partir d’un portefeuille multisig, des signatures supplémentaires provenant d’autres clés pourraient également être nécessaires.
Une structure multisig 2 sur 3, où une signature possible pourrait être produite à partir d'une clé normale, une autre signature possible pourrait être produite à partir d'une clé réassemblée à partir de 2 sur 3 partages SSS, et une autre signature possible pourrait être produite directement à partir de 2 sur 3 partages MPC.
Bien que cette combinaison de techniques puisse sembler inutile et fastidieuse, il existe en effet certains contextes où elle est judicieuse sur le plan pratique. Avec la popularité croissante des agents clés et de la conservation multi-institutionnelle, un nombre croissant d'entreprises spécialisées sont chargées par des particuliers et des institutions de sécuriser l'une des clés d'un portefeuille multisig. Ces agents clés distribués peuvent contribuer à réduire le risque de conservation. Mais comment un agent clé doit-il sécuriser cette clé unique dont il est responsable ?
Le SSS ou le MPC peuvent être une stratégie pour minimiser ou supprimer les points de défaillance uniques de cette tâche. Un agent clé d'entreprise peut concevoir un système dans lequel plusieurs responsables différents au sein de l'entreprise détiennent chacun des parts de clé, et donc une signature ne peut être produite qu'avec l'accord d'un seuil de ces responsables. De plus, si une attaque devait se produire pendant un réassemblage SSS, ou si une implémentation MPC finissait par souffrir d'une nouvelle vulnérabilité d'extraction de clé comme celles énumérées précédemment, alors aucun fonds client n'est immédiatement en danger. L'agent clé aurait le temps de réagir et de résoudre le problème, tandis que le bitcoin reste protégé par le portefeuille multisig plus large.
L'utilisation d'un script multisig pour créer une exigence de seuil en tant que contrat immuable fondamental, puis la mise en service d'agents clés professionnels pour protéger chacun une clé multisig à l'aide de leur propre seuil SSS ou MPC, est de loin la méthode la plus sûre pour une institution pour sécuriser le bitcoin à long terme.
Nouvelles fonctionnalités avec Taproot
En novembre 2021, le soft-fork Taproot a eu lieu, ajoutant de nouveaux outils à l'écosystème Bitcoin. Certains de ces outils ont un impact sur l'avenir de la garde de bitcoins de niveau institutionnel, en permettant certaines améliorations et options.
Signatures Schnorr : L'algorithme de signature Schnorr est désormais disponible dans Bitcoin comme alternative à ECDSA. L'utilisation de MPC sur Schnorr conduit à des schémas de sécurité de seuil qui sont beaucoup moins compliqués et offrent donc également une plus grande confiance dans leur sécurité, par rapport aux protocoles ECDSA mentionnés précédemment. FROST est le principal protocole de signature de seuil Schnorr, tandis que MuSig2 est également disponible spécifiquement pour les quorums N-of-N. Ces deux schémas de signature sont en passe de devenir des outils standardisés dans l'ensemble du secteur Bitcoin, et ils devraient rendre MPC accessible aux particuliers ordinaires, avec une expérience utilisateur similaire au multisig de script.
Confidentialité du type de script : les adresses Pay-to-Taproot (P2TR) sont un nouveau type d'adresse qui permet aux adresses Bitcoin multisig de script d'apparaître identiques aux adresses utilisées pour les portefeuilles singlesig. Cela apporte une amélioration significative de la confidentialité, car cela signifie que l'adresse Bitcoin elle-même ne fournit aucun indice sur le modèle de sécurité de son propriétaire, par exemple s'il utilise ou non le multisig de script.
Chemins de dépenses multiples : les adresses P2TR ont également la capacité de contenir plusieurs chemins de dépenses intégrés. Cela peut créer de nouvelles façons de structurer la sécurité des seuils pour la conservation de qualité institutionnelle, comme décrit dans BIP 342 (justification, section 5). Par exemple, un utilisateur peut créer un chemin de dépenses multisig de script N-of-N pour chaque combinaison de clés pouvant dépenser des fonds. Plutôt que de créer un quorum 2 sur 3 avec les clés A, B et C, un résultat similaire peut être obtenu avec trois quorums 2 sur 2 distincts comme chemins de dépenses possibles : un avec les clés A et B, un avec les clés A et C et un avec les clés B et C. Cette stratégie peut augmenter la confidentialité, car seul le chemin de dépenses qui finit par être utilisé sera révélé. Un concept similaire peut être appliqué aux quorums de partage de clés MPC, permettant d'utiliser MuSig2 pour les seuils.
Ces outils Taproot sont relativement nouveaux et leur adoption en est encore à ses débuts. De nombreux logiciels et services Bitcoin n’offrent pas encore une prise en charge complète de ce que Taproot a à offrir. Il convient également de noter que la plupart des altcoins ne disposent pas de ces outils en natif.
Réflexions finales
Un nombre croissant d'institutions s'intéressent à la sécurisation de leur trésorerie en bitcoins et ont besoin de solutions efficaces. Éviter les points de défaillance uniques et minimiser le risque de contrepartie sont des considérations primordiales. La meilleure façon de répondre à ces critères est de tirer parti d'une structure multisig, où les clés peuvent être distribuées entre différents agents clés d'entreprise, dont aucun n'aura de contrôle unilatéral sur le bitcoin. Chaque agent clé peut utiliser SSS ou MPC pour ajouter une protection de seuil supplémentaire pour sa clé particulière.
Unchained a été le pionnier d'un réseau de garde d'entreprise, conçu pour les clients institutionnels qui souhaitent mettre en place un tel dispositif. Il est facile à utiliser et personnalisable, de sorte que chaque client peut choisir s'il souhaite détenir lui-même un nombre de clés de contrôle, ou juste une seule clé, ou laisser la responsabilité de sécuriser les clés entièrement aux différents agents de clés d'entreprise indépendants. Si vous souhaitez en savoir plus, planifiez une consultation gratuite avec nous dès aujourd'hui !
Un merci spécial à Dhruv Bansal pour avoir relu cet article et fourni de précieux commentaires.
Initialement publié sur Unchained.com.
Unchained Capital est le partenaire officiel de garde collaborative américaine de Bitcoin Magazine et un sponsor intégral du contenu associé publié via Bitcoin Magazine. Pour plus d'informations sur les services offerts, les produits de garde et la relation entre Unchained et Bitcoin Magazine, veuillez visiter notre site Web.
Source : Bitcoin Magazine
L’article Multisig, le partage du secret de Shamir et la comparaison MPC sont apparus en premier sur Crypto Breaking News.
