Pour effectuer un virement bancaire, on s’appuie sur un identifiant, un mot de passe et les contrôles de la banque. Sur une blockchain, aucune institution ne vérifie votre identité : le réseau ne reconnaît qu’une seule chose, la signature numérique. Comprendre son fonctionnement, c’est aussi comprendre pourquoi la clé privée est si importante.

Lors d’un transfert de $BTC , le portefeuille signe la transaction avec la clé privée, et les nœuds du réseau vérifient cette signature à l’aide de la clé publique. Actuellement : 75 810 (-0,17 % sur 24 h).

— Une paire de clés —

Une signature numérique est créée à l’aide d’une paire de clés : la clé privée sert à générer la signature, et la clé publique à la vérifier. La clé privée est un grand nombre généré aléatoirement. La clé publique est calculée à partir de la clé privée au moyen d’opérations sur une courbe elliptique. Bitcoin et Ethereum utilisent tous deux la courbe secp256k1.

Cette opération est à sens unique : calculer la clé publique à partir de la clé privée est facile, mais retrouver la clé privée à partir de la clé publique est impossible en pratique. La clé publique et l’adresse qui en est dérivée peuvent donc être rendues publiques, tandis que la clé privée doit rester sous votre contrôle.

— Ce que prouve une signature —

Lorsque vous envoyez une transaction, votre portefeuille en signe le contenu avec votre clé privée, et les nœuds du réseau vérifient la signature à l’aide de la clé publique. Si la vérification réussit, cela prouve deux choses à la fois : la transaction provient bien de la personne qui détient la clé privée, et son contenu n’a pas été modifié après la signature. Si le montant ou l’adresse du destinataire est modifié, ne serait-ce que d’un octet, la signature d’origine ne sera plus valide.

Attention : la signature ne chiffre pas le contenu de la transaction. Le montant et l’adresse des transactions sur la blockchain restent visibles par tous. La signature permet de vérifier « qui l’a envoyée et si elle a été modifiée », pas de déterminer « si les autres peuvent la voir ».

— Empêcher qu’une transaction soit utilisée deux fois —

Chaque transaction Ethereum comporte un nonce qui augmente progressivement. Un même nonce ne peut être inclus dans un bloc qu’une seule fois. Les transactions incluent également un identifiant de chaîne (EIP-155), ce qui empêche de rejouer une transaction signée sur une autre chaîne. Bitcoin, lui, s’appuie sur la règle selon laquelle chaque sortie non dépensée ne peut être utilisée qu’une seule fois, afin d’empêcher que les mêmes bitcoins soient dépensés à plusieurs reprises.

— Les signatures ne servent pas qu’aux transferts —

Une demande de signature affichée par votre portefeuille ne concerne pas forcément un transfert. Il peut aussi s’agir d’une autorisation de jetons ou d’un message signé hors chaîne. Certaines signatures hors chaîne, une fois signées, ont le même effet qu’une autorisation directe : leur destinataire peut s’en servir pour transférer vos jetons.

Avant de signer, vérifiez donc le type d’opération, l’adresse concernée et le montant. Si vous ne comprenez pas, ne signez pas. Toute personne qui vous demande votre clé privée ou votre phrase de récupération pour « vérifier une signature » est un escroc.

— En résumé —

Sur la blockchain, une signature est comme votre « signature manuscrite », et la clé privée est le seul stylo capable de la tracer. Si vous perdez ce stylo ou si quelqu’un vous le prend, aucune institution ne peut annuler la signature. Investissez selon vos moyens et gardez une marge de sécurité.

Si certains points ne sont pas clairs, posez vos questions dans les commentaires.

Soyez conscient des risques et faites preuve de discernement.