Certains portefeuilles Bitcoin vous proposent par défaut de générer une phrase de 24 mots afin de pouvoir récupérer votre portefeuille en cas de problème, alors que d'autres proposent une phrase de 12 mots seulement. À première vue, il semble que 24 mots offriraient une sécurité plus élevée, du fait de la difficulté supplémentaire de deviner une séquence correcte de 24 mots par rapport à une séquence de 12 mots. Mais en réalité, il s'avère beaucoup plus logique d’utiliser une phrase de 12 mots pour sécuriser vos bitcoins. Je vous explique pourquoi dans cet article.
Qu’est-ce qu’une phrase de récupération (seed phrase) ?
Sur le système Bitcoin, les BTC sont représentés sous forme d'UTXO (Unspent Transaction Outputs), qui sont essentiellement des morceaux de bitcoins plus ou moins grands. Ces UTXO sont sécurisés par un script qui impose certaines conditions pour les dépenser, nécessitant généralement que l'utilisateur prouve qu'il en est le propriétaire en fournissant une signature avec une clé privée. Pour sécuriser des bitcoins, il suffit donc d’utiliser une clé privée avec une clé publique qui lui correspond.
Cependant, pour des raisons de confidentialité, il est vivement recommandé d'utiliser une nouvelle paire de clés neuve pour chaque transaction Bitcoin. Comme ces paires de clés sont l'unique moyen d'accéder aux bitcoins, il faut absolument les sauvegarder. Or, si l’on utilise des clés indépendantes, les sauvegarder individuellement serait extrêmement compliqué.
C'est pourquoi on utilise aujourd’hui des portefeuilles dits « déterministes et hiérarchiques » (HD). Leur principe est simple : au lieu d’utiliser de multiples paires de clés indépendantes, un utilisateur peut générer une quasi-infinité de clés à partir d'une seule information nommée la phrase de récupération (ou phrase mnémonique). La connaissance de cette phrase seule permet ainsi de retrouver l'accès à l'ensemble du portefeuille de clés, et donc à l’ensemble des bitcoins associés.
Par facilité, on dit parfois que cette phrase est « une clé privée », mais c'est un raccourci fallacieux. La phrase de récupération est plutôt une information de sauvegarde qui, après une série de calculs, permet de récupérer toutes les clés privées du portefeuille.
Mais alors, à quoi ressemble une clé privée ?
Quelle est la sécurité d’une clé privée Bitcoin ?
Une clé privée Bitcoin est simplement un nombre pseudo-aléatoire, pouvant se situer entre 0 et quasiment 2^256. Le nombre de possibilités est si grand qu'il est presque inimaginable pour l'esprit humain. C'est précisément sur ce principe que repose la sécurité des bitcoins : la probabilité de trouver une clé privée spécifique est si faible qu'elle est actuellement considérée comme nulle.
Dans un format brut en hexadécimal, une clé privée Bitcoin pourrait ressembler à ça : f316bfa22387eb15369d69bbc023bd3edcd88c98dcf557ec853757daff2440de
Ce nombre aléatoire est ensuite utilisé pour générer la clé publique correspondante, qui servira à sécuriser des bitcoins. Pour cela, on utilise un algorithme permettant de calculer facilement une clé publique à partir d'une clé privée, tout en rendant extrêmement difficile le calcul inverse. Les clés publiques étant visibles sur la blockchain et accessibles à tous, elles ne doivent pas permettre de remonter à la clé privée associée.
La sécurité d'une paire de clés réside ainsi dans la difficulté de retrouver la clé privée à partir de la clé publique correspondante. Bitcoin utilise des algorithmes établis sur les courbes elliptiques, où cette difficulté repose sur le problème mathématique du logarithme discret sur les courbes elliptiques (ECDLP). À l'heure actuelle, le meilleur algorithme connu pour résoudre ce problème est l'algorithme rho de Pollard, qui réduit le nombre d'opérations nécessaires pour casser une clé à la racine carrée de sa taille.
Pour des clés de 256 bits comme celles utilisées sur Bitcoin, l'algorithme rho de Pollard permet de casser une clé privée avec 2^128 opérations. On dit donc qu'une clé privée Bitcoin offre 128 bits de sécurité.
Quelle longueur choisir pour sa phrase de récupération ?
Lorsqu'un portefeuille génère une phrase de récupération, celle-ci est représentée de manière facilement lisible par un humain, généralement sous la forme de 12 ou 24 mots. Toutefois, cette phrase est en réalité basée sur un nombre binaire, qui inclut également une somme de contrôle. Pour en savoir plus sur la construction d'une phrase de récupération, je vous renvoie vers un article détaillé que nous avons déjà publié : Qu'est-ce que la phrase de récupération d'un portefeuille Bitcoin ?
Les phrases de 12 mots représentent donc des nombres aléatoires de 128 bits, tandis que les phrases de 24 mots représentent des nombres de 256 bits. En termes de sécurité, une phrase de 12 mots offre 128 bits de sécurité, et une phrase de 24 mots, 256 bits de sécurité.
Cependant, comme nous l'avons évoqué précédemment, les clés privées dérivées de votre phrase de récupération n'offrent que 128 bits de sécurité, soit autant qu'une phrase de 12 mots. Il est donc excessif d'opter pour une phrase de 24 mots.
En effet, si les clés privées ont moins de bits de sécurité que votre phrase de récupération, alors la sécurité globale de votre portefeuille est limitée au niveau de sécurité de ces clés. Pour illustrer cela, imaginons que votre portefeuille Bitcoin soit une maison avec deux portes d'entrée. Si l'une de ces portes est blindée et l'autre est une porte en bois fragile, la sécurité globale de votre maison est réduite au niveau de la porte la moins solide. Ainsi, la porte blindée devient inutile, car un cambrioleur privilégiera la porte la plus fragile. De la même manière, une phrase de 24 mots dans un portefeuille Bitcoin est excessivement sécurisée.
De plus, il est important de comprendre qu'un niveau de sécurité de 128 bits est largement suffisant de nos jours, même pour une application aussi sensible que Bitcoin. La probabilité de deviner une phrase spécifique de 12 mots est statistiquement négligeable, tout comme celle de trouver une clé privée à partir d'une clé publique.
Toutefois, n'oubliez pas que la sécurité de vos bitcoins implique deux risques distincts : le risque de vol et le risque de perte. En utilisant une phrase de récupération de 24 mots, vous n'atténuez pas le risque de vol, mais vous augmentez le risque de perte de votre portefeuille. Tant que la taille des clés privées sur Bitcoin reste inchangée, il est donc plus judicieux d'opter pour une phrase de 12 mots.
L'unique argument valable en faveur de l'utilisation d'une phrase de 24 mots ne concerne pas sa sécurité, mais plutôt que sa somme de contrôle est plus robuste que dans une phrase de 12 mots. Cependant, cette somme de contrôle est quasiment inutile pour une phrase de récupération Bitcoin. Selon moi, cela ne constitue donc pas une raison suffisante pour privilégier les 24 mots.
➤ Découvrez 7 astuces essentielles pour améliorer la sécurité de votre portefeuille.
Conclusion
Les clés privées sur Bitcoin n'offrant qu'une sécurité de 128 bits, équivalente à celle d'une phrase de récupération de 12 mots, opter pour une phrase de 24 mots n'apporte pas de bénéfice supplémentaire en termes de sécurité. En revanche, une phrase de 12 mots, grâce à sa petite taille, est plus facile à sauvegarder et à stocker, ce qui diminue les risques de perte. En considérant ces aspects de manière rationnelle, choisir une phrase de 12 mots s'avère moins risqué que d'opter pour une phrase de 24 mots.
Cependant, si vous possédez déjà un portefeuille Bitcoin sécurisé par une phrase de 24 mots, je ne vous recommande pas de changer de portefeuille pour cette seule raison. Bien que l'utilisation de 24 mots soit excessive, elle ne constitue pas un risque pour la sécurité de votre portefeuille. La seule contrainte d'une phrase plus longue réside dans sa gestion légèrement plus complexe.