Pour un virement bancaire, on s’appuie sur un numéro de compte, un mot de passe et les vérifications 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. La comprendre, c’est aussi comprendre pourquoi la clé privée est si importante.
Cryptomonnaie concernée : $BTC cours à 68 208,01 (-4,26 % sur 24 h).
【Une paire de clés】
La signature numérique repose sur 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 à l’aide d’opérations sur une courbe elliptique. Bitcoin et Ethereum utilisent tous deux la courbe secp256k1.
Cette opération est à sens unique : il est facile de calculer la clé publique à partir de la clé privée, 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】
Lorsqu’une transaction est envoyée, le portefeuille signe son contenu avec la clé privée, puis 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 vient bien de la personne qui détient la clé privée et son contenu n’a pas été modifié après la signature. Il suffit de changer un seul octet du montant ou de l’adresse du destinataire pour que la signature d’origine ne soit plus valide.
À noter : la signature ne chiffre pas le contenu de la transaction. Sur la blockchain, le montant et l’adresse des transactions restent visibles par tous. La signature sert à vérifier « qui a envoyé la transaction et si elle a été modifiée », et non à empêcher les autres de la voir.
【Empêcher qu’une transaction soit utilisée deux fois】
Chaque transaction Ethereum comporte un nonce qui augmente à chaque fois ; un même nonce ne peut être inclus qu’une seule fois dans un bloc. La transaction contient également un identifiant de chaîne (EIP-155), ce qui empêche de la rejouer sur une autre chaîne après sa signature. Bitcoin s’appuie quant à lui sur la règle selon laquelle chaque sortie non dépensée ne peut être dépensée qu’une seule fois, afin d’éviter qu’une même somme soit dépensée plusieurs fois.
【La signature ne sert pas qu’aux transferts】
Une demande de signature qui apparaît dans 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. Une fois signés, certains messages hors chaîne ont le même effet qu’une autorisation directe : l’autre partie 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.
【Pour conclure】
Sur la blockchain, une signature est comme votre « signature manuscrite », et la clé privée est le seul stylo capable de l’écrire. Si vous perdez ce stylo ou si quelqu’un vous le vole, aucune institution ne pourra annuler la signature. N’investissez que ce que vous pouvez vous permettre et gardez toujours une porte de sortie.
Qu’en pensez-vous ? N’hésitez pas à en discuter dans les commentaires.