Comment SHA256 et le minage protègent le réseau Bitcoin PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Comment SHA256 et l'exploitation minière protègent le réseau Bitcoin

Comment le Bitcoin est-il défendu par l'énergie ? Et qu'est-ce qu'un nonce ? Ces questions et bien d'autres trouveront leur réponse !

Le fonctionnement de l'exploitation minière est fascinant. Quand je l'explique aux gens, j'aime voir leur visage au moment où leur esprit est époustouflé. Je vais l'expliquer ici, mais sachez que j'imagine tous vos visages alors que vos esprits soufflent !

Je dois commencer par les fonctions de hachage. Sans les fonctions de hachage, Bitcoin ne serait pas possible. Permettez-moi de vous expliquer d'abord ce qu'ils sont, non seulement pour que vous puissiez avoir l'air cool lors des fêtes, mais aussi parce qu'il est fondamental de comprendre comment Bitcoin fonctionne - en particulier l'exploitation minière mais aussi les transactions - sous le capot.

Vous n'avez pas besoin de comprendre le fonctionnement de Bitcoin pour en bénéficier, tout comme vous n'avez pas besoin de comprendre le fonctionnement de TCP/IP pour utiliser Internet. Mais continuez, car c'est assez intéressant et je vais le rendre facile à comprendre, promis.

Fonctions de hachage

Commençons par un schéma que je vais expliquer ci-dessous…

Comment SHA256 et le minage protègent le réseau Bitcoin PlatoBlockchain Data Intelligence. Recherche verticale. Aï.
(Graphique/@jirols_btc)

A gauche se trouve l'entrée, au centre la fonction et à droite la sortie. L'entrée peut être n'importe quelle donnée, tant qu'elle est numérique. Il peut être de n'importe quelle taille, à condition que votre ordinateur puisse le gérer. Les données sont transmises à la fonction SHA256. La fonction prend les données et calcule un nombre aléatoire, mais avec des propriétés spéciales (voir plus loin).

Le premier Secure Hash Algorithm (SHA) était à l'origine développé par la NSA et il existe maintenant de nombreuses versions différentes (Bitcoin utilise SHA256). C'est un ensemble d'instructions sur la façon de mélanger les données d'une manière très compliquée mais spécifiée. La notice n'est pas un secret et il est même possible de le faire à la main, mais c'est très fastidieux.

Pour SHA256, la sortie est un nombre de 256 bits (pas une coïncidence).

Un nombre de 256 bits signifie un nombre binaire de 256 chiffres. Binaire signifie que la valeur est représentée par deux symboles, 0 ou 1. Les nombres binaires peuvent être convertis dans n'importe quel autre format, par exemple les nombres décimaux, qui nous sont familiers.

Bien que la fonction renvoie un nombre binaire à 256 chiffres, la valeur est généralement exprimée au format hexadécimal, de 64 chiffres.

Hexadécimal signifie qu'au lieu de 10 symboles possibles comme nous en avons l'habitude avec le décimal (0 à 9), nous avons 16 symboles (Les dix auxquels nous sommes habitués, 0-9, plus les lettres a, b, c, d, e, et f; qui ont les valeurs 11 à 15). A titre d'exemple, pour représenter la valeur de la décimale 15 en hexadécimal, on écrit juste « f » et c'est la même valeur. Il y a beaucoup d'informations disponibles en ligne avec une recherche rapide sur Google si vous avez besoin de plus d'élaboration.

Pour démontrer SHA256 en action, je peux prendre le numéro 1 et le faire passer par un calculateur de hachage en ligne, et a obtenu cette sortie (en hexadécimal):

Comment SHA256 et le minage protègent le réseau Bitcoin PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

La case supérieure est l'entrée, la case inférieure est la sortie résultante.

Notez que tous les ordinateurs du monde produiront la même sortie, à condition que l'entrée soit la même et que la fonction SHA256 soit utilisée.

La sortie numérique hexadécimale, si elle est convertie en décimal, est (notez qu'il faut plus de chiffres pour écrire):

48,635,463,943,209,834,798,109,814,161,294,753,926,839,975,257,569,795,305,637,098,542,720,658,922,315

Et converti en binaire c'est :

11010111000011010110010011100111111111100110100111111001110000110011101011010111000000001001110111111110101101000111111010101110100011110101101101001001110101010100010001011110001110101001001110000000001111001010010110111011011011110000111010110110100101111010111001101011100110101110011010111001101011100110101110011010111001101011100111

Juste par intérêt, voici la même valeur dans base 64.

1w1k5/5p+cM61wCd/rR+ro9bSdVEXjqTgDylu28OtpY=

Notez que la plus petite valeur possible que SHA256 pourrait renvoyer est zéro, mais la LONGUEUR est toujours de 256 bits. Voici comment zéro est représenté :

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Et la plus grande valeur possible est :

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

En décimal, c'est :

115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,935

En hexadécimal, c'est :

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Notez qu'il y a exactement 64 F.

Zéro en hexadécimal peut simplement être écrit comme un seul zéro, mais pour la sortie de hachage, il y en a 64 pour respecter l'exigence d'une sortie de taille fixe :

0000000000000000000000000000000000000000000000000000000000000000

Voici un résumé de quelques faits sur la fonction de hachage qu'il est essentiel d'apprécier :

  • L'entrée ne peut pas être déterminée à partir de la sortie
  • L'entrée peut être de n'importe quelle longueur
  • La sortie est toujours de la même longueur
  • La sortie sera toujours reproduite à l'identique si vous fournissez la même entrée.
  • Toute modification de l'entrée, aussi petite soit-elle, entraînera une sortie imprévisible et très différente
  • La sortie est apparemment aléatoire, mais est en fait déterministe (ce qui signifie qu'elle est calculée et reproductible)
  • La sortie ne peut pas être prédite. Cela ne peut être que calculé et cela demande une quantité de travail mesurable par un ordinateur (et des heures avec un crayon et du papier ! Ne le faites pas.)

Maintenant que vous comprenez le concept de base de ce qu'est un hachage, vous pouvez comprendre l'explication du fonctionnement de l'extraction de Bitcoin.

Mais avant de continuer, je vous recommande d'aller sur un calculateur de hachage en ligne et de jouer un peu avec et de tester par vous-même ce que j'ai dit sur les fonctions de hachage. J'aime celui la.

Mines

Je commencerai par démontrer un concept de travail, d'où vient la "preuve de travail" dans Bitcoin.

Accédez au calculateur de hachage en ligne et tapez "Je crée 50 bitcoins et je me paie ce montant".

Tapez-le exactement, sensible à la casse, y compris le point. Vous devriez obtenir cette sortie :

Comment SHA256 et le minage protègent le réseau Bitcoin PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Maintenant, créons une règle qui dit que pour que ce message de paiement soit valide, nous avons besoin que le hachage commence par un zéro. Pour ce faire, nous devons modifier l'entrée d'une manière ou d'une autre. Mais, comme vous l'avez appris, il n'est pas prévisible quelle serait la sortie pour une entrée donnée. Quelle modification pouvons-nous apporter pour garantir un hachage commençant par zéro ?

Nous devons ajouter des données en utilisant des essais et des erreurs. Mais nous ne voulons pas non plus changer la signification du message d'entrée. Alors, créons un champ (une section allouée) appelé "nonce" qui contiendra une valeur non-sens.

Le mot "Nonce" est censé être dérivé de "nombre utilisé une seule fois", mais je ne le vois pas.

Remarquez ci-dessous comment le simple fait d'ajouter "Nonce :" en tant qu'en-tête de champ supplémentaire modifie la sortie de hachage.

Comment SHA256 et le minage protègent le réseau Bitcoin PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

La sortie ne commence toujours pas par un « 0 », alors ajoutons quelques absurdités (j'ai ajouté un « x » sans signification) :

Comment SHA256 et le minage protègent le réseau Bitcoin PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Il ne commence toujours pas par un zéro. J'ai essayé quelques caractères supplémentaires jusqu'à ce que le hachage commence par un zéro :

Comment SHA256 et le minage protègent le réseau Bitcoin PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Nous y voilà. Maintenant, selon les règles arbitraires que j'ai définies pour cette fausse version de Bitcoin, le texte dans la fenêtre de saisie est un bloc valide avec une seule transaction me payant 50 bitcoins.

Notez que les blocs Bitcoin sont essentiellement des pages d'un grand livre. Chaque bloc est numéroté et crée un nouveau bitcoin, ainsi que la liste des transactions entre les utilisateurs. Ce record est l'endroit où vit le bitcoin.

Maintenant une nouvelle règle. Pour le bloc suivant, le hachage du bloc précédent doit être inclus. Je vais ajouter un peu de complexité et ajouter quelques champs supplémentaires pour approcher ce qu'un vrai bloc Bitcoin a.

Comment SHA256 et le minage protègent le réseau Bitcoin PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Le hachage commence par un "f" et non "0", donc je vais devoir essayer quelques valeurs dans le champ nonce :

Comment SHA256 et le minage protègent le réseau Bitcoin PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Cette fois, j'ai eu plus de chance et j'ai trouvé un nonce approprié après seulement quatre essais. Rappelons que pour le premier bloc il a fallu 22 essais. Il y a un peu de hasard ici, mais en général, il n'est pas trop difficile de trouver un hachage valide si tout ce que nous essayons d'obtenir est un zéro. Il y a 16 valeurs possibles pour le premier chiffre de hachage, j'ai donc 1 chance sur 16 que toute modification que j'apporte au champ de saisie se traduise par le premier chiffre de hachage étant "0".

Notez que les champs de Bitcoin sont comme ça, mais il y a plus de détails que je n'ai pas ajoutés. Ceci est juste pour illustrer un point, pas nécessairement pour détailler exactement à quoi ressemble un bloc Bitcoin.

J'ajouterai un champ de temps au bloc suivant car j'en ai besoin pour expliquer le "réglage de la difficulté" ensuite :

Comment SHA256 et le minage protègent le réseau Bitcoin PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Ci-dessus, le bloc numéro trois. Il inclut le hachage du bloc précédent et maintenant j'ai également commencé à inclure l'heure. Le nonce que j'ai trouvé avec succès a fait commencer le hachage par un zéro (j'ai juste continué à taper un "1" jusqu'à ce que la cible de hachage soit atteinte).

Il y en a assez ici maintenant pour que je puisse commencer à expliquer quelques concepts intéressants sur la blockchain et l'exploitation minière Bitcoin.

Gagner un bloc

Le processus d'extraction est compétitif. Celui qui produit un bloc valide doit d'abord se payer une récompense de bloc définie. Un mineur qui produit le même numéro de bloc un peu plus tard n'obtient rien - ce bloc est rejeté. Expliquer pourquoi cela causera trop de détournement maintenant, donc je l'expliquerai dans l'annexe.

Une fois le bloc trois trouvé et diffusé à tout le monde (tous les nœuds Bitcoin), tous les mineurs arrêtent de travailler sur ce qui aurait été leur version du bloc trois. Ils commencent à construire au-dessus de ce bloc trois réussi (en tirant son hachage de bloc vers un nouveau bloc) et commencent à travailler pour trouver un nonce approprié pour le bloc quatre. Le gagnant publie le résultat, puis tout le monde commence à travailler sur le bloc cinq, etc.

Avec chaque bloc, de nouveaux bitcoins sont créés et constituent collectivement l'offre totale jusqu'à présent. S'il y a beaucoup de mineurs, alors statistiquement, nous devrions nous attendre à ce que les blocs soient produits plus rapidement, et donc le bitcoin sera créé plus rapidement. Problème, non ?

Cherchant un approvisionnement limité en bitcoins avec une émission prévisible dans le temps, Satoshi Nakamoto a pensé à ce problème et a introduit une boucle de rétroaction négative pour maintenir la production de blocs à des intervalles de 10 minutes en moyenne. Comment? Voyez si vous pouvez penser à un moyen. Faites une pause un instant et réfléchissez - voyez si vous pouvez trouver la même solution géniale et lisez la suite lorsque vous abandonnez.

NŒUDS : Je mentionne des blocs « valides ». Et alors? Qui vérifie ? Les nœuds Bitcoin le sont. Un nœud Bitcoin conserve une copie de la blockchain jusqu'à présent et suit un ensemble de règles pour vérifier que les nouveaux blocs sont conformes aux règles et rejeter ceux qui ne le sont pas. Où sont les règles ? Dans le code. Un ordinateur qui télécharge le code Bitcoin est un nœud.

L'ajustement de la difficulté

Le temps moyen pour créer de nouveaux blocs Bitcoin est calculé par chaque nœud tous les 2016 blocs (c'est pourquoi le champ de temps est nécessaire). Cela fait partie du protocole et des règles que les nœuds suivent. Une formule est appliquée pour ajuster le nombre de zéros par lesquels chaque hachage de bloc doit commencer pour être valide.

Strictement, ce n'est pas le nombre de zéros qui est ajusté mais une valeur cible que le hachage doit être inférieure, mais penser aux zéros non significatifs est plus simple à expliquer.

Si les blocs sont produits trop rapidement, la cible de hachage est ajustée selon des règles prédéfinies que tous les nœuds suivent de manière identique (c'est dans leur code).

En gardant les choses simples pour mon exemple, disons que d'autres personnes sont en concurrence avec moi, les blocs se produisent trop rapidement, et maintenant le quatrième bloc a besoin de deux zéros au lieu d'un, selon un calcul imaginaire.

Il va me falloir un peu plus de temps pour obtenir deux zéros, mais nous imaginons qu'il y a beaucoup d'autres personnes en compétition avec moi, donc le temps total nécessaire à quiconque pour trouver un bloc est limité à une cible.

Voici le bloc suivant :

Comment SHA256 et le minage protègent le réseau Bitcoin PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Remarquez l'heure. Plus de 10 minutes se sont écoulées depuis le bloc précédent (j'ai juste rattrapé le temps de faire la démonstration). L'objectif de 10 minutes est probabiliste ; on ne sait jamais exactement quand le prochain bloc sera trouvé.

J'ai déconné sur le clavier pendant une minute jusqu'à ce que deux zéros apparaissent. C'était exponentiellement plus difficile que de trouver un seul zéro. La chance de trouver deux zéros d'affilée est de 1 sur 162, soit 1 chance sur 256.

Si davantage de personnes se joignaient à l'exploitation minière et à la concurrence pour le nouveau bitcoin, trois zéros seraient finalement nécessaires.

Je viens de rechercher le dernier bloc Bitcoin réel, qui contient le hachage du bloc précédent. Le hachage était :

000000000000000000084d31772619ee08e21b232f755a506bc5d09f3f1a43a1

C'est 19 zéros ! Il y a 1 sur 1619 chance de trouver un tel bloc à chaque tentative. Les mineurs de Bitcoin font de très nombreuses tentatives par seconde, collectivement partout dans le monde.

Le nombre de tentatives par seconde est appelé « taux de hachage ». Actuellement, le taux de hachage mondial estimé est d'un peu moins de 200 millions de térahashes par seconde (un térahash équivaut à un billion de hachages). Avec autant de tentatives par seconde, un bloc avec un hachage commençant par 19 zéros est trouvé environ toutes les 10 minutes.

À l'avenir, à mesure que de plus en plus de mineurs se joindront, le taux de hachage augmentera, les blocs seront trouvés plus rapidement et la difficulté de Bitcoin s'ajustera pour nécessiter 20 zéros, ce qui ramènera la production de blocs à environ 10 minutes.

La moitié

Lorsque Bitcoin a commencé, 50 bitcoins étaient produits avec chaque bloc. Les règles de la blockchain Bitcoin précisent qu'après 210,000 10 blocs, la récompense sera réduite de moitié. Ce moment est connu sous le nom de "réduction de moitié" et se produit environ tous les quatre ans. La réduction de moitié, combinée à l'ajustement de la difficulté en maintenant les blocs à des intervalles de 2140 minutes, signifie que vers l'an 0.00000001, la récompense de bloc sera de 1, ou 21 satoshi, la plus petite unité d'un bitcoin, et ne pourra plus être réduite de moitié. L'exploitation minière ne s'arrêtera pas, mais la récompense globale sera nulle. À partir de ce moment, aucun nouveau bitcoin ne sera créé à l'avenir et le nombre de bitcoins est mathématiquement calculable et suffisamment proche de XNUMX millions de pièces. C'est ainsi que l'offre totale est connue - elle est définie par programme.

Même avec la récompense globale à zéro, les mineurs seront toujours incités à continuer à travailler afin de gagner des frais de transaction.

Comment exactement la récompense globale est-elle réduite de moitié ? C'est dans le code détenu par les nœuds. Ils savent rejeter tout nouveau bloc après 210,000 25 où un mineur se paie plus de 420,000 bitcoins. Et puis de rejeter tous les blocs après 12.5 XNUMX où un mineur se paie plus de XNUMX bitcoins, et ainsi de suite.

Les frais de transaction

Jusqu'à présent, je n'ai montré que des blocs imaginaires avec une seule transaction - la transaction où le mineur reçoit une récompense. C'est ce qu'on appelle la "transaction coinbase".

Il ne porte pas le nom de la société, Conbase, je veux dire Coinbase. La société s'est nommée d'après la transaction coinbase, et non l'inverse. Ne soyez pas confus.

En plus de la transaction coinbase, il existe des transactions de personnes se payant mutuellement. Voici un exemple imaginaire :

Comment SHA256 et le minage protègent le réseau Bitcoin PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Je n'ai pas pris la peine de trouver un vrai hachage cette fois (c'est en fait le vrai hachage signalé dans le bloc 200,001 XNUMX). Le nonce que j'ai juste inventé pour le plaisir, mais remarquez qu'un message peut y être intégré.

Satoshis a notamment inclus les mots "Le chancelier au bord du deuxième renflouement des banques" dans le premier bloc Bitcoin (The Genesis Block), après le titre du journal du jour.

Comment SHA256 et le minage protègent le réseau Bitcoin PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Le point ici est qu'il y a 132 transactions incluses (pas toutes montrées). Regardez la transaction n ° 132 - 2.3 bitcoins d'une adresse payent 2.1 bitcoins à une autre adresse et également à une deuxième adresse le montant de 0.1 bitcoin (j'ai utilisé des points pour raccourcir la longueur de l'adresse).

Ainsi, une source de 2.3 bitcoins paie un total de 2.2 bitcoins (2.2 + 0.1 = 2.2). Manque-t-il 0.1 bitcoin ? Non, la différence est réclamée par le mineur, comme je vais vous l'expliquer.

Le mineur est autorisé à se payer 25 bitcoins comme récompense de bloc (car 210,000 50 blocs se sont écoulés, la récompense a donc été réduite de moitié, passant de 25 à 27.33880022). Mais si vous regardez, la transaction coinbase est 2.33880022. Le bitcoin supplémentaire de 132 provient des XNUMX autres transactions du bloc – les entrées seront toutes légèrement supérieures au total des sorties. Ainsi, le mineur peut réclamer ce bitcoin "abandonné" comme paiement pour lui-même. Ceux-ci sont considérés comme des frais de transaction payés au mineur.

L'espace de bloc est limité. Lorsque Bitcoin était nouveau, les utilisateurs pouvaient envoyer des transactions sans frais et les mineurs incluaient la transaction dans le bloc. Mais maintenant, il y a plus d'utilisateurs et comme l'accès au bloc suivant est compétitif, les utilisateurs incluent des frais dans la transaction pour inciter le mineur à choisir sa transaction plutôt que celle des autres.

Ainsi, lorsque la récompense globale diminue régulièrement, diminuant de moitié tous les quatre ans et finissant par tomber à zéro, les mineurs sont toujours payés de cette manière.

Certains ont suggéré qu'un jour la récompense des mineurs ne suffirait pas et entraînerait l'échec de Bitcoin. Cette préoccupation a été complètement démystifiée et je ne la répéterai pas ici.

Un bloc peut-il être réécrit ?

C'est extrêmement improbable et il vaut la peine de comprendre pourquoi. Vous comprendrez alors pourquoi les transactions Bitcoin sont immuables (inchangeables).

J'ai expliqué plus tôt que le hachage du bloc précédent est inclus dans le bloc actuel. Cela signifie que toute modification de transactions dans un ancien bloc modifie le hachage de ce bloc modifié. Mais ce hachage est enregistré dans le bloc suivant, ce qui signifie que le bloc suivant doit également être mis à jour. Mais si vous modifiez le hachage enregistré dans ce bloc suivant, son hachage doit changer, et ainsi de suite.

Notez que chaque fois qu'un hachage est modifié, vous perdez tous ces jolis zéros et vous vous retrouverez avec un hachage d'apparence aléatoire - et vous devrez refaire tout le travail pour récupérer les zéros. Si vous faites cela pour le bloc que vous avez essayé de modifier, vous devez alors refaire le travail pour le bloc suivant, et le suivant jusqu'au bloc le plus récent. Vous ne pouvez pas simplement vous arrêter à l'ancien bloc, car les règles de Bitcoin sont telles que la plus longue chaîne de blocs est le véritable enregistrement Bitcoin. Si vous revenez en arrière et modifiez un bloc il y a 10 blocs, vous n'avez plus la chaîne la plus longue. Vous devez ajouter 10 blocs supplémentaires, puis un peu plus, car au fur et à mesure que vous créiez ces 10 blocs, la véritable chaîne est probablement devenue un peu plus longue. Vous devez faire la course pour dépasser la vraie chaîne. En cas de succès, la nouvelle version devient la vraie version.

Répéter l'effort de hachage collectif du monde entier du bloc édité au dernier bloc est l'obstacle à l'édition de Bitcoin. L'énergie a été dépensée pour créer ces hachages avec tous ces zéros improbables et cette dépense d'énergie doit être répétée pour éditer Bitcoin. C'est pourquoi l'énergie utilisée pour extraire le Bitcoin n'est pas « gaspillée » ; il est là pour défendre Bitcoin contre les modifications, pour rendre le registre immuable sans avoir besoin de faire confiance à une autorité centrale.

Que se passe-t-il si deux mineurs trouvent un bloc en même temps ?

Cela se produit en fait de temps en temps, et cela se trie toujours comme suit :

Chaque nœud recevra d'abord l'un des nouveaux blocs presque simultanés et acceptera celui-ci et rejettera celui qui arrivera quelques instants plus tard. Il en résulte une scission du réseau, mais c'est temporaire.

Pour illustrer, appelons l'un des blocs bleu et l'autre rouge (ils n'ont pas de couleur, supportez-moi).

Les mineurs travaillent ensuite sur le bloc suivant, mais il y aura une division quant au bloc à partir duquel ils étendent la chaîne.

Disons que le mineur gagnant a trouvé un bloc en utilisant la chaîne bleue. Ils enverront le nouveau bloc à tous les nœuds et la chaîne la plus longue sera apparente. Les nœuds qui avaient accepté la chaîne rouge la lâcheront alors et adopteront la chaîne bleue.

Tous les mineurs qui travaillaient sur la chaîne rouge s'arrêteront et travailleront désormais sur la chaîne la plus longue, qui est la chaîne bleue. La chaîne rouge est morte.

Appendice

Pourquoi le bloc d'un mineur finaliste est invalide

Supposons que le bloc 700,000 700,000 vient d'être miné par MINER-A. Trente secondes plus tard, MINER-B a également créé une version différente du bloc 30 700,001. Lorsque MINER-B diffuse cette alternative, chaque nœud va la rejeter car ils ont déjà vu et accepté le blocage par MINER-A. De plus, dans ces 700,000 secondes, disons que MINER-C a trouvé le bloc 700,001 XNUMX. Étant donné que le XNUMX XNUMXe bloc concurrent de MINER-B n'étend pas la chaîne actuelle (qui est jusqu'à XNUMX XNUMX), il est également rejeté pour cette raison.

Ce qui est encore plus intéressant, c'est que si MINER-B avait travaillé sur le bloc 700,001 700,000 au lieu d'une version concurrente de 700,001 700,000, ils auraient eu autant de chances de miner un bloc XNUMX XNUMX valide qu'ils auraient finalement dû trouver un autre bloc XNUMX XNUMX. Ainsi, dès qu'un mineur voit un nouveau bloc, il doit concentrer ses efforts sur le bloc suivant.

Si, cependant, Miner-B a trouvé le bloc 700,000 XNUMX une seconde après MINER-A, il est possible que certains nœuds voient le bloc de MINER-A en premier tandis que d'autres voient le bloc de MINER-B en premier, en fonction des emplacements géographiques et des vitesses Internet. Dans ce cas, il y a un fork temporaire, et certains mineurs travailleront pour étendre une version tandis que d'autres mineurs travailleront pour étendre l'autre. Comme expliqué précédemment en utilisant les descripteurs "chaîne bleue" et "chaîne rouge", éventuellement l'une des versions s'étendra plus loin avant l'autre et deviendra la version valide à l'unanimité.

Ceci est un article invité par Arman The Parman. Les opinions exprimées sont entièrement les leurs et ne reflètent pas nécessairement celles de BTC Inc ou Magazine Bitcoin.

Horodatage:

Plus de Magazine Bitcoin