Bitcoin et la menace quantique
L’ordinateur quantique est une réalité. Les bitcoins de Satoshi toujours liés à des adresses non protégées par SHA-256 tomberont-ils bientôt dans la poche d’IBM ou de Google ?
Cryptographies symétrique et asymétrique
Le protocole Bitcoin fonctionne avec des cryptographies symétrique et asymétrique. Dans le second cas, on parle aussi de cryptographie « à clé publique ». Elle est au cœur de la mécanique des transactions.
Une paire de clés privée/publique est en essence une relation mathématique. La cryptographie asymétrique repose sur une fonction mathématique « à sens unique ». En clair, la clé publique peut être facilement dérivée de la clé privée, mais pas l’inverse. Il est immensément difficile de découvrir une clé privée à partir d’une clé publique.
Mais peut-être plus pour longtemps en raison des ordinateurs quantiques. Ces derniers pourraient briser la cryptographie asymétrique la plus courante grâce à l’algorithme quantique du mathématicien Peter Shor.
Le Bitcoin est donc concerné puisqu’il utilise de la cryptographie asymétrique (secp256k1 Elliptic Curve Cryptography) pour la création des paires de clés privée/publique. Avant d’aller plus loin, résumons le fonctionnement des transactions bitcoin.
Plutôt que d’avoir des comptes tenus par des banques, les bitcoiners construisent leurs propres comptes en générant des adresses publiques.
Ce sont les wallets qui s’en chargent en sélectionnant aléatoirement un chiffre de 256 bits (la seed) à partir duquel on dérive des clés privées et des clés publiques.
Réaliser une transaction en bitcoin signifie « déplacer » des bitcoins d’une clé publique à une autre. Pour être précis, derrière chaque transaction se cache la création d’un « UTXO ».
L’UTXO est un « script » relié à une clé publique et une quantité de BTC (un chiffre). Seule la clé privée correspondante à la clé publique peut « déverrouiller » (signer) le script afin de lier les BTC à une nouvelle clé publique.
Voilà comment fonctionne une transaction bitcoin. Un (ou plusieurs) UTXO disparaissent pour former un (ou plusieurs) nouveaux UTXO attachés à de nouvelles clés publiques.
En résumé, votre wallet ne contient pas de bitcoins à proprement parler. Il garde simplement des clés privées qui servent à signer la transaction (attribuer des BTC à de nouvelles clés publiques).
Une fois la transaction ajoutée dans un « bloc » par un mineur, tous les nœuds mettent à jour la liste d’UTXO. Il en existe environ 104 millions actuellement.
Script, clé privée/publique, adresse
Plusieurs types de scripts existent. Le premier utilisait la méthode Pay-to-Public-Key (P2PK). À cette époque, on ne parlait pas d’adresse, mais de clé publique.
Exemple : 03673afdb0fe6748271967f……….84df7ba0b8d578a4c702b6bf11d5
Est apparu par la suite Pay-to-Public-Key-Hash (P2PKH). Cette méthode introduit l’utilisation de hash au lieu de la clé publique. Le hash s’obtient en passant la clé publique à la moulinette des fonctions de hachage SHA-256 et RIPEMD-160.
Hacher la clé publique avec SHA-256 permet de l’offusquer, ce qui introduit une résistance aux ordinateurs quantiques. En effet, SHA-2 se base sur de la cryptographie symétrique qui résiste mieux à l’ordinateur quantique que l’asymétrique. Il suffit d’utiliser des clés plus longues.
Par ailleurs, les clés publiques étant très longues, elles alourdissent inutilement les UTXO gardés en mémoire par les nœuds. Les clés publiques hachées par SHA-256 et RIPEMD-160 sont plus petites. Il en découle un besoin d’espace disque moindre pour faire tourner un nœud. Cela renforce la décentralisation.
Les adresses P2PKH sont encodées en base58 et commencent par le chiffre 1. Elles se trouvent dans environ 20 % des UTXO.
Exemple : 12higDJCCNXSA95xZMWUdPvXNmkAdbhWv
Il y a aussi la méthode Pay-to-Witness-Public-Key-Hash (P2WPKH) introduite lors du soft fork SegWit de 2017. Il s’agit de la variante SegWit de P2PKH qui permet d’économiser sur les frais de transaction.
Les adresses SegWit sont très différentes des anciens types d’adresses. Elles utilisent l’encodage Bech32 au lieu de Base58. En particulier, il n’y a pas de lettres majuscules dans Bech32. Ce type d’adresse commence par bc1q, se compose de 42 caractères et est le plus utilisé (40 % des UTXO).
Exemple : bc1q34aq5drpuwy3wgl9lhup9892qp6svr8ldzyy7c
Il existe d’autres types d’adresses, et notamment la plus récente : Pay-to-Taproot (P2TR). Celle-ci utilise un algorithme de signature appelé Schnorr qui diffère du format ECDSA (Elliptic Curve Digital Signature Algorithm) utilisé jusqu’à présent.
Les signatures Schnorr présentent plusieurs avantages pour les transactions « multisig ». Frais moindres et gain de confidentialité.
Tout cela pour dire que la cryptographie asymétrique basée sur les courbes elliptiques peut être cassée par les ordinateurs quantiques. Les UTXO comprenant des clés publiques plutôt que des adresses sont donc vulnérables.
Combien de bitcoins pourraient être volés ?
Un grand nombre de bitcoins minés par Satoshi Nakamoto sont forcément encore liés à des clés publiques (P2PK). Un ordinateur quantique capable d’exécuter l’algorithme de Shor pourrait dériver les clés privées de tous ces UTXO.
A contrario, les UTXO utilisant la méthode Pay-to-Public-Key-Hash (P2PKH) sont protégés par SHA-256. La clé publique ne se révèle qu’au moment de la transaction.
NÉANMOINS, une fois la clé publique révélée, il ne faut plus la réutiliser pour recevoir des bitcoins ! Non seulement pour renforcer votre anonymat, mais aussi à cause de la menace quantique.
À savoir combien de bitcoins sont vulnérables exactement, il suffit de compter les UTXO dont les scripts fonctionnent avec la méthode Pay-to-Public-Key (P2PK) ainsi que toutes les adresses Pay-to-Public-Key-Hash (P2PKH) réutilisées.
Voici la distribution des bitcoins dans les différents types d’adresses au fil du temps :
Les adresses P2PK ont dominé au cours de la première année. Puis, à partir de 2010, le P2PKH s’est rapidement imposé.
Nous observons aussi que le nombre de bitcoins liés à des adresses P2PKH réutilisés diminue lentement (~2,5 millions de bitcoins). Cette tendance suggère que de plus en plus de personnes adoptent la bonne pratique de générer une nouvelle adresse (une nouvelle paire de clés privée/publique) pour chaque transaction.
Néanmoins, plus de 4 millions de BTC (environ 20 % de tous les Bitcoins) restent vulnérables à une attaque quantique.
Soit un pactole de 100 milliards de dollars au cours actuel. Telle est la récompense potentielle pour ceux qui arriveront à faire tourner l’algorithme de Shor sur un ordinateur quantique assez grand.
[Mais vu que les BTC seront déplacés vers des adresses solides d’ici là, seuls les BTC de Satoshi seront récupérés.]
Les mathématiciens estiment qu’il faudrait 317 000 000 qubits pour casser en une heure la cryptographie asymétrique utilisant les courbes elliptiques (secp256k1) des clés Bitcoin. Soit 35 600 qubits pour y parvenir en un an.
Ce n’est pas clairement pas pour demain puisque le plus grand ordinateur quantique d’IBM ne compte que 433 qubits. Mais dans un futur plus ou moins proche, IBM pourrait bien devenir le plus grand hodleur de bitcoin…
Maximisez votre expérience Cointribune avec notre programme 'Read to Earn' ! Pour chaque article que vous lisez, gagnez des points et accédez à des récompenses exclusives. Inscrivez-vous dès maintenant et commencez à cumuler des avantages.
Reporting on Bitcoin, "the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy".
Les propos et opinions exprimés dans cet article n'engagent que leur auteur, et ne doivent pas être considérés comme des conseils en investissement. Effectuez vos propres recherches avant toute décision d'investissement.