Comment fonctionne Bitcoin et les objectifs du système Bitcoin

Extrait du comment fonctionne Bitcoin et les objectifs du système Bitcoin

La clé privée
La clé privée est un code cryptographique généré aléatoirement et tenu secret par l’utilisateur.
A cette clé privée est associée un clé publique, qui jouera le rôle d’un numéro de compte associé à un avoir. Pour faciliter son utilisation, la clé publique est codée sous une forme alphanumérique plus lisible que son format brut. Sous cette forme, la clé est appelée « adresse Bitcoin ». C’est ce format qui est effectivement utilisé et communiqué par le destinataire de paiement au payeur.
Ainsi pour recevoir un paiement, une clé privée est générée, une clé publique est calculée et transformée en adresse bitcoin, qui sera communiquée au payeur pour être inscrite parmi les avoirs affectés de la transaction créée par le payeur.
Pour effectuer un paiement, un utilisateur crée une nouvelle transaction, qui référencera des avoirs collectés pour une dépense. Pour chaque avoir collecté, une ligne de la table des entrées sera créée. Cette ligne référence l’avoir dépensé par l’identifiant de la transaction qui a affecté cet avoir et le numéro de l’avoir dans la table des sorties. Puis deux informations de certification sont ajoutées:
la clé publique : elle permet de vérifier que la clé publique utilisée pour la signature correspond bien à l’adresse bitcoin. Si la signature est créé avec une autre paire de clé publique/privée, les agents du réseau invalideront la transaction la signature : elle joue deux rôles, elle atteste que l’utilisateur détenteur de la clé privée a confirmé cette dépense (principe de non-répudiation ). En effet, la signature ne peut être calculée qu’avec la clé privée, mais peut être vérifiée avec la clé publique.
elle verrouille la dépense pour cette transaction (principe d’intégrité ), en effet la signature est calculée avec l’empreinte numérique de la nouvelle transaction, en fait légèrement modifiée, les champs de certification sont remplacés par des 0.
Ainsi seul le détenteur de la clé privée pourra générer l’adresse pour une nouvelle affectation, et sera en capacité de fournir les informations qui permettent la dépense. Les transactions sont chaînées entre elles, car elles incorporent l’identifiant des transactions précédentes, permettant de remonter l’origine d’un avoir jusqu’à la transaction initiale qui a créé les bitcoins ex-nihilo.
L’algorithme de signature cryptographique permet à chaque agent du réseau, qui diffuse cette transaction ou qui l’enregistre dans un bloc, de vérifier la cohérence, de l’adresse, de la clé publique et de la signature, sans avoir accès à la clé privée.
Contrats intelligents
Les clés publiques et les signatures sont en fait stockées comme des fragments de scripts qui seront exécutés par les agents pour effectuer la vérification. Cette vérification n’est donc pas codée par les agents eux-mêmes mais par les transactions. L’exécution de ces scripts aura pour résultat les vérifications décrites précédemment. Ces scripts sont appelés des contrats intelligents (smart contract).
Ces scripts permettent de définir d’autres modalités de paiement telles que la signature multiple pour autoriser la dépense d’un avoir.
L’une de ces modalités consiste à terminer la chaîne des paiements en injectant une donnée dans la transaction. L’avoir en bitcoins se trouve alors « transformé » en donnée (bitcoin burning). La donnée injectée devient une information certifiée et publiquement disponible (proof-of-existence). Par exemple, cette donnée peut être l’empreinte numérique d’un document, l’intégrité de ce document est alors certifiée sans l’implication d’un tiers de confiance.
Les blocs
Les transactions sont enregistrées dans des blocs. Les blocs sont eux-mêmes chainés les uns aux autres pour former la blockchain. Les blocs sont diffusés le plus largement possible sur le réseau Bitcoin, afin d’être validé par les agents et ajoutés à la blockchain. Une transaction est valide si elle est enregistrée dans un bloc ajouté à la blockchain depuis suffisamment longtemps, c’est à dire avec un nombre suffisant de blocs successeurs, donc une chaîne de blocs qui a fait l’objet d’un consensus.
Une bloc est structuré en 2 parties : un en-tête et un corps. L’en-tête permet de restituer le jeton d’horodatage.
Les jetons d’horodatage
Le jeton d’horodatage est une empreinte numérique qui authentifie un bloc comme chainon de la blockchain.
Le jeton d’horodatage est créé avec les données suivantes:
le jeton du bloc précédent, une empreinte numérique qui reflète le contenu du bloc (racine de l’abre de Merkle des transactions), le « nonce » (une valeur numérique qui satisfait la preuve de travail), l’horodatage, la cible de la preuve de travail.
Le nonce est une valeur numérique qui doit satisfaire un critère lequel exige un temps de calcul aléatoire et long. Ce critère est appelé la preuve de travail. Une fois cette valeur calculée, vérifié que le nonce satisfait au critère est immédiat.
Tout changement dans le contenu d’un bloc invaliderait le jeton, et imposerait un nouveau calcul du jeton. Comme chaque jeton est calculé avec le jeton précédent, il faudrait aussi recalculer les jetons des blocs suivants. La preuve-de-travail diminue le risque de réécrire un bloc, d’insérer un bloc, ou de retirer un bloc, au fur et à mesure que des blocs sont ajoutés.

Lire sur cLicours.com :  Fondement de la morale traditionnelle

Sommaire: Comment fonctionne Bitcoin et les objectifs du système Bitcoin

Introduction
Les objectifs du système Bitcoin
Les transactions
Les blocs
Les jetons d’horodatage
Un système multi-agents
Les mineurs
Le principe du consensus
L’autorégulation
La gouvernance
La fraude de la double dépense
Annexe 1: Implémentation d’un en-tête de bloc
L’empreinte numérique
L’algorithme SHA-256
Le « nonce »
La preuve-de-travail
La cible de la preuve-de-travail
L’indice de difficulté
L’ajustement de la preuve-de-travail
Le jeton d’horodatage
Annexe 2 : Implémentation des transactions
Sérialisation
Empreinte numérique d’une transaction
Clé privée et clé publique
Signer et vérifier
Distinguished Encoding Rules
Identifiant de transaction
Machine virtuelle à pile
Compilation de script
Exécution de script
Code pour vérifier un paiement dans le bloc #266632

Si le lien ne fonctionne pas correctement, veuillez nous contacter (mentionner le lien dans votre message)
Comment fonctionne Bitcoin et les objectifs du système Bitcoin (448 KO) (Cours PDF)
Comment fonctionne Bitcoin

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.