Comment Fonctionne Bitcoin ?

Bitcoin, une monnaie numérique décentralisée. Mais comment ça marche? Comment les transactions sont-elles créées et comment sont-elles maintenues de manière décentralisée et sans confiance ?

Bitcoin, une monnaie numérique décentralisée. Avant de plonger dans le fonctionnement de Bitcoin ? Il est conseillé de lire "Qu'est-ce que Bitcoin?" Ce qui vous fournit un synopsis et une brève explication de ce qu'est le bitcoin et de son réseau.

Vous avez peut-être entendu dire qu'aucun gouvernement ne l'émet et qu'aucune banque n'est tenue de le gérer ou de le contrôler, ni de vérifier ses transactions. Et étonnamment, nous ne savons même pas qui était exactement 'Satoshi', qui l'a inventé. Ainsi, nous pouvons parcourir diverses questions pour comprendre cela (cette explication n'inclura pas de détails techniques de haut niveau qui nécessitent une rédaction explicative plus approfondie).

Commençons par prendre un exemple d'approche, où vous effectuez des transactions avec vos amis et devez suivre les paiements.

Alors, considérons que vous avez utilisé un grand livre pour suivre vos paiements et chaque transaction avec vos amis Charlie et Bob. Au début, le grand livre et la tâche de le mettre à jour dépendaient entièrement de la confiance, mais à un moment donné, vous décidez que vous devez rendre ce processus sans confiance. Donc, vous apportez une "cryptographie" ou une sorte de code pour équilibrer et contourner cet élément de "confiance". Maintenant, plutôt que de faire confiance aux humains, vous définissez un code qui gère cette partie de confiance pour vous. Cela donne naissance au modèle similaire à celui utilisé par Bitcoin, Trustless Model (aucune autorité centrale ni confiance requise entre deux parties échangeant de la valeur entre elles).

Satoshi a conçu la première crypto-monnaie et toujours la seule aujourd'hui qui repose entièrement sur un modèle décentralisé sans confiance. Techniquement, pour utiliser Bitcoin, vous n'avez pas besoin de savoir exactement ce qui se passe à chaque point du système, comme dans le système bancaire lorsque vous utilisez votre carte bancaire pour effectuer des transactions. En tant que réseau de paiement numérique, la convivialité dépend principalement des applications et services de la couche de surface (tels que les applications mobiles/informatiques pour les portefeuilles, etc.).

Mais qu'est-ce qui différencie Bitcoin du système bancaire ? L'épine dorsale du réseau Bitcoin n'est pas une autorité centrale ou un groupe de personnes élues par le gouvernement. C'est un système de vérification sans confiance décentralisé très intelligent utilisant les mathématiques. Ces éléments de mathématiques font partie du domaine de la cryptographie. Les mathématiques sont universelles et immuables par des décisions humaines. 1 + 1 = 2 et c'est universellement accepté, personne ne peut changer cela.

Commençons par deux choses d'abord, les registres et les signatures numériques.

En supposant que vous êtes quatre amis, qui partagent des ressources, sortent dîner ou échangent des biens entre eux. Le suivi de chaque transaction entre chacun des quatre peut être fatigant. Imaginez, vous avez donné 10€ à votre ami Bob, et maintenant il vous doit ces 10€. Mais plutôt que de vous rembourser il demande à Charlie de vous payer 10€, ce que Charlie doit à Bob ou il demande à Alice de vous payer 10€ car Alice doit 20€ à Charlie. Cela devient déroutant et difficile à suivre. Vous commencez donc à conserver un enregistrement écrit des transactions appelé "Registre" (Ledger en anglais). Ce grand livre est ouvert à tous et enregistre le total des transactions du mois. À la fin du mois, vous comptabilisez tous le total payé ou le total dû et réglez les montants finaux. Cela obéit donc à deux règles principales :

  • N'importe qui peut ajouter une transaction (nouvelle ligne) au grand livre.
  • Et à la fin de chaque mois, vous devez régler toutes les transactions.

Mais le problème rencontré ici est de savoir comment empêcher quiconque d'ajouter de fausses transactions (fausses lignes) à ce grand livre. Comment empêcher Alice d'aller ajouter que "Bob doit 50 € à Alice", sans que Bob sache ou approuve que c'est vrai ou non. Vous devez être sûr que toutes les personnes impliquées seront véridiques et n'y ajouteront que les transactions ou les enregistrements réels.

Pour résoudre ce problème de confiance, nous utilisons quelque chose appelé "Signatures numériques" (basé sur la cryptographie). Plutôt que des signatures à la main, les signatures numériques ici devraient pouvoir mettre en évidence que Bob a vu la transaction nouvellement ajoutée et qu'il l'approuve. Et cela devrait être transparent et il devrait être impossible pour quiconque de falsifier les signatures.

Mais une signature numérique ne peut-elle pas être copiée ? C'est numérique, n'est-ce pas ? Ne peut-il pas être simplement lu par un programme informatique qui peut le copier et en créer exactement la même version ? Comment empêchez-vous la falsification de ces signatures ?

Ceci est résolu par le biais des clés "Public" et "Privée". La clé privée est une sorte de clé secrète. Ainsi, la clé privée est gardée secrète et accessible uniquement par son propriétaire légitime.

Dans le monde physique, toutes vos signatures signées à la main se ressemblent, quelle que soit la relation avec le message réel pour lequel elles sont utilisées. Dans le monde numérique, les signatures numériques sont beaucoup plus fortes - elles sont fonction du "message" et de "votre clé privée", qui ensemble modifient les caractéristiques de la signature en fonction du message. La clé privée garantit que, quel que soit le message, vous seul pouvez produire une signature correspondant à cette clé. Et la signature a les bribes de caractéristiques identifiables qui mettent en évidence l'utilisation de la "clé privée" et pour quel "message" la signature a été générée. Donc, techniquement, personne ne peut copier l'une de vos signatures et l'utiliser sur un autre message.

Mais comment vérifier que ce message et cette signature sont valides ? Voici le rôle de la clé publique. La clé publique ne peut être générée qu'avec l'utilisation de la clé privée. Ainsi, il reconnaît à quelle clé il appartient. Ainsi, lors de la vérification, l'appariement et l'utilisation de la « clé publique » avec le « message » et la « signature » ​​produisent l'indication « Vrai » ou « Faux ». 'True' le message et la signature sont valides par rapport à la clé privée, ou 'False' ils ne sont pas valides par rapport à la clé privée. Avec la fonction cryptographique utilisant 256 bits, il devient impossible de pouvoir copier ou générer la même clé secrète (clé privée).

Maintenant, nous savons qu'Alice ne peut pas copier la signature de Bob et falsifier les transactions sans son approbation. Mais ce qu'elle peut encore faire, c'est copier la même ligne de message, avec la même signature et l'ajouter au grand livre. Donc, pour résoudre ce problème, le système doit inclure un "identifiant unique" qui identifie cette transaction. Même si la transaction est copiée, l'identifiant unique peut être utilisé pour vérifier quelle est la véritable transaction.

Alors maintenant, nous avons résolu le problème de la légitimité de chaque entrée dans le grand livre. Mais que se passe-t-il si Charlie accumule beaucoup de dettes et à la fin du mois refuse de payer qui que ce soit ? Comme le règlement final dépend du règlement en espèces. Peut-être pourrions-nous trouver un moyen d'empêcher les gens de dépenser plus qu'ils ne gagnent ? Ensuite, nous n'avons pas à tout régler en espèces.

  • Faisons en sorte que chacun ajoute 50 € ou 100 € à la cagnotte. En supposant que tout le monde ait ajouté 100 €. Nous créons donc des entrées dans le grand livre en disant - Tout le monde reçoit 100 € à dépenser.
  • Aucune dépense excessive n'est autorisée. Comme ils ont tous donné 100€, le maximum qu'ils peuvent dépenser est de 100€.

Ce que Bitcoin a introduit en raison de la cryptographie, c'est de maintenir ce grand livre de manière optimale, avec vérification des signatures, pas de dépenses excessives, etc. Comme de plus en plus d'utilisateurs utilisent ce grand livre, ils peuvent vivre toute leur vie sans argent en utilisant uniquement ce grand livre. En utilisant la terminologie de Bitcoin, cela sera appelé "Devise du registre = bitcoin" et même il est également divisible jusqu'à 100 millionièmes d'unités appelées "satoshis". Les Satoshi sont au bitcoin, ce que les cents sont aux euros. 1 Bitcoin = 100000000 Satoshi.

Dans le monde d'aujourd'hui, vous pouvez échanger un bitcoin contre des dollars, des euros, etc. Cela fonctionne de la même manière que l'échange d'euros contre des dollars ou vice versa. bitcoin est sa propre monnaie indépendante fonctionnant sur son propre « Livre de comptes décentralisé » appelé réseau du Bitcoin.

Si Bitcoin est décentralisé, comment parvient-il à ajouter de nouvelles transactions à son registre sans confiance ? La tenue du grand livre ne nécessiterait-elle pas un emplacement central ou une autorité digne de confiance ?

Bitcoin gère cela en laissant à chacun sa propre copie personnelle du grand livre. Si Alice paie 100 € à Bob, vous diffusez la transaction à tout le monde et ils mettent à jour leur registre. Mais intrinsèquement, cela rend la gestion compliquée et difficile et fait croire à tout le monde qu'il s'agit d'une véritable transaction, ou l'enregistre dans le même ordre. Alors, comment Bitcoin gère-t-il cela si efficacement ?

Bitcoin offre une solution en introduisant la politique selon laquelle le grand livre contient le plus de travail de calcul. C'est ce qu'on appelle la «fonction de hachage», qui implique un travail de calcul (résolution d'équations mathématiques) comme base pour maintenir les registres non conflictuels et à l'abri de toute fraude. Ceci est également connu sous le nom de concept de «Preuve de Travail» (Proof of Work en anglais). C'est le cœur de Bitcoin.

Génération du hachage

En termes simples, une "fonction de hachage" est une équation mathématique qui accepte n'importe quel message et donne une chaîne de bits (groupe aléatoire de 0 et de 1 - car il s'agit du langage des ordinateurs). La sortie est souvent appelée « hash » ou « digest ». Cela semble aléatoire mais ce n'est pas aléatoire, car il donne toujours la même sortie pour une entrée donnée spécifique. Même si vous changez un caractère dans un message, cela donnera une sortie complètement différente. Ces changements de production sont hautement imprévisibles. Et en cryptographie, il est impossible de calculer/calculer en sens inverse. Le seul moyen de trouver l'entrée à partir de la sortie est de "deviner et vérifier", ce qui nécessite beaucoup de travail. Bitcoin utilise quelque chose appelé « SHA-256 » qui constitue également le cœur de nombreux protocoles de sécurité dans le monde entier.

Pour trouver un hachage correct correspondant au grand livre, cela nécessitera une quantité de travail considérable, d'où l'invention du terme « preuve de travail ». Revenons donc à l'exemple des 4 amis, utilisant Bitcoin comme grand livre. Il fonctionne en divisant les transactions en « blocs » (plus petits groupes de transactions). Ces blocs s'emboîtent avec le « hachage » respectif généré avec la « preuve de travail », ce n'est qu'alors qu'il s'agit d'un bloc valide. Chaque bloc suivant contient le hachage du bloc précédent comme en-tête (pour marquer une séquence appropriée pour ces blocs). Et si vous modifiez une signature ou une transaction dans un bloc, vous modifierez l'intégralité du hachage envoyé au bloc suivant (pour son en-tête), et qui modifiera également cela pour le bloc suivant, etc. Ce qui nécessitera de refaire tout le travail. Cette chaîne de blocs est appelée 'Block-Chain'.

La façon dont Bitcoin est conçu, il permet à n'importe qui d'effectuer le travail d'ajout de nouveaux blocs et d'aider à mettre à jour le grand livre. Pour récompenser le nouveau créateur de bloc pour tout son travail, Satoshi a introduit une transaction spéciale qui est ajoutée au registre avec chaque bloc, donnant au travailleur des bitcoins (par exemple : 10 € pour chaque nouveau bloc). C'est ce qu'on appelle la «récompense de bloc». Il s'agissait d'une inclusion intelligente de Satoshi, pour inciter des millions de personnes à utiliser Bitcoin et à rivaliser avec d'autres pour cette récompense (à mesure que la valeur de Bitcoin augmente en raison de son utilisation. Cela fonctionne plus comme une loterie qu'une méthode formulée pour garantir la recherche des blocs. Et pour obtenir leurs transactions incluses dans le grand livre, tout le monde paie une somme modique au travailleur. Ces travailleurs sont connus sous le nom de "mineurs". La conception de Bitcoin réduit la récompense de bloc tous les 210 000 blocs (ou environ 4 ans). Au fur et à mesure que de plus en plus d'utilisateurs viennent dans l'ensemble du marché des récompenses, il n'y a plus que des frais.

Comme tout le monde maintient sa propre copie des blocs, et les mineurs travaillent sans relâche pour essayer de trouver les meilleures solutions à la fonction de hachage, en mettant à jour leur propre registre en même temps. Ils proposent leurs registres sous forme d'enregistrements à mettre à jour pour offrir, et en cas de registres contradictoires (chaînes de blocs), le plus long est considéré comme valide. Tout le monde donne la préférence à la chaîne qui a le plus de travail. Ainsi, la suppression de toute autorité centrale et de la confiance n'est mise que dans le « travail de calcul ». Si Charlie essaie d'envoyer à Alice des informations erronées sur les blocs (pour le tromper), Alice peut le vérifier en comparant sa chaîne, les informations de chaîne envoyées par Charlie et les informations de chaîne envoyées par d'autres. Ainsi Alice peut rejeter les informations envoyées par Charlie. La probabilité que Charlie gagne à chaque fois la loterie de recherche de blocs est extrêmement faible (car tout le monde travaille également pour que ses blocs soient ajoutés). Charlie devra posséder plus de 50 % de puissance de calcul que l'ensemble du réseau (51 % d'attaque) pour augmenter ses chances avant qu'Alice ne découvre qu'il triche. À ce stade, Alice et les autres peuvent décider de rejeter la chaîne de Charlie et de continuer sur une chaîne de confiance qu'ils ont suivie. Au fur et à mesure que de plus en plus de mineurs (travailleurs) sont sur le réseau et se font concurrence, le réseau se développe de plus en plus fort. Les mineurs qui ne gagnent pas à la loterie la plupart du temps assurent également la sécurité de l'ensemble du réseau en contrôlant une partie de la puissance de calcul totale qui peut être utilisée à mauvais escient par un acteur malveillant. Ils assurent la sécurité du réseau.

Bitcoin ajoute de nouveaux blocs environ toutes les 10 minutes, ce qui ne crée qu'un seul gagnant de cette loterie toutes les 10 minutes. Outre les mineurs, il existe des utilisateurs qui gèrent simplement une copie complète du registre et du logiciel Bitcoin, qui vérifie si les blocs fournis par les mineurs suivent le consensus et n'incluent aucune transaction frauduleuse. Ceux-ci sont appelés "Nœuds". Les node runners et les utilisateurs sont ceux qui contrôlent le réseau. Les mineurs sont des travailleurs qui travaillent pour les nœuds. Avec une faible taille de bloc Bitcoin, la chaîne se développe de manière connue et économique et réduit ainsi la difficulté d'entrée pour les utilisateurs qui souhaitent ajouter plus de nœuds pour maintenir le réseau décentralisé.