Traditionnellement, la création d'un multisig n-of-n à l'aide de CHECKMULTISIG signifie que vous devez publier un nombre proportionnel de signatures et de clés publiques sur la blockchain pour les signataires de la transaction. Cette approche ne révèle pas seulement le nombre total de participants à la transaction, mais entraîne également des frais de transaction progressivement plus élevés à mesure que le nombre de signataires augmente. MuSig, en revanche, permet à un groupe d'utilisateurs de générer collectivement une signature et une clé publique unique pour valider une transaction, ce qui améliore la confidentialité et réduit les frais de transaction pour tous les signataires concernés.
Lorsque MuSig a été lancé en 2018, son principal défaut par rapport à CHECKMULTISIG était l'expérience utilisateur, en particulier le besoin de trois cycles de communication interactive entre les signataires. Avec l'arrivée de MuSig2 (BIP 327) en 2020, le successeur de MuSig 2018 (également appelé MuSig1), nous avons vu des progrès significatifs au niveau de la signature non interactive, nous apportant une expérience utilisateur beaucoup plus intéressante.
Comment cela fonctionne-t-il ?
Reprenant les fonctionnalités de son prédécesseur, MuSig2 réduit les cycles de communication requis de trois à deux. La configuration du portefeuille pour MuSig2 commence par la collecte de toutes les clés publiques étendues (xpubs) des participants et la construction de descripteurs par chacun des portefeuilles, ce qui est conforme aux pratiques multisig existantes.
La phase de signature de MuSig2 comprend ensuite :
- Message du premier tour : Lors de la configuration du portefeuille, des nonces sont générés, ajoutés aux transactions Bitcoin partiellement signées (PSBT) et partagés entre les autres signataires.
- Message du deuxième tour : Les nonces reçus sont utilisés pour créer une signature partielle et sont renvoyés à chacun des autres signataires.
Au lieu de demander à chaque signataire de communiquer directement son nonce et sa signature partielle à tous les autres signataires, il est possible d'utiliser un coordinateur tiers pour simplifier le processus.
Dans le processus de signature, le nonce de chaque signataire est composé de deux points de courbe elliptique. Ces points sont transmis aux autres signataires par l'intermédiaire des transactions bitcoin partiellement signées (PSBT). Ces nonces doivent être manipulés avec soin pour garantir l'exactitude et l'intégrité du processus, mais un stockage sécurisé n'est pas nécessaire puisqu'il ne s'agit pas d'informations confidentielles. Si toutes les signatures partielles des individus sont valides, les signatures Schnorr produites sont aussi valides.
Projets de BIP
Le mois dernier, nous avons présenté deux projets de BIP, les PSBT MuSig2 et les descripteurs MuSig2, qui constituent une étape préalable à l'adoption de MuSig2 et à l'intégration dans les portefeuilles. Le premier BIP ajoute des champs pour les nonces, les clés publiques et les signatures partielles dans les PSBT, et le second BIP fournit une méthode pour décrire les sorties de transaction qui sont contrôlées par un portefeuille MuSig2. Ensemble, ces BIP et spécifications sont tout ce dont nous avons besoin pour l'intégration des portefeuilles MuSig2 ! De nombreux développeurs de portefeuilles et de solutions de conservation collaborative demandent depuis longtemps cette standardisation du protocole MuSig2.
Maintenant que les BIP formalisés sont en place, c'est à la communauté de les examiner, de donner son avis et de contribuer à la sensibilisation. Chez Blockstream, nous sommes impatients de participer aux discussions publiques et de laisser se dérouler le processus formel d'examen des BIP.
Cet article a été publié à l'origine par Bitcoin Magazine ici.