Les clés privées sont-elles transmises lors d’une transaction bitcoin?

Lorsque j’ai commencé à faire des recherches sur la technologie du bitcoin, je me suis rendu compte qu’il semblait y avoir beaucoup de confusion quant aux informations transmises lors d’une transaction bitcoin. Une question particulière qui se pose fréquemment à cet égard est la suivante: «Les clés privées sont-elles transmises lors d’une transaction bitcoin?»

Les clés privées ne sont jamais transmises lors d’une transaction bitcoin. Ce que vous transmettez lorsque vous effectuez une transaction bitcoin est une signature numérique. Une signature numérique est un nombre généré à partir de la clé privée moyennant un algorithme mathématique spécial (ECDSA). Cette signature numérique peut être vérifiée par quiconque par rapport à la clé publique correspondante, en utilisant le même algorithme mathématique. En vérifiant la signature numérique par rapport à la clé publique correspondante, un tiers est en mesure de confirmer que le transmetteur connaît la clé privée. Cependant, le vérificateur tiers n’a aucun moyen de savoir de quoi se compose la clé privée.

Pour mieux comprendre cela, commençons par explorer brièvement les étapes d’une transaction bitcoin, puis développons plus en détail ce qu’est une signature numérique et découvrons ensemble son fonctionnement. Afin de ne pas trop compliquer les choses, je vais vous fournir une explication conceptuelle qui vous donnera une compréhension de base des mécanismes impliqués.

1. Un bref aperçu du fonctionnement d’une transaction bitcoin.

1.1 LA CRÉATION ET LA SIGNATURE D’UNE TRANSACTION DE BITCOIN

La première étape est la création de la transaction bitcoin.

Vous pourriez penser à cela comme à la création d’un ensemble de données spécifique qui exprime l’intention de transférer une certaine quantité de bitcoins d’une ou plusieurs source(s) particulières de bitcoin (‘input(s)’) à une ou plusieurs destination(s) (‘outputs’). Cet ensemble de données contient toutes les informations nécessaires à l’exécution de la transaction bitcoin, telles que le nombre de bitcoins à envoyer, l’adresse de destination, etc. La transaction ne contient aucune clé privée ni aucune autre information confidentielle.

Une fois la transaction créée, elle doit être signée numériquement par le(s) propriétaire(s) (voir la section ci-dessous «Qu’est-ce qu’une signature numérique?»).

1.2 LA DIFFUSION DE LA TRANSACTION SIGNÉE AU RÉSEAU BITCOIN

L’étape suivante consiste à diffuser la transaction bitcoin signée numériquement sur le réseau bitcoin. La transaction bitcoin signée numériquement restera invisible pour le réseau bitcoin jusqu’à sa diffusion sur le réseau bitcoin (un peu comme un chèque signé reste invisible pour le système financier tant qu’il n’a pas été soumis à une institution financière pour être encaissé).

Le réseau bitcoin est le réseau global d’égal à égal (‘peer to peer’) de nœuds (‘nodes’) exécutant le protocole P2P de bitcoin (le réseau bitcoin est composé de divers types de nœuds (‘nodes’), par exemple des nœuds complets (‘full nodes’), des nœuds miniers (‘miningnodes’), etc.).

1.3 LA PROPAGATION DE LA TRANSACTION SUR LE RÉSEAU BITCOIN

Une fois que la transaction bitcoin signée numériquement est diffusée au réseau bitcoin, elle sera propagée à travers tout le réseau bitcoin.

Lorsqu’une transaction bitcoin propagée arrive sur un nœud (‘node’) faisant partie du réseau bitcoin, elle est vérifiée et, le cas échéant, validée par ce nœud (‘node’), et ensuite propagée à son tour aux autres nœuds (‘nodes’) auxquels ledit nœud (‘node’) valideur est connecté. Chacun de ces nœuds (‘nodes’) connectés envoie à son tour la transaction bitcoin signée à chacun de ses nœuds (‘nodes’) connectés. Ce processus est répété jusqu’à ce que tous les nœuds (‘nodes’) du réseau bitcoin aient reçu la transaction bitcoin en question.

Il est important de noter que chaque nœud complet (‘full node’) valide indépendamment chaque transaction réceptionnée avant de la propager davantage. Cela rend le réseau bitcoin résistant à toutes sortes d’attaques possibles, telles que les attaques par déni de services (‘denial of service’).

1.4 ENREGISTREMENT DE LA TRANSACTION DANS LA CHAINE DE BLOCS BITCOIN (LE ‘BITCOIN BLOCKCHAIN’)

Enfin, la transaction propagée à travers le réseau bitcoin sera à un moment donné reprise par un nœud minier (‘mining node’) et incluse dans un bloc de transactions.

Un bloc de transactions est un ensemble de transactions encore non-confirmées, regroupées par un nœud minier (‘mining node’)), qui, le cas échéant, sera enregistré dans la chaîne de blocs bitcoin (le ‘bitcoin blockchain’).

A cet égard, le droit d’enregistrement, dans le chef d’un nœud minier (‘mining node’), d’un bloc de transactions dans la chaîne de blocs bitcoin (le ‘bitcoin blockchain’), fait l’objet d’une compétition continue entre tous les nœuds miniers (‘mining node’) faisant partie du réseau bitcoin. Une description de ce processus de compétition est hors de portée du présent article. Pour plus d’informations à ce sujet, veuillez consulter l’article suivant: Comment la difficulté minière du bitcoin (‘bitcoin mining’) est-elle calculée?

1.5 LA DIFFUSION ET LA PROPAGATION D’UN BLOC DE TRANSACTIONS ENREGSITRÉ

Après avoir été enregistré dans la chaîne de blocs bitcoin (‘bitcoin blockchain’) par un nœud minier (‘mining node’), le bloc de transactions en question est immédiatement diffusé au réseau bitcoin et ensuite propagé à travers le réseau bitcoin entier par les autres nœuds (‘nodes’) du réseau.

Chaque nœud complet (‘full node’) qui fait partie du réseau enregistrera à son tour le bloc de transactions en question dans sa version de la chaîne de blocs bitcoin (‘bitcoin blockchain’).

Il est important à cet égard de souligner que chaque nœud complet (‘full node’) vérifie individuellement la validité des blocs de transactions qu’il réceptionne et compose donc individuellement sa propre version de la chaîne de blocs bitcoin (‘bitcoin blockchain’).

Il s’ensuit qu’un nœud complet (‘full node’) ne dépend d’aucun tiers pour la construction de sa version de la chaîne de blocs bitcoin (‘bitcoin blockchain’). Malgré cela, tous les nœuds complets (‘full nodes’) arriveront en principe toujours à une version identique de la chaîne de blocs bitcoin (‘bitcoin blockchain’), grâce au concept révolutionnaire et essentiel dit Proof Of Work, qui est ancré dans le protocol du bitcoin.

Cette propriété particulière du bitcoin est ce que Andreas M. Antonopoulos appelle ‘emergent consensus’.

Une fois qu’un certain nombre de blocs de transactions consécutives sont enregistrées dans la chaîne de blocs bitcoin (‘bitcoin blockchain’), faisant tous référence (directement ou indirectement) au bloc de transactions en question, les transactions incluses dans ledit bloc seront considérées comme irréversibles. A cet égard, il est généralement conseillé d’attendre un minimum de 6 confirmations (c.à.d. 6 blocs de transactions consécutives faisant référence, directement ou indirectement, au bloc de transactions en question), avant que le nouveau propriétaire puisse utiliser les bitcoins reçus en vertu d’une transaction.

2. Qu’est-ce qu’une signature numérique?

Une fois qu’une transaction a été créée, elle doit être signée numériquement par le ou les propriétaires avant de pouvoir être diffusée avec succès au et propagée à travers le réseau bitcoin. Sans la signature numérique de l’émetteur, les nœuds (‘nodes’) du réseau bitcoin ne pourront pas valider la transaction.

La signature numérique est essentiellement le mécanisme mathématique permettant de combiner (1) une clé privée associée à une adresse particulière avec (2) les données de la transaction (le « message numérique » pour ainsi dire).

L’émetteur de la transaction applique un algorithme mathématique (c.à.d.  l’algorithme de signature numérique à courbe elliptique ; en abrégé anglais: ‘ECDSA’) aux (1) données de la transaction (représentées par un hachage (‘hash’)), ainsi qu’à (2) la clé privée associée à l’adresse depuis laquelle la transaction est émise.

Le résultat (‘output’) généré par l’algorithme mathématique est une séquence unique de chiffres qui constitue la «signature numérique». Cette séquence exacte de chiffres ne peut être générée que par les entrées (‘inputs’) susmentionnées (c.à.d. les données de transaction représentées par un hachage et la clé privée). En effet, une modification quelconque d’une ou plusieurs des entrées (‘inputs’) résulterait dans une signature numérique totalement différente.

Les données de transaction (représentées par un hachage) et la signature numérique sont ensuite toutes deux diffusées au réseau bitcoin, mais pas la clé privée qui reste secrète.

Un parti tiers est ensuite en mesure de vérifier, sur la base de la clé publique associée à l’adresse depuis laquelle la transaction est émise (voir ci-dessous), que l’émetteur est bel et bien le propriétaire des bitcoins en cours de transfert, en vérifiant que la signature numérique de la transaction ne peut en effet avoir été produite uniquement par la clé privée en question.

3. Quel type de signature numérique est utilisé par bitcoin?

Le «Digital Signature Standard» (en abrégé: DSS) est l’algorithme de signature numérique utilisé par bitcoin pour créer des signatures numériques. Il a été développé à l’origine par la U.S. National Security Agency afin de générer une signature numérique pour l’authentification des documents électroniques.

DSS a la propriété particulière qu’une séquence aléatoire de chiffres est générée chaque fois qu’une transaction doit être signée. Cette séquence aléatoire de chiffres est incorporée à la signature numérique pour garantir une apparence différente à chaque fois.

4. Comment vérifier une signature numérique?

L’algorithme de signature numérique utilisé pour créer une signature numérique est également utilisé pour le processus de vérification.

Moyennant la clé publique associée à l’adresse depuis laquelle la transaction est émise, l’algorithme mathématique peut être utilisé pour déterminer que la signature numérique a été généré sur la base des (1) données de transaction (représentées par un hachage) et (2) de la clé privée en question, sans qu’il soit nécessaire de connaître la clé privée.

En d’autres termes, la procédure de vérification produira essentiellement une sorte de réponse binaire:  «oui» ou «non», répondant à la question: « Dois-je accepter la signature ou dois-je la rejeter? ».

L’exemple simplifié qui suit vous aidera à mieux visualiser tel concept (Commentaire: Il s’agit d’un exemple simplifié et non d’une représentation précise du fonctionnement du bitcoin):

Supposons que la clé privée de John soit le chiffre 4 et que sa clé publique soit le chiffre 0,25.*

*Une clé publique est toujours générée à partir d’une clé privée, à l’aide de la multiplication par courbe elliptique, de sorte que les deux clés différentes (privée vs publique) sont mathématiquement liées.

John envoie une transaction avec un hachage de 7 **

**Un algorithme de hachage transforme une quantité aléatoire de données (par exemple des données d’une transaction bitcoin), en un hachage composé d’un nombre de chiffre prédéterminé.

Supposons que la signature numérique de John issue de l’algorithme mathématique dans cet exemple soit: 28 (= 4 (clé privée) * 7 (hachage d’une transaction))

Le hachage de la transaction (7) et la signature numérique (28) sont ensuite diffusés au réseau bitcoin.

Un nœud (‘node’) du réseau bitcoin, qui réceptionne la transaction diffusée, vérifiera ensuite la signature numérique (28) en appliquant un algorithme mathématique spécifique et en utilisant la clé publique (0,25) comme une des entrées (‘input’). Le nœud (‘node’) en question comparera ensuite le résultat de ce calcul (28 * 0,25 = 7) avec le hachage (7) qui avait été diffusé au réseau ensemble à côté de la signature numérique (28).Étant donné que le résultat de la vérification (7) correspond au hachage (7), le nœud (‘node’) peut être certain que John dispose de la clé privée sans laquelle John n’aurait pas pu créer la signature numérique (28), sans que le nœud (‘node’) sache en quoi consiste la clé privée. Le nœud (‘node’) est dès lors en mesure de valider la transaction sans connaître la clé privée.

Conclusion

La signature d’une transaction bitcoin n’expose jamais votre clé privée.

Lors d’une transaction bitcoin, le hachage des données de transaction, d’une part, et la signature numérique, d’autre part, sont tous deux diffusés au réseau bitcoin.

La signature numérique est ensuite utilisée pour confirmer que l’émetteur possède la clé privée associée à l’adresse depuis laquelle la transaction est émise.

Ce processus de vérification est effectué en appliquant un algorithme mathématique spécifique impliquant la clé publique associée à l’adresse depuis laquelle la transaction est émise. La procédure de vérification produira une sorte de réponse binaire «oui» ou «non», répondant à la question « Dois-je accepter la signature, ou dois-je la rejeter? », sans que le vérificateur puisse gagner connaissance de la clé privée avec laquelle la transaction en question a été signée.


Gardez vous vos crypto-monnaies sur une plateforme en ligne? Attention, dans ce cas vous n’êtes pas le véritable propriétaire de vos crypto-monnaies!

Vous risquez notamment de perdre le tout, sans aucun recours, en cas de de piratage de la plateforme en ligne ou de votre compte personnelle ou en cas de défaillance de la plateforme en ligne.

Il est dès lors impératif que chaque individu prenne possession des ses crypto-monnaies, en transférant ses crypto-monnaies hors ligne sur un portefeuille pour crypto-monnaies sécurisé auquel seul ledit individu a accès.

Ne perdez donc plus de temps et achetez à l’instant votre portefeuille pour crypto-monnaies de Trezor, le leader du marché de la sécurité de crypto-monnaies! Cliquez ce lien pour explorer les différents modèles de portefeuilles pour crypto-monnaies que nous vendons.

Les deux modèles de Trezor: Trezor One (gauche) – Trezor Model T (droite)

N’économisez pas sur la sécurité de vos crypto-monnaies!


Données Commerciales

Genesis Block SPRL
Avenue Winston Churchill 220
1180 Uccle
Belgique
BTW : BE 0685844735

Produits


Ce site utilise des « cookies » pour rendre votre expérience Web aussi agréable que possible. Lorsque vous cliquez sur le bouton OK vous donnez votre accord.