Pourquoi le hachage des clés publiques ne fournit-il en fait aucune résistance quantique  ?


Bien que le hachage d’une clé publique par lui-même fournisse une résistance quantique, ce n’est vraiment que lorsqu’il est considéré par lui-même dans le vide. Malheureusement, les hachages de clés publiques n’existent pas dans le vide et il y a beaucoup d’autres choses dans Bitcoin qui doivent être prises en compte.

Premièrement, si les clés publiques ont été hachées, les fonds ne sont protégés qu’avant d’être dépensés. Dès qu’une sortie P2PKH ou P2WPKH est épuisée, la clé publique est exposée. Alors que la transaction n’est pas confirmée, un attaquant avec un ordinateur quantique assez rapide pourrait calculer la clé privée et créer une transaction conflictuelle qui envoie les fonds à lui-même au lieu du destinataire prévu.

De plus, si cet attaquant est un mineur, il pourrait le faire avec chaque transaction et simplement refuser de miner les transactions qui ne s’envoient pas les pièces à lui-même.

Pourquoi le hachage des clés publiques ne fournit-il en fait aucune résistance quantique  ?

Bien que ce soit un problème, les gens soutiennent souvent que c’est mieux que quelqu’un qui dépense purement et simplement le Bitcoin parce qu’il a la clé publique de la blockchain. Bien que cela soit vrai, il existe un très grand nombre de sorties avec des clés publiques exposées.

Plus de 5,5 millions de bitcoins sont en sortie avec des clés publiques exposées, soit parce qu’il s’agit de sorties P2PK, soit parce que les utilisateurs réutilisent des adresses et que les clés publiques sont donc exposées dans d’autres transactions. Donc, s’il existait un ordinateur quantique capable de produire la clé privée d’une clé publique dans un délai raisonnable, l’attaquant serait capable de voler tellement de Bitcoin qu’il décimerait l’économie du Bitcoin et le Bitcoin deviendrait sans valeur.

Ainsi, bien que vos sorties particulières puissent être protégées par des hachages, la valeur de ces sorties serait de 0 car des millions de Bitcoins sont volés. Tout ce que les hachages font vraiment, c’est fournir un faux sentiment de sécurité.

Ensuite, il y a des problèmes avec les outils et les logiciels de portefeuille qui exposent simplement les clés publiques autrement que dans les transactions et dans la blockchain. Aucun outil existant ne traite les clés publiques comme des informations privées ; il n’y a aucune raison qu’ils le fassent.

De nombreux portefeuilles envoient les clés publiques étendues parentes à un serveur afin que le serveur puisse surveiller les transactions et renvoyer ces données au client. Quiconque utilise un tel portefeuille, même temporairement, expose sa clé publique parente à un fournisseur de services. Ce fournisseur pourrait alors calculer les clés privées des clés publiques dont il dispose, dériver toutes les clés enfants et voler tous les Bitcoins associés à quiconque a utilisé son portefeuille.

Des problèmes supplémentaires existent avec des scripts complexes et des contrats impliquant des clés publiques. Ces scripts, tels que les multisigs, ne hachent pas les clés publiques. De plus, ces contrats existent généralement parce que toutes les parties ne se font pas nécessairement confiance ; l’un d’eux pourrait être malveillant. Dans de tels cas, un participant malveillant au contrat connaîtrait les clés publiques impliquées (du fait de la connaissance du script) et serait en mesure de voler le Bitcoin associé à ces sorties. Les hachages de clé publique existants ne protègent pas contre cela.

Donc, dans l’ensemble, il existe des tonnes de façons dont les clés publiques sont déjà exposées en dehors des transactions. Tout cela permettrait à différents types d’attaquants de voler des millions de Bitcoin, faisant ainsi passer la valeur de Bitcoin à 0, ce qui rend tout Bitcoin protégé par des hachages de clé publique sans valeur de toute façon. De plus, les utilisateurs exposent probablement leurs clés publiques de manière involontaire en raison du logiciel qu’ils utilisent. Ainsi, l’utilisation de hachages de clé publique ne sert qu’à donner un faux sentiment de sécurité, tout en augmentant la taille des transactions. En général, cela ne vaut pas la taille supplémentaire.

Enfin, il est possible de faire une transition vers la cryptographie post-quantique s’il s’avère qu’un QC existe qui peut casser ECDLP. S’il est détecté à temps mais encore trop tard pour effectuer une mise à niveau appropriée, toute utilisation d’algorithmes de signature reposant sur ECDLP (c’est-à-dire ECDSA et Schnorr) pourrait être supprimée en douceur, verrouillant ainsi toutes les pièces. Les pièces pourraient ensuite être dépensées en fournissant une preuve de connaissance zéro de certaines informations non exposées ou résistantes quantiques qui indiquent la propriété des clés privées pour la clé publique.

Par exemple, les utilisateurs peuvent fournir une preuve qu’ils disposent de la graine BIP 32 qui a été utilisée pour dériver la clé privée pour la clé publique donnée. Puisqu’il s’agit d’une preuve à connaissance nulle, la graine elle-même n’est pas exposée (notez que la graine ne fait pas partie d’une paire de clés publique-privée, il n’y a donc pas de composant public partagé). Étant donné que la plupart des portefeuilles utilisent le BIP 32, cela devrait suffire. Il peut y avoir d’autres moyens de prouver la propriété sans risquer des pièces auxquelles on n’a pas encore pensé.

Et bien sûr, tout cela suppose qu’un ordinateur quantique capable de calculer la clé privée d’une clé publique apparaisse sans que le public ait conscience que la technologie est proche d’exister. Ce qui est susceptible de se produire, c’est que la progression des ordinateurs quantiques sera observée et, à un moment donné avant qu’ils ne soient suffisamment puissants pour casser l’ECDLP, Bitcoin effectuera un soft fork dans un algorithme de signature résistant à Quantum. A terme, les signatures reposant sur l’ECDLP seront supprimées. Et tout cela se produira avant que les ordinateurs quantiques ne deviennent vraiment une menace. Donc, dans ce scénario, le hachage des clés publiques ne fournit aucune aide de toute façon.

Notez que tout ce qui précède ne se limite pas aux ordinateurs quantiques. Elle s’applique généralement à toute rupture cryptographique d’ECDSA (ou de Schnorr).