Qu'est-ce qu'un systeme de signature a seuil (SST)?
Les Principes de Base
Le système de signature à seuil (TSS) est une primitive cryptographique qui permet la génération et la signature de clés distribuées. Son application dans les clients blockchain peut offrir un large éventail d'avantages, en particulier dans le domaine de la sécurité. Cette innovation peut également influencer le développement de systèmes de gestion de clés, tels que les crypto-portefeuilles, et même ouvrir la voie à une prise en charge native dans les cas d'utilisation DeFi. Toutefois, comme il s'agit encore d'une nouvelle technologie, il est essentiel de prendre en compte les limites et les risques potentiels associés à la signature à seuil.
Explorons Threshold Signature Scheme, définissons ses avantages potentiels dans le contexte de la blockchain et détaillons comment il peut être intégré dans un client blockchain. L'article comparera également le TSS à d'autres technologies cryptographiques similaires, telles que le partage du secret de Shamir et le Multisig. En outre, il abordera les différentes façons dont le TSS peut être utilisé pour la gestion des clés distribuées, avant de conclure par un aperçu des risques et des limites associés à cette technologie.
La Force de la Cryptographie
Avant de se plonger dans les subtilités du système de signature à seuil, il est essentiel d'avoir une compréhension de base de la cryptographie. Depuis les années 1970, la cryptographie asymétrique, également connue sous le nom de cryptographie à clé publique (PKC), est largement utilisée dans les systèmes Internet tels que TLS et PGP. La PKC utilise deux clés : une publique et une privée. La clé publique peut être librement utilisée et publiée, tandis que la clé privée reste confidentielle pour garantir la sécurité.
La PKC a deux utilisations principales : le cryptage et les signatures numériques. Ces deux applications reposent sur un ensemble de trois algorithmes. Tout d'abord, la paire de clés privée et publique est générée. Ensuite, un texte chiffré/une signature est généré(e). Enfin, le processus de décryptage/vérification est effectué. En ce qui concerne les signatures numériques, l'algorithme de signature nécessite la clé privée, connue uniquement du propriétaire, pour produire une signature unique qui peut être attachée à un message donné. Toute personne possédant la clé publique peut alors vérifier l'authenticité et l'exactitude de la signature.
Blockchain
La technologie blockchain a gagné en popularité en raison de sa capacité à organiser et à enregistrer des événements par le biais d'une couche de consensus, qui peut potentiellement être utilisée pour établir des économies décentralisées et même des gouvernements. Les signatures numériques sont la seule forme de cryptographie nécessaire pour faire fonctionner une blockchain de base. Dans le contexte de la blockchain, les clés privées font office d'identités, tandis que les signatures servent de déclarations publiques ou d'affirmations faites par une identité. La blockchain valide et ordonne ces déclarations sur la base d'un ensemble de règles, garantissant que les signatures sont infalsifiables et exactes.
Les techniques cryptographiques modernes, telles que les preuves à connaissance nulle, le chiffrement homomorphe et le calcul multipartite, ont élargi la gamme d'outils disponibles en cryptographie. La recherche sur la blockchain a contribué de manière significative aux progrès de la cryptographie appliquée au cours de la dernière décennie. Cet article se concentre sur l'une de ces avancées : les signatures à seuil, efficaces et sûres.
Le MPC et le TSS
Le schéma de signature à seuil est une méthode qui combine la génération de clés distribuées (DKG) et la signature distribuée dans un schéma de signature à seuil. Le calcul multipartite (MPC) est une branche de la cryptographie qui existe depuis près de 40 ans. Il permet à des parties qui ne se font pas confiance de calculer conjointement une fonction sur leurs données d'entrée tout en gardant ces données d'entrée privées. Imaginons, par exemple, que les employés d'une entreprise veuillent savoir qui est le mieux payé sans révéler leurs salaires les uns aux autres. Avec MPC, le calcul est effectué de manière à ce qu'aucun salaire ne soit divulgué au cours du calcul. De manière distribuée, nous pouvons utiliser le MPC pour calculer une signature numérique. La création d'une signature comporte trois étapes : la génération de la clé, la signature et la vérification.
Lors de la première étape, nous générons une clé, qui est publique et utilisée pour vérifier les signatures futures, ainsi que des secrets individuels pour chaque partie, connus sous le nom de parts secrètes. Pour préserver la confidentialité et l'exactitude, la fonction doit produire la même clé publique pour toutes les parties et une part secrète différente pour chacune d'entre elles. Le critère de confidentialité impose qu'aucune donnée relative aux parts secrètes ne soit divulguée entre les parties, tandis que le critère d'exactitude garantit que la clé publique est une fonction des parts secrètes.
Pour la deuxième étape, chaque partie utilise sa part secrète pour entrer dans une fonction de génération de signature et un message connu de toutes les parties. Le résultat de cette étape est une signature numérique, et la propriété privée garantit qu'aucune fuite de parts secrètes ne se produit pendant le calcul.
La troisième étape implique un algorithme de vérification qui reste le même que dans le cadre classique. Toute personne connaissant la clé publique peut vérifier et valider les signatures, ce qui rend le système compatible avec les signatures à clé unique.
En résumé, TSS est le nom donné à cette combinaison de génération de clés distribuées et de signature distribuée dans un système de signature à seuil utilisant MPC.
Intégrer les TSS (SCT) aux Blockchain
Pour intégrer la technologie TSS dans une blockchain, nous devons modifier le client de la blockchain afin qu'il effectue des calculs distribués au lieu de commandes liées à la clé privée. Dans la conception traditionnelle de la blockchain, une nouvelle adresse est créée en générant une clé privée, en calculant la clé publique, puis en dérivant l'adresse de la blockchain à partir de la clé publique.
Avec TSS, un groupe de parties peut calculer conjointement la clé publique, chacune détenant une part secrète de la clé privée. La part de chaque partie reste confidentielle, ce qui fait de la clé privée une entité distribuée. La blockchain n'est pas affectée. Cette approche présente l'avantage de ne pas avoir de point de défaillance unique pour la clé privée, puisque chaque partie n'en détient qu'une partie.
De même, lors de la signature des transactions, une partie unique est remplacée par une génération de signature distribuée entre plusieurs parties. Chaque partie peut générer une signature valide si un nombre suffisant d'entre elles sont honnêtes. En outre, la génération de clés distribuées permet de gérer différentes structures d'accès. Le paramètre "t sur n" peut tolérer jusqu'à t défaillances arbitraires sans affecter la sécurité.
TSS vs. Multisig
Pour l'essentiel, multisig et TSS tentent d'atteindre des objectifs similaires. Cependant, le multisig se produit sur la chaîne, tandis que le TSS utilise la cryptographie hors chaîne. Alors que certaines blockchains disposent d'une fonctionnalité TSS intégrée ou programmable, multisig est une couche d'application de la blockchain.
L'inconvénient du multisig est que la structure d'accès est exposée sur la blockchain, ce qui peut compromettre la confidentialité. En outre, les transactions multisig sont plus coûteuses en raison des informations sur les différents signataires qui doivent être communiquées sur la blockchain. À l'inverse, la TSS intègre les détails des signataires dans une transaction d'apparence normale, ce qui réduit les coûts tout en préservant la confidentialité.
Bien que le multisig soit non interactif, il est spécifique à la blockchain et doit être réimplémenté pour chaque blockchain, ou parfois il n'est pas pris en charge du tout. Le TSS, quant à lui, repose sur la cryptographie, ce qui le rend universellement supporté.
TSS vs. Shamir
La comparaison entre le système de partage du secret de Shamir (SSSS) et le TSS présente deux différences majeures. Tout d'abord, dans le SSSS, une seule partie appelée "le revendeur" génère les parts secrètes de la clé privée et les distribue ensuite à différents endroits. Cela signifie que la clé privée est initialement générée à un seul endroit, puis distribuée, ce qui constitue un point de défaillance unique potentiel. En revanche, TSS ne s'appuie pas sur un revendeur unique. Au contraire, la génération de la clé est distribuée, ce qui garantit que la clé privée ne se trouve jamais en un seul endroit.
Deuxièmement, dans SSSS, les parties doivent reconstituer l'intégralité de la clé privée pour signer, ce qui crée un autre point de défaillance unique potentiel chaque fois qu'une signature est nécessaire. TSS traite la signature différemment en l'exécutant de manière distribuée sans reconstruire les parts secrètes.
En résumé, TSS garantit que la clé privée ne se trouve jamais à un seul endroit pendant toute sa durée de vie, tandis que SSSS présente un seul point de défaillance lors de la génération de la clé et de la signature.
Les Portefeuilles Threshold
Contrairement aux portefeuilles de crypto-monnaies traditionnels, un portefeuille basé sur la technologie TSS fonctionne différemment. En règle générale, un portefeuille conventionnel génère une phrase d'amorçage pour dériver les adresses de manière déterministe. L'utilisateur peut ensuite utiliser cette structure déterministe hiérarchique (HD) pour accéder aux clés privées correspondant aux adresses du portefeuille et signer des transactions, ainsi que pour récupérer toutes les clés du portefeuille à l'aide de la phrase de départ.
Cependant, dans un portefeuille à seuil, les choses sont plus complexes. Bien qu'il soit possible de générer une structure HD, sa génération doit être calculée de manière distribuée à l'aide d'un autre protocole MPC. Les parties doivent décider ensemble de la prochaine clé à utiliser, chacune d'entre elles ayant sa propre phrase d'amorçage. Les phrases de départ sont générées séparément et ne sont jamais combinées, de sorte qu'une partie seule ne peut pas dériver les clés privées de sa phrase de départ.
Les portefeuilles basés sur le TSS offrent une fonction de sécurité permettant la rotation de la clé privée sans changer la clé publique correspondante et l'adresse de la blockchain. Cette fonction, également connue sous le nom de partage de secret proactif, prend les parts secrètes en entrée et produit un nouvel ensemble de parts secrètes. Les anciennes parts secrètes peuvent être supprimées et les nouvelles peuvent être utilisées de la même manière.
Grâce à cette structure de sécurité temporelle, il est difficile pour un attaquant de franchir un seuil de portefeuille. La combinaison des parts secrètes avant et après la rotation n'offre aucun pouvoir supplémentaire aux attaquants qui veulent falsifier une signature.
Toutefois, l'inconvénient de ce type de portefeuille est l'absence de phrase d'amorçage, ce qui le rend incompatible avec les systèmes de portefeuilles à clé unique. Il est essentiel de déterminer quelles parties détiendront les parts secrètes. Il existe trois architectures possibles:
- L'externalisation des TSS: L'utilisateur laissera "n" serveurs exécuter les calculs en son nom, externalisant ainsi la génération, la gestion et la signature des clés à des fournisseurs de services. Cependant, les fournisseurs de services pourraient s'entendre et voler les actifs de l'utilisateur.
- Utilisation de plusieurs appareils: L'utilisateur exécutera le TSS entre ses propres appareils, tels qu'un appareil IoT, un téléphone mobile et un ordinateur portable. Toutefois, cette méthode peut s'avérer fastidieuse lors de la réalisation de transactions.
- Hybride: TSS fonctionnera avec certaines parties contrôlées par des fournisseurs de services externes et d'autres parties sur des appareils appartenant à l'utilisateur. Cette option offre un moyen simple et rapide d'effectuer des transactions sans compromettre la sécurité.
En résumé, la technologie TSS ajoute un nouveau niveau de sécurité aux portefeuilles de crypto-monnaies, les rendant moins vulnérables aux attaques. L'approche hybride est considérée comme la meilleure option pour les utilisateurs, car elle offre un équilibre entre commodité et sécurité.
TSS et Smart Contracts
Les signatures numériques ont de nombreuses utilisations qui peuvent s'avérer difficiles. Le TSS est une primitive cryptographique qui renforce la sécurité. La cryptographie basée sur le TSS peut remplacer de nombreuses fonctionnalités dans les blockchains. Les échanges atomiques, l'héritage, les solutions de mise à l'échelle de la couche 2 et les applications décentralisées peuvent être construits à l'aide du cadre TSS, remplaçant les opérations coûteuses et dangereuses des contrats intelligents sur la chaîne par des alternatives fiables et moins coûteuses. Les verrous multi-sauts, qui utilisent astucieusement les signatures bipartites, peuvent remplacer le réseau Bitcoin Lightning pour un réseau de canaux de paiement sécurisé et privé. ShareLock, qui repose sur la vérification d'une signature à seuil unique, est probablement la solution de mélange on-chain la plus rentable pour Ethereum.
Les Risques
Malgré la popularité croissante des implémentations TSS ces dernières années, la technologie, relativement nouvelle, présente encore certaines limites et préoccupations. Si les protocoles TSS peuvent renforcer la sécurité, ils sont aussi beaucoup plus complexes que la cryptographie classique à clé publique et n'ont pas encore fait l'objet de tests rigoureux. En outre, les TSS nécessitent souvent des hypothèses cryptographiques plus faibles que les configurations traditionnelles, ce qui conduit à la découverte de nouveaux vecteurs d'attaque. Toutefois, les ingénieurs en sécurité et les cryptographes peuvent contribuer à garantir le déploiement sûr des TSS dans votre système. Sur une note positive, les contributions de qualité, les examens par les pairs, les audits et les améliorations des performances algorithmiques contribuent tous à renforcer les implémentations de TSS.
La Conclusion de l'accord
En conclusion, le système de signature à seuil est une technologie cryptographique innovante qui a le potentiel d'apporter un large éventail d'avantages, en particulier dans le domaine de la sécurité des blockchains. Son application dans les clients de la blockchain peut révolutionner les systèmes de gestion des clés, tels que les portefeuilles de crypto-monnaie, et même ouvrir la voie à une prise en charge native dans les cas d'utilisation DeFi. Cependant, bien que le TSS offre plusieurs avantages, il s'agit toujours d'une nouvelle technologie, et il est essentiel de prendre en compte ses limites et ses risques potentiels. Il est donc essentiel de se tenir au courant des derniers développements et de la recherche en matière de TSS afin de prendre des décisions éclairées concernant sa mise en œuvre.