Partager via



Août 2018

Volume 33, numéro 8

Cet article a fait l'objet d'une traduction automatique.

Blockchain - les fondamentaux de la fonctionnalité « blockchain » : Vous plonger dans les chaînes de hachage de Transaction

Par Jonathan Waldman | Août 2018

Dans le premier article de cette série (msdn.com/magazine/mt845650), j’ai présenté les concepts fondamentaux nécessaires pour comprendre largement blockchains moderne, à l’aide des exemples généraux pour illustrer les principes de base. Dans cet article, je reviendrai sur certaines des rubriques à partir de l’article précédent en accédant plus en détail sur les chaînes de hachage de transaction, le rôle de pool de transactions et comment prévaut toujours une blockchain la plus longue. Cet article est en lecture mieux en complément de l’article précédent et contient une partie introductive pour les développeurs qui découvrent les technologies blockchain.

Incidemment, tandis que les articles de cette série sont basés sur la blockchain de Bitcoin, je ne préconise absolument pas l’adoption d’un produit de blockchain particulier ou une technologie. Au lieu de cela, mon objectif est d’Explorer la base sur le blockchain populaires technologies sont intégrées et à vous fournir les connaissances que vous pouvez appliquer si vous décidez d’exploiter les chaînes de blocs existant ou concevoir votre propre. Comme vous étudiez les chaînes de blocs, vous réaliserez dès que les détails d’implémentation diffèrent considérablement entre eux. Si vous décidez de spécialiser dans une implémentation de blockchain particulier, vous devez suivre le rythme avec ses correctifs et les mises à jour afin de maintenir l’expertise. Mais j’ai pour vous avertir que la nature dynamique de ces nouvelles technologies souvent signifie que la documentation disponible, vidéos, blogs, forums et autres automne de ressources de documentation derrière, rendant parfois nécessaire de consulter le code source déployé à la dernière version en tant qu’un particulier référence définitive de l’implémentation de la fonctionnalité « blockchain ».

Chaîne de hachage des transactions revisitée

Mon article précédent décrit la structure de données chaîne transaction hachage, qui effectue le suivi de la propriété des actifs numériques. Dans cet article, je décrirai plus profondément au fonctionne de cette chaîne de hachage.

Pour payer rend hommage aux racines de la blockchain, je commencerai en se concentrant sur célèbre livre blanc de Satoshi Nakamoto sur MINAGE (bitcoin.org/bitcoin.pdf) publiée le 31 octobre 2008 — mois avant le lancement de Bitcoin le 3 janvier 2009. Bien que le Bitcoin détails d’implémentation ont un peu changé depuis, le livre blanc est laissé une référence utile, en particulier le diagramme sur p. 2 qui exprime la chaîne de hachage de transaction d’origine concevoir concept.

L’objectif de ce diagramme consiste à transmettre une chaîne de hachage des transactions est construite et découvrez comment les signatures numériques autorisent le transfert de la séquence de la propriété. Toutefois, il est hautement abstrait et, par conséquent, est un peu à confusion. Pour ajouter plus de clarté, j’ai créé une version plus détaillée qui décrit les chaînes de hachage actuel de la transaction fonctionne-t-il exactement (consultez Figure 1).

Version mise à jour du diagramme de chaîne de hachage de Satoshi Nakamoto d’origine Transaction
Figure 1 mis à jour la Version du diagramme de chaîne de hachage de Satoshi Nakamoto d’origine Transaction

Mon diagramme révisée montre trois transactions (basé sur 0, comme dans le document d’origine) : Transaction0 Alice, Transaction1 pour Bob et de Transaction2 pour Charlie. La première transaction établit Alice le propriétaire d’origine de l’élément multimédia numérique ; sa deuxième transaction transfère la propriété à Jean ; et sa transaction troisième transfère la propriété Charlie. Chaque transaction est composée de ces champs (indiquées par un contour Uni) : hachage de la transaction, ID d’élément multimédia numériques, des données facultatives, clé publique et signature. Autres champs sont utilisés mais pas stockés dans la transaction (indiquée par un contour en pointillé) : clé privée et le nouveau hachage de la transaction. Le diagramme exprime les valeurs de champ en tant que noms d’indice, à casse mixte, par exemple, la valeur de hachage de transaction pour la Transaction0 est TransactionHash0 et la valeur de clé publique pour la Transaction2 est la clé publique2.

Figure 1 est la chaîne de hachage une transaction simplifiée, car il effectue le suivi uniquement un seul numérique élément multimédia (DigitalAssetID0) comme il modifie le propriétaire (en revanche, les chaînes de hachage de transaction Crypto-monnaies ont généralement plusieurs actifs numériques entrées et sorties). En outre, ne confondez pas la chaîne de hachage de transaction avec la blockchain, les agrégats vérifié les transactions en blocs. Enfin, la chaîne de hachage de transaction n’est pas généralement stockée en tant que la structure de données de liste liée unique représentée. Au lieu de cela, il peut être construit (rapidement, à l’aide d’index) à partir des données de transaction qui sont stockées sur le blockchain.

Comme j’ai décrit dans mon article précédent, la séquence des transactions est conservée, car les transactions de chaque nouveau propriétaire contient une valeur de hachage qui est lié précédent pour les transactions du propriétaire précédent. Dans Figure 1, des liens de l’arrière sont formées lorsque le hachage de la transaction de la transaction précédente est stocké dans la transaction actuelle. Par exemple, les transactions de Bob contient un champ de hachage de transaction contenant TransactionHash d’Alice0 valeur ; de même, les transactions de Charlie contient un champ de hachage de transaction contenant TransactionHash de Bob1 valeur et ainsi de suite.

Des liens de l’arrière sont simplement une de plusieurs composants de l’intégrité des données de la chaîne de hachage de transaction. La chaîne applique également l’autorisation de transfert de propriété. Pour suivre un exemple, imaginez qu’Alice est une purveyor des vins finest dans le monde et qu’il souhaite conserver un fichier de comptabilité qui assure le suivi du devenir de chaque bottle que possède. Une journée, Alice atteint son cellar vin et décide qu’elle s’inscrit lui-même sur la fonctionnalité « blockchain » de l’entreprise comme le propriétaire d’origine de chaque bouteille de vin stocké, l’amorçage efficacement les chaînes de hachage de transaction pour chacun de ses bidons coupures de vin. Pour commencer, elle par hasard extrait une bouteille de Cheval Blanc 1947 Saint-Émilion et balise avec un code QR contenant un ID unique. Elle analyse ensuite l’étiquette QR son logiciel client de blockchain en cours d’exécution en tant que nœud sur le réseau. Le logiciel traduit le code analysé par un ID d’élément multimédia numérique (DigitalAssetID0) puis ajoute des données facultatives (OptionalData0), ainsi que la clé publique d’Alice (PublicKey0). Comme vous pouvez le voir dans Figure 1, ces champs sont dans leur propre rectangle avec contour qui représente une transaction non signée. Chaque transaction contient également un lien ascendant de hachage transaction et une signature, mais comme il s’agit de la première transaction dans la chaîne de hachage, ces champs sont vides (indiqué par les champs ombrées de Transaction0).

Indiqué située en haut de chaque transaction est une valeur de hachage unique transaction que le logiciel client calcule par SHA-256-hashing ensemble tous les champs de la transaction (le hachage de la transaction, ID d’élément multimédia numérique, des données facultatives, du propriétaire de la clé publique et signature). Là encore, c’est cette valeur de hachage de transaction qui sert de lien ascendant de la transaction suivante pour DigitalAssetID0.

Lorsque Bob, le Gestionnaire de restaurant de Manhattan d’Alice, veut acquérir la bouteille d’Alice de Cheval Blanc, il utilise son logiciel client pour générer une nouvelle paire de clés publique / privée pour la transaction. Bob peut ignorer cette étape et agréger toutes ses ressources numériques sous une clé publique unique, utilisée précédemment, mais qui lui expose à des risques inutiles. Au lieu de cela, il génère une nouvelle paire de clés et donne à Alice une clé publique, qu'il n’est jamais utilisé. De cette façon, si il perd jamais la clé privée associée, il perd l’accès à une ressource de numérique unique.

En réponse à la demande de Bob, Alice lance son logiciel client et permet de parcourir ses actifs numériques. Elle sélectionne la transaction ID associé à la bouteille Cheval Blanc Bob veut et puis lance la demande de transfert en fournissant la clé publique de Bob, ce qui double comme une sorte de l’adresse de destination. Le nœud crée ensuite une nouvelle transaction (Transaction1) contenant la valeur de lien ascendant du hachage de transaction précédente (TransactionHash0), la valeur de l’ID d’élément multimédia numérique (DigitalAssetID0) pour la bouteille Cheval Blanc (il s’agit la même valeur que le code d’actifs numériques de Transaction0), la valeur des champs personnalisés liés à la transaction (OptionalData1) et la valeur de clé publique de Bob (PublicKey1), car Bob est propriétaire de cette transaction.

Jusqu’ici, le nœud a construit une nouvelle Transaction non signée1 pour Bob. L’étape suivante consiste à se connecter à la transaction à l’aide de la clé privée d’Alice. Il s’agit d’une étape essentielle : Alice actuellement propriétaire de l’élément multimédia numérique en question qu’elle peut autoriser le transfert de la ressource numérique à Bob.

Chiffrement à courbe elliptique

Dans Figure 1, étiquettes 1 et 2 indiquent où la transaction est signée et où il est vérifié, respectivement. Dans sa version actuelle, la blockchain MINAGE s’appuie sur une implémentation de chiffrement à clé publique (TP) appelé chiffrement à courbe elliptique (ECC). ECC fournit les résultats de chiffrement plus forts et des clés plus courts que l’alternative RSA/Diffie-Hellman populaires. Nœuds de Blockchain utilisent ECC pour générer des paires de clés asymétriques à l’aide d’une formule qui implique des points sélectionnés de façon aléatoire sur un graphique à deux dimensions. Ce schéma permet à une clé publique perdue à être régénéré à partir de la clé privée (mais bien entendu ne permet pas une clé privée perdue à être régénéré à partir d’une clé publique).

Les chaînes de blocs est modelé MINAGE également tirer parti ECC lorsqu’il s’agit des signatures numériques. Contrairement aux exemples PKC Rivest-Shamir-Adelman (RSA) simplifiée, que j’ai illustré dans mon article précédent, MINAGE utilise désormais un Elliptic Curve Digital ECDSA Curve Signature Algorithm () (en particulier, SHA256withECDSA) pour la signature des transactions. Cet algorithme fonctionne un peu différemment des autres technologies de signatures : Dans ECDSA, vous devez transmettre la clé du signataire privé, ainsi que le message d’être connectés à une fonction qui utilise un algorithme de génération de signature ECDSA pour créer une signature (cette étape est indiquée par le marqueur 1 dans Figure 1). Pour vérifier plus tard cette signature, vous devez passer une clé publique du signataire, message et signature à une fonction qui utilise un algorithme de vérification ECDSA pour générer une valeur true ou false, indiquant si la signature est valide (cette étape est indiquée par le marqueur 2 dans Figure 1). Figure 2 résume la signature et la vérification à l’aide d’algorithmes ECDSA.

Génération des signatures algorithme Elliptic Curve Digital Signature (haut) et l’algorithme de vérification (du bas)
Figure 2 Elliptic Curve Digital Signature algorithme génération (haut) et la Signature algorithme de vérification (du bas)

Lorsque vous créez une signature numérique à l’aide de PKC RSA, vous vérifiez la signature en comparant les valeurs de hachage, comme indiqué dans mon article précédent. Pour les curieux ayant l’esprit, cette stratégie de vérification de signature n’est pas possible avec ECDSA. RSA PKC est un algorithme de signature numérique déterministe, car la signature d’un message donné avec une clé privée donnée génère la même signature chaque fois. ECDSA, quant à eux, est non déterministe : Chaque fois que vous passez un message et une clé privée à l’algorithme ECDSA signature de fonction, vous pouvez obtenir une signature différente. Pour voir cela en action, accédez à bit.ly/2MCTuwI.

Poursuivre avec l’exemple, Alice est sur le point de connexion de la transaction qui transfère la propriété de DigitalAsset0 à Jean. Le logiciel de nœud passe sa clé privée (PrivateKey0), ainsi qu’un message (NewTransactionHash1) pour la fonction d’algorithme de génération des signatures ECDSA et obtient une signature en tant que sortie (Signature1). Le nœud ajoute cette valeur de signature dans le champ de signature de la nouvelle transaction. Enfin, le nœud calcule le hachage de transaction (TransactionHash1) valeur, qui est un hachage SHA-256 de tous les champs de transaction, notamment la signature. À ce stade, le nœud a produit correctement une transaction signée qui peut être envoyée vers le pool de transactions.

Une transaction signée est considéré comme non vérifié jusqu'à ce qu’elle a été validée par un nœud miner. Lorsqu’un nœud miner tente de vérifier les transactions de Bob, elle utilise le hachage transaction lien pour accéder à la clé publique de la transaction précédente, ce qui entraîne Transaction d’Alice0. Une fois que le nœud a accès à la transaction précédente, il passe de clé publique de cette transaction (PublicKey0), ainsi que le nouveau hachage de transaction (NewTransactionHash1) et la signature de la transaction de Bob (Signature1) pour l’algorithme de vérification ECDSA qui retourne une valeur true ou false indiquant si la signature est valide.

Incidemment, clé privée d’Alice (PrivateKey0) et le nouveau hachage de transaction (NewTransactionHash1) ne sont pas stockées dans la transaction. Les valeurs de clé privées ne doivent pas être stockés sur une blockchain, et il n’est pas nécessaire pour stocker la nouvelle valeur de hachage de transaction, car il peut être recalculé chaque fois que nécessaire.

Bob s’empare son tire-bouchon et pense qu’il va transportera le Cheval Blanc lorsqu’il reçoit un appel de Skype à partir de Charlie, le Gestionnaire d’un des autres restaurants de d’Alice. Charlie souhaite offrir une bouteille spéciale de vin d’accueillir un sommelier qui vient d’être embauché. Bob accepte regretfully de céder le Cheval Blanc Charlie. Il demande la clé publique de Charlie, et le même processus est effectué à nouveau afin de transférer DigitalAsset0 propriété de Bob par Charlie.

Existe maintenant trois transactions pour DigitalAsset0: un pour Alice, pour Bob et l’autre pour Charlie. Chaque transaction a été vérifiée et intégrée à la fonctionnalité « blockchain ». Après un certain nombre de blocs supplémentaires ont été extraits au-dessus du bloc qui contient une transaction particulière, que la transaction est considérée comme confirmée (ce « plusieurs » est spécifique à l’implémentation). Ainsi, le propriétaire officiel d’une ressource numérique particulière est toujours la personne qui possède la clé privée à la transaction la plus récemment confirmée pour transaction hachage de la chaîne l’élément multimédia numérique.

La nécessité d’obtenir un Consensus

Comme vous l’avez vu, une chaîne de hachage des transactions est une structure de données qui s’efforce d’appliquer la propriété d’un élément multimédia numérique. Mais n’oubliez pas que ces transactions sont stockées sur un réseau distribué décentralisé, asynchrone, public qui est vulnérable aux attaques et exposées aux nœuds qui ne nécessairement tiennent compte des règles de protocole de blockchain (ce que l'on appelle « mauvais acteurs »). Le résultat est que les nœuds de mauvais acteur peuvent vérifier les transactions qui ne sont pas valides ou pourraient ententes sur le réseau d’ébranler l’intégrité de la fonctionnalité « blockchain ».

Le Pool de transactions pour éviter ces problèmes de l’intégrité de la transaction, toutes les transactions passent par un processus de vérification et confirmation. Chaque transaction est créée par un seul nœud quelque part sur le réseau. Par exemple, supposons que Albuquerque est Alice et Bob se tiendra à Boston. Quand Alice transfère la propriété de son élément multimédia numérique à Bob, Transaction1 est construit par un nœud dans Albuquerque, diffusion vers d’autres nœuds sur le réseau. Simultanément, les autres nœuds diffusion activement les transactions qu'ils venez de créer. Ces diffusions se propager vers d’autres nœuds sur un réseau mondial et de temps pour propager ces transactions en raison de la latence du réseau. Quelle que soit sur le réseau global une transaction l’origine, le protocole de blockchain place toutes les nouvelles transactions dans un pool de transaction des transactions non vérifiés.

Preuve de travail et de la preuve de jeu dans blockchain qui émet une récompense pour preuve de travail, les nœuds de miner sélectionnent efficacement des transactions à partir du pool de transactions. Le nœud de miner pour vérifier chaque transaction lors de la construction d’un bloc de candidat, car un bloc qui contient toutes les transactions incorrectes est rejeté immédiatement par d’autres nœuds intérêt, et cela signifie que le travail effectué par le nœud a été pour naught.

Nous avons vu dans mon article précédent que chaque nœud est dans la course pour rechercher une valeur à usage unique pour le bloc candidate qu'il a construit afin de pouvoir gagner une compensation financière et récupérer les coûts d’énergie facturés pendant la démonstration de preuve de travail. À ce jour, l’actuel pourvoir sur la blockchain MINAGE est 12,5 MINAGE (BTC), ce qui confère à environ 100 000 USD. Parfois le pourvoir est un montant de transaction et il est parfois une compensation financière ainsi que des frais de transaction. Ce qui est important de comprendre à propos de la preuve de travail est que les nœuds doivent étendre l’énergie et entraînent des équipements et les coûts d’infrastructure pour pouvoir continuer rentabilité les blocs d’exploration de données ; pour un nœud à être durable, ces coûts doivent être décalées par chiffre d’affaires.

Ses pas étonnant, puis, dès qu’un miner trouve une valeur à usage unique il diffuse immédiatement ce bloc à tous les autres nœuds sur le réseau dans l’espoir que son bloc juste-extrait est ajouté à la fin de la fonctionnalité « blockchain ». Le blockchain MINAGE étalonne sa difficulté de valeur à usage unique afin que les nouvelles valeurs à usage unique sont découverts à peu près toutes les 10 minutes, un décalage de même quelques secondes peut signifier que miner un autre peut également rechercher une valeur à usage unique et son bloc de candidat de diffusion.

Pour apprécier les implications en matière de perdre la course d’exploration de données, tenez compte des nœuds d’exploration de données qui n’a pas trouvé une valeur à usage unique dans le temps : Toute l’énergie qu’ils consacrés a été perdue. Les explorateurs qui n’a pas trouvé une valeur à usage unique n’ont aucun autre choix, mais pour arrêter le traitement en bloc en cours et tout recommencer en saisissant et vérification des transactions à partir du pool de transactions. La raison pour laquelle qu'ils doivent arrêter d’exploration de données dès qu’ils apprennent que miner un autre trouvé une valeur à usage unique est un bloc de candidat qu’un lien secondaire pour le hachage du bloc précédent sur la fonctionnalité « blockchain ». Lorsqu’un autre miner explore un bloc vérifié qui établit un lien vers le bloc précédent, les explorateurs perdante doivent créer un nouveau bloc qui référence le hachage pour le bloc qui vient d’être extraites. Les explorateurs perdante doivent ignorer également les transactions ils sélectionnés précédemment et que vous choisissez un nouveau jeu du pool de transactions, car les autres nœuds rejette tout nouveau bloc qui contient les transactions déjà incluses dans un bloc précédent.

Un nœud doit porter tous les coûts nécessaires pour prendre en charge ses équipements d’exploration de données. Comme le blockchain MINAGE a grandi, cela a conduit à un autre type de concurrence — une concurrence pour l’équipement d’exploration de données plus puissante. La plus puissance informatique peut accéder à un nœud d’exploration de données, plus la probabilité tenter de gagner de chaque course de 10 minutes à résoudre le puzzle de chiffrement requis pour rechercher une valeur à usage unique.

Une critique commune de preuve de travail est qu’il encourage la construction de centres informatiques jamais-plus puissante et l’utilisation de plus en plus de l’alimentation électrique. Le propriétaire de l’équipement informatique plus puissante sur les réseaux de blockchain preuve-de-travail-powered est donné un avantage concurrentiel. Par exemple, en-millions de dollars de centres de données fonctionnent maintenant exclusivement vers MINAGE de d’exploration de données. En fonction de digiconomist.net, blockchain consommation d’énergie de MINAGE à compter de juin 2018 est 71,12 TWh, qui est similaire à la consommation d’énergie du Chili (bit.ly/2vAdzdl).

Un autre algorithme de consensus largement indiqué est la preuve de participation, lequel récompense les nœuds présentant un intérêt économique dans le réseau. Sans doute, du preuve-de-l’enjeu plus grand est qu’il est plus faible consommation d’énergie. En outre, il ne génère pas de récompense Crypto-monnaies d’exploration de données un bloc, bien qu’il émet aucun frais de transaction comme récompense. Elle ne requerra une concurrence pour rechercher la valeur à usage unique qui résout un puzzle de chiffrement. Au lieu de cela, le réseau sélectionne de manière aléatoire un nœud qui est inscrit comme une « falsification » (analogue à miner » de MINAGE ») selon la valeur totale et l’âge de ses unités Crypto-monnaies. Détails d’implémentation différentes s’efforcent afin de garantir l’équité et caractère aléatoire des effectuer une sélection parmi forgers. Par exemple, une fois sélectionnée une falsification il souvent ne peut pas participer à un autre cycle de falsification pendant au moins 30 jours. En effet, les nœuds de falsification de grande valeur contenant les pièces Crypto-monnaies plus ancienne ont une arête sur d’autres nœuds de falsification.

Partisans de preuve de jeu Vérifiez le bon point que le coût d’exécution d’un nœud est beaucoup plus faible, afin d’encourager davantage de participation et un niveau supérieur de décentralisation. Ironiquement, toutefois, les systèmes de preuve de jeu déconseillons l’utilisation de la Crypto-monnaies que blockchain est conçu pour transact, car la dépense réduira la valeur du nœud total et réduire le risque d’être sélectionnés comme une falsification.

Une chose pour méditer est le point de blockchain expert Andreas Antonopoulos : « Preuve de travail est également une preuve de participation mais preuve de jeu n’est pas également preuve de travail ». Il explique que la preuve de travail offre une combinaison des deux algorithmes consensus en rendant le point qui tandis que les explorateurs participant à un réseau de preuve-de-travail-powered ne sont pas sélectionnées selon nombre ou l’âge des Crypto-monnaies unités, les nœuds de miner efficacement démontrer leur investissement dans le réseau par le financement de l’énergie requise pour faire partie. Par conséquent, le « jeu » dans le schéma de la preuve de travail, il affirme, est le coût d’électricité un nœud est prêt à assumer dans le but de correctement mien un bloc (Regardez Antonopoulos Accueillez une réunion de MINAGE Silicon Valley le 13 septembre 2016 : bit.ly/2MDfkA1).

La plus longue chaîne le blockchain réseau constamment étend, branches et nettoie lui-même. La vue d’ensemble de la fonctionnalité « blockchain » est appelée l’arborescence de bloc ; chaque nœud miner explore activement sur le bloc qui met fin à la chaîne la plus longue de l’arborescence bloc. Vous pourriez penser que la chaîne la plus longue est définie par la chaîne avec le plus grand nombre de blocs, mais il est réellement défini comme la séquence de blocs à partir du bloc genesis qui produit la plus grande quantité de travail. Vous pouvez dériver le travail total en additionnant la difficulté » à « chaque bloc — une mesure de comment peu probable est de découvrir une valeur à usage unique pour un bloc de candidat. Le protocole réseau gère cette valeur, qui ajuste la blockchain MINAGE chaque 2,016 blocs afin que les blocs prennent environ 10 minutes de traitement le temps de le mien. La valeur de la difficulté est stockée dans chaque bloc afin que le travail peut être calculé par les nœuds que vous essayant d’identifier la chaîne la plus longue.

Parfois, il est inévitable que deux nœuds, A et B, va vous montrer la preuve de travail par un nouveau bloc d’exploration de données en quelques secondes ou millisecondes mêmes de l’autre. Étant donné que chaque nœud ajoute son nouveau bloc à la fin de ce qu’il considère comme la plus longue chaîne avant ce bloc pour le réseau de diffusion, un branchement (branch) dans l’arborescence de bloc s’affiche. Selon l’emplacement où se trouvent ces nœuds et la bande passante de nœuds connectés sur le réseau et d’autres considérations relatives à la latence, une fraction du réseau s’affiche tout d’abord le bloc A en tant que le nouveau bloc et qui ajoutera à la fin de la chaîne. L’autres fraction du réseau bloc B le nouveau bloc ou comme qui ajoutera à la fin de la chaîne. Cela laisse certains nœuds avec bloc A et d’autres avec B de bloc en tant que le bloc de fin (consultez Figure 3).

(En haut) Une arborescence de bloc montrant une branche d’arborescence de bloc et de deux chaînes de longueur égale (du bas) ; Une arborescence de bloc affichant une branche d’arborescence de bloc et une plus longue chaîne
Figure 3 arborescence de bloc (en haut) A montrant une branche d’arborescence de bloc et de deux chaînes de longueur égale (du bas) ; Une arborescence de bloc affichant une branche d’arborescence de bloc et une plus longue chaîne

Lorsqu’un branchement se produit, comme indiqué dans la partie supérieure du Figure 3, deux chaînes sont dans l’arborescence de bloc : elles sont équivalentes dans la longueur et les deux sont valides. Cela pose problème est désactivée lorsque vous considérez que les nœuds d’exploration de données rechercher la chaîne la plus longue avant de commencer d’exploration de données, car ils doivent le hachage pour le bloc de fin de cette chaîne.

Si un miner explore C de bloc et travaillait sur la chaîne A correctement, il ajoute C de bloc à la fin de la chaîne qui a un bloc d’en tant que son bloc de fin (voir l’arborescence de bloc de bas en Figure 3). Une fois cela fait, il diffuse bloc C au réseau et autres nœuds seront affiche que la chaîne A est la plus longue chaîne. Nœuds fonctionnant sur B de la chaîne seront affiche que la chaîne A est plus longue que la chaîne de B et qu’il s’arrête d’exploration de données actuelle bloquer afin de pouvoir commencer à Explorer un nouveau bloc qui étend C de bloc de chaîne A. Dès que cela se produit, le réseau libère toutes les transactions dans le bloc de B dans la liste des transactions afin qu’ils puissent être récupérées dans un nouveau cycle de d’exploration de données.

Vous vous demandez peut-être ce qui se passe pour le MINAGE gagné par miner que créé b : bloc Ses commissions de transaction et les récompenses de bloc ne sont jamais émises. Sur le réseau de Bitcoin, ces récompenses ne sont pas données à un miner jusqu'à ce que 100 blocs ont été extraits avec succès sur le bloc en question.

Dans cet article, j’ai exploré plus en détail certaines des rubriques introduites dans mon article précédent. Ensemble, les deux articles couvrent la plupart des concepts fondamentaux que vous devez comprendre réellement pour comprendre comment fonctionnent les blockchains. Après avoir lu les deux, vous devez comprendre l’architecture de réseau distribué et décentralisé de la blockchain ; Le hachage SHA-256 ; Principes de base PKC et ECDSA ; comment les nœuds de construire des transactions sur les chaînes de hachage et numérique signatures autorisent le transfert de possession des ressources numériques ; comment les transactions dans le pool de transactions await sélection et vérification avant obtention confirmé dans un bloc ; comment les nœuds spécialisés emploient un algorithme de consensus particulier (par exemple, « explorateurs » à l’aide de la preuve de travail ou « forgers » à l’aide de la preuve de jeu) pour générer un bloc ; et comment ajoutent des nœuds sur le réseau de blocs pour la chaîne la plus longue. Si vous souhaitez en savoir plus sur les chaînes de blocs, je vous recommande vivement de nombreux livres et vidéos disponibles sur la documentation en ligne de Safari (safaribooksonline.com) et ceux publiés par Andreas Antonopoulos (antonopoulos.com).


Jonathan Waldmanest Microsoft Certified Professional ingénieur logiciel, un architecte de solutions avec une exposition technique approfondie à une variété d’industries et d’un spécialiste d’ergonomie. Waldman est un membre de l’équipe technique de Pluralsight et dirige actuellement des projets de développement de logiciels institutionnelles et secteur privé. Il peut être contacté à jonathan.waldman@live.com et le suivre sur Twitter : @jwpulse.

Je remercie l’expert technique Microsoft suivant qui a examiné de cet article : James McCaffrey


Discuter de cet article sur le forum MSDN Magazine