(4/4) La multisignature, un outil indispensable pour la sécurité de vos bitcoins
Acheter Bitcoin (BTC)
Partenaire Bitpanda
Ce que vous devriez avoir
Si vous avez suivi ce guide jusque là, vous avez désormais :
- un nœud Bitcoin qui valide toutes les transactions sur le réseau
- Electrum Personal Server, qui indexe vos propres transactions et les suit grâce à votre nœud
- Electrum, qui vous fournit une interface claire et facile à utiliser
- Un Ledger, qui sécurise vos clés privées contre la plupart des vols
En l'état, vous avez déjà une installation plutôt satisfaisante en termes de :
- sécurité : vos clés privées ne sont pas exposées au piratage informatique. Votre Ledger peut vous être physiquement dérobé, mais si vous avez pris soin de le protéger avec un pin et de mettre votre seed en sécurité le voleur a peu de chance de succès
- confidentialité : vous ne laissez pas fuiter d'informations sur vos adresses, vos balances et vos transactions, car vous possédez toutes ces informations sur votre propre nœud. Attention néanmoins un attaquant peut toujours apprendre beaucoup de choses sur vous et vos possessions par d'autres moyens, mais disons que vous avez une bonne base
- autonomie : vous décidez vous-mêmes de la version du consensus que vous souhaitez voir appliquer. Vous êtes véritablement acteur du réseau, personne ne peut vous forcer à accepter quoi que ce soit contre votre gré
Une installation encore perfectible
Mais cette installation a un inconvénient, c'est que la clé (sur votre Ledger et votre seed) est en fait un point unique de défaillance :
- Si le voleur réussit à s'emparer du back-up de votre seed, il réussira probablement à voler vos bitcoins
- Si le voleur s'empare de votre Ledger et de votre PIN (on peut imaginer qu'il vous tape dessus pour l'avoir), vos bitcoins sont perdus
- Si vous perdez votre Ledger ET votre seed, vos bitcoins sont perdus
Il existe un moyen de limiter ces problèmes : la multisignature.
Comme son nom l'indique, il s'agit d'un moyen de cumuler plusieurs signatures pour autoriser une transaction. Tout le monde a déjà vu dans un film d'action américain de l'époque de la Guerre Froide ces scènes où il faut tourner deux clés simultanément pour autoriser ou annuler un tir d'arme nucléaire ? Et bien les multisig Bitcoin, c'est un peu la même chose.
En général, tous les signataires ne sont pas requis pour autoriser une transaction, c'est pourquoi on définit souvent une multisignature par le nombre total de signataires et le nombre requis pour produire une transaction valide, par exemple 1-of-2, 2-of-3 ou encore 3-of-5, pour ne citer que les cas les plus fréquents. C'est un outil très souple et puissant qui permet la plupart des innovations actuelles sur Bitcoin, comme Lightning ou les sidechains, et dont on commence à peine à exploiter les possibilités.
Mais je ne partage mes bitcoins avec personne, pourquoi une multisignature ?
Vous allez sûrement me dire que vous êtes seul propriétaire des bitcoins, et que par conséquent il n'y a pas d'intérêt à utiliser plusieurs clés. Détrompez-vous ! La multisig est très utile même quand on est seul pour se protéger des risques de vols et surtout de pertes de clés.
En effet aucune clé n'est critique dans un multisig fait intelligemment, vous pouvez avoir l'impression d'augmenter votre surface d'attaque mais en réalité c'est exactement le contraire, vous supprimez le risque qu'une seule erreur ne soit fatale.
Certains services qui proposent la sécurisation de bitcoins reposent sur une multisignature avec des clés partagées entre le client, le service et éventuellement d'autres acteurs.
Proposition de setup 2-de-3
Dans ce tutoriel, je vous propose donc de mettre en place une multisig 2-of-3 :
- Une clé "chaude" qui reste sur le disque de dur de votre ordinateur
- Une clé "froide" sur votre Ledger
- Une clé "back-up" sous le forme d'une seed conservée *uniquement sur papier*
Le principe est le suivant : sur ces 3 clés, seules 2 sont nécessaires pour signer une transaction et dépenser vos bitcoins. La clé chaude et le Ledger sont utilisées pour signer vos transactions courantes, et la clé "back-up" peut être importée dans Electrum en cas de perte d'une des deux autres clés et permettre de bouger les bitcoins vers une autre adresse.
Notez bien qu'il ne s'agit que d'une proposition, selon votre situation personnelle d'autres schémas pourraient être plus adaptés, notamment si vous voulez vraiment partager la propriété avec d'autres personnes. Mais le 2-of-3 reste le type de multisignature le plus courant et est utile dans beaucoup de situations, c'est pourquoi je l'ai choisi pour ce tuto.
Objectifs de notre multisig
Ce système vous protège dans les cas suivants :
- Si votre ordinateur est dérobé physiquement ou piraté, il est impossible de voler vos bitcoins avec la seule clé chaude.
- Si votre Ledger est volé, le voleur ne pourra de même rien faire avec, même si il arrivait à casser votre PIN
- Si un voleur s'empare de votre back-up, il ne peut rien en faire non plus
Il est essentiel de conserver une seed sur papier de votre clé chaude et de votre Ledger, toutefois veillez bien à ne pas conserver tous vos back-up papier au même endroit, car un voleur qui aurait accès à vos back-up papier pourrait alors tout prendre.
Désormais, la perte ou le vol de n'importe laquelle de ces clés ne signifie plus la perte de vos économies, mais gardez bien en tête que si vous perdez ou vous faites voler 2 clés sur 3 vous perdrez quand même vos bitcoins !
Essayez de réfléchir à la conservation de vos seeds, faites en sortes que personne ne puisse avoir 2 clés ou 2 back-up sur 3 en même temps.
La mise en place d'un multisig
Alors, sans plus attendre, voyons comment faire !
- Pré-requis et matériel
- Génération d'un wallet multisig
- Transaction de test
- Que faire en cas d'urgence ?
-
Pré-requis et matériel
- Votre ordinateur habituel, avec Bitcoin Core, EPS et Electrum installé et configuré, appelons-le "ordinateur 1"
- (optionnel) un deuxième ordinateur, de préférence avec un système d'exploitation tout neuf, sur lequel vous aurez installé Electrum, "ordinateur 2"
- Un Ledger déjà initialisé avec l'app Bitcoin installé (cf le tuto Ledger)
- Du papier (plusieurs feuilles), un crayon
Pourquoi un 2e ordinateur ? Dans le cas où votre ordinateur principal serait déjà compromis et qu'un pirate pourrait retrouver les clés qu'il contient, générer 2 de vos 3 clés sur cette machine pourrait lui permettre de voler vos bitcoins. Utiliser 2 ordinateurs différents pour générer 2 clés permet de diminuer beaucoup ce risque.
-
Création du wallet
- Génération de la clé "back-up"
- Ouvrez Electrum sur ordinateur 2 (ou ordinateur 1 si vous n'avez pas de 2e machine à disposition)
- Fichier > Nouveau/restaurer, et créez un nouveau wallet (peu importe le nom)
- Choisissez "Portefeuille multi-signatures" à la place de "Portefeuille standard"
- Génération de la clé "back-up"
-
-
- On vous demande alors le nombre de signataires total et celui requis pour valider une transaction. Déplacez le premier curseur sur 3 et le nombre de signatures requises sur 2.
-
-
-
- Comme lors de la création d'un wallet standard, vous devez ensuite choisir entre le format "Legacy" et "Segwit".
-
À moins d'avoir une bonne raison de rester sur des adresses "Legacy", je vous conseille de créer votre multisig avec un format d'adresse segwit natif. Peu importe votre choix, il faut faire bien attention à ce que vos 3 clés soit du même format, sinon vous ne pourrez pas créer votre multisig !
-
-
- Notez ensuite votre seed sur une feuille de papier, et saisissez votre seed pour confirmer qu'elle est bien notée comme expliqué dans le tuto Electrum
-
Je vous conseille de noter un nom pour vous aider à identifier cette seed (par exemple, "multisig principale") ainsi que la date du jour
-
-
- Electrum vous donne ensuite une master pubkey, copiez/collez là dans un document texte vous allez en avoir besoin rapidement
-
(Si vous êtes sur ordinateur 2) Trouvez un moyen d'envoyer la master pubkey sur l'ordinateur 1. Si possible évitez les mails ou des canaux de communication non sécurisée, la master pubkey est certes une information moins sensible que la clé privée mais il reste préférable de ne pas la divulguer. Si vous avez un gestionnaire de mot de passe (vous devriez), cela peut-être un bon moyen car ils possèdent généralement un coffre-fort numérique
-
-
- Voilà, vous pouvez maintenant fermer cette fenêtre sans aller jusqu'au bout du processus !
-
-
- Génération de la clé chaude et initialisation du wallet
- Tout d'abord, assurez-vous de bien avoir la master pubkey de la clé de back-up sous la main, surtout si vous avez utilisé un 2e ordinateur pour la générer
- Ouvrez Electrum sur l'ordinateur 1
- Fichier > Nouveau/Restaurer, et créez un nouveau wallet
- Choisissez "Portefeuille multi-signature" à la place de "Portefeuille standard"
- Comme à l'étape précédente, on vous demande alors le nombre de signataires total et celui requis pour valider une transaction. Déplacez le premier curseur sur 3 et le nombre de signatures requises sur 2.
- Créez une nouvelle seed et notez-la sur une feuille de papier, puis confirmez-la comme expliqué dans le tuto Electrum
- Electrum vous donne ensuite une clé publique principale ("master pubkey"), faites simplement "suivant"
- On vous demande maintenant d'ajouter vos cosignataires, avec plusieurs options. Sélectionnez d'abord "Cosigner avec un périphérique matériel" (n'oubliez pas de brancher et de déverrouiller votre Ledger !), puis quand on vous demande le 3e co-signataire "Entrer une clé de co-signataire", et copiez/collez la master pubkey du back-up.
- Génération de la clé chaude et initialisation du wallet
-
-
- Voilà, vous avez désormais un portefeuille multisig sur Electrum !
- Gardez les 3 master pubkeys (vous les trouverez dans "Portefeuille > Information"), vous en aurez besoin si vous devez restaurer votre wallet un jour.
-
Vous pouvez conserver les master pubkeys, ou alors les retrouver à partir des seeds.
Vos master pubkeys sont une information relativement moins critique que vos clés privées car si un pirate venait à les trouver, ça ne lui permettrait pas de voler vos bitcoins. En revanche, grâce à elle il connaîtra toutes les adresses de votre portefeuille, donc cela reste un gros problème pour votre confidentialité !
-
- Ajout du wallet multisig dans EPS
-
-
- Si EPS est activé, interrompez-le
- Ouvrez le fichier de configuration avec un éditeur de texte (reportez-vous au guide Electrum Personal Server en cas de doute)
- Trouvez la section "multisig wallet", et ajoutez votre propre wallet en respectant bien les règles suivantes :
[nom de votre wallet] [espace] = [espace] [nombre de signatures requises] [espace] [master pubkey 1] [espace] [master pubkey 2] [espace] ... [master pubkey N]
- Sauvegardez, fermez l'éditeur de texte, et relancez EPS comme indiqué dans le tutoriel. L'import des nouvelles adresses prendra quelques minutes, et il faudra relancer EPS avec la même commande pour l'utiliser
-
Un rescan est inutile car vous n'avez encore effectué aucune transaction avec ce wallet
-
Transaction de test
- Avant d'envoyer toute votre fortune sur un portefeuille, il est toujours souhaitable de faire une transaction de test avec un petit montant, juste pour s'assurer que tout marche comme prévu
- Comme décrit dans le tuto Electrum, récupérez une adresse dans l'onglet "recevoir" de votre wallet Multisig et collez-la dans votre wallet habituel. N'envoyez qu'un petit montant
- La transaction devrait instantanément apparaître dans votre wallet multisig. Une fois confirmé, renvoyez-la à votre wallet d'origine (ou dans n'importe quel autre wallet sous votre contrôle).
- Pour signer une transaction multisig vous avez besoin de deux clés, en général celle qui se trouve dans Electrum et celle qui est sur le Ledger. Assurez-vous donc que le Ledger est branché et déverrouillé sinon Electrum n'arrivera pas à signer la transaction
- Tout s'est passé comme prévu ? C'est parfait, vous avez désormais un superbe wallet multisig pour une sécurité maximale !
-
Que faire en cas d'urgence ?
- Mon ordinateur a été volé/piraté !
- Vous aurez besoin :
- d'un autre ordinateur avec Electrum installé
- de votre seed back-up
- de la master pubkey de la clé chaude qui a été dérobée
- de votre Ledger
- Dans Electrum, lancez la restauration de wallet avec Fichier > Nouveau/Restaurer
- Choisissez "Portefeuille multi-signature", puis 2 signatures sur 3.
- Choisissez "je possède déjà une graine"
- Saisissez votre seed back-up
- Ajoutez maintenant la master pubkey de la clé chaude, puis faites "Cosigner avec un périphérique matériel" (Ledger branché/déverrouillé, comme toujours)
- Vous avez maintenant restauré votre wallet, effectuer sans attendre une transaction pour déplacer vos bitcoins vers un nouveau wallet
- Vous aurez besoin :
- J'ai perdu mon Ledger
- Vous aurez besoin :
- d'un autre ordinateur avec Electrum installé
- de votre seed back-up et de celle de la clé chaude
- de la master pubkey du Ledger qui a été dérobée
- Dans Electrum, lancez la restauration de wallet avec Fichier > Nouveau/Restaurer
- Choisissez "Portefeuille multi-signature", puis 2 signatures sur 3.
- Choisissez "je possède déjà une graine"
- Saisissez votre seed back-up
- Dans la partie "Ajouter des co-signataires", sélectionnez "Entrer la graine du co-signataire" et saisissez ensuite la seed de la clé chaude
- Ajoutez ensuite la master pubkey du Ledger comme 3e signataire
- Vous avez maintenant restauré votre wallet, effectuer sans attendre une transaction pour déplacer vos bitcoins vers un nouveau wallet
- Vous aurez besoin :
- Quelqu'un a mis la main sur mon back-up !
- Dans ce cas, il vous suffit de faire une transaction comme d'habitude avec votre clé chaude et votre Ledger vers un nouveau wallet que vous aurez créé
- L'enfer, mon ordinateur a brûlé, et le même jour on m'a volé mon Ledger !
- Pas de panique ! Si vous avez toujours vos 3 master pubkeys et au moins 2 seeds, rien est perdu !
- Vous aurez besoin :
- d'un autre ordinateur avec Electrum installé
- de votre seed back-up + au moins une deuxième seed (clé chaude ou Ledger, peu importe)
- de la master pubkey du Ledger et de la clé chaude
- Dans Electrum, lancez la restauration de wallet avec Fichier > Nouveau/Restaurer
- Choisissez "Portefeuille multi-signature", puis 2 signatures sur 3.
- Choisissez "je possède déjà une graine"
- Saisissez votre seed back-up
- À l'étape suivante, ne faites pas "Entrer la clé du co-signataire", mais "Entrer la graine du co-signataire", et saisissez une seed (celle de la clé chaud ou du Ledger, peu importe)
- Ajoutez maintenant la dernière master pubkey (attention celle de la seed que vous n'avez pas donné, par exemple si vous avez saisi la seed du Ledger à l'étape précédente, il faut donner ici la master pubkey de la clé chaude
- Vous avez maintenant restauré votre wallet, effectuer sans attendre une transaction pour déplacer vos bitcoins vers un nouveau wallet
- Mon ordinateur a été volé/piraté !
Nous arrivons à la fin de notre série d'article.
Vous les retrouverez tous ci-dessous :