chaîne Bloc Note: L'épine dorsale de Bitcoin, les noeuds du réseau, la structure de données de transaction commerciale, UTXO, teneur en bloc, le principe de l'exploitation minière, la cohérence éventuelle, SPV

épine dorsale Bitcoin

  • Nous suspendons les angles des chaînes de blocs de bits de devises à une description plus particulière de
  • Il est seulement une chaîne de bloc terme général pour une classe de technologie, et l'utilisation du crédit est la technique de la chaîne de blocs de bits d'abord développé une application typique
  • Par conséquent, notre connaissance de la chaîne de bloc technologique de départ Bitcoin est un moyen nécessaire
  • Nous examinons d'abord, ce qui est épine dorsale Bitcoin?
    • chaîne premier bloc Bitcoin est un système de réseau, ce qui est l'épine dorsale de celui-ci? Il est également une grande chaîne, est équivalente à une version complète ou l'environnement de production de notre système logiciel
    • Parce que dans la formation de la chaîne de blocs de processus, et pas seulement un seul brin, dans le cas où, en fait, plusieurs points
    • Tout d'abord, le premier, est une chaîne de tests de concepts, tels que la communauté Bitcoin que nous fournissons un réseau de test, l'équivalent d'une version d'essai du logiciel, le réseau de test à l'intérieur, nous pouvons faire une opération, ne vous inquiétez pas sur ce que les actifs perte ou d'autres problèmes
    • En ce qui concerne le réseau de test est une version de test de la chaîne principale est
    • Le deuxième cas, dans le processus de formation de la chaîne de blocs (un processus de concurrence entre emballé), apparaît plus difficile à rencontrer le bloc, car le bit au moyen d'une pièce de monnaie qui est démontré pour améliorer la zone de travail bloc emballé droite
    • Ainsi, dans le processus d'emballage le droit de concourir pour l'ensemble du réseau, et aucun mécanisme ne peut être défini en même temps un nœud, il est possible d'avoir plusieurs nœuds obtenir le bon paquet
    • Eh bien, cette fois pour cela, il y a plusieurs noeuds peuvent produire plus en ligne avec la difficulté des blocs
    • Donc, chemin, comme le montre, il est en fait possible de produire bifurcation telle dans le processus
    • En Bitcoin l'intérieur, peu importe quel genre de produits de bifurcation (générer temporairement bifurcation au milieu), toujours avec la plus grande difficulté qu'une chaîne comme la chaîne principale
    • Ainsi, Bitcoin l'intérieur de la chaîne principale fait référence au réseau officiel, afin de maintenir le plus difficile qu'une chaîne est l'épine dorsale de Bitcoin, qui est vraiment efficace dans le réseau Bitcoin, une liaison de données
    • En fait, ce que nous pouvons voir dans la chaîne de bloc à l'intérieur, il est un de ces structures de stockage spécifiques et des mécanismes de consensus, de sorte que le stockage de ces données contrairement au serveur centralisé traditionnel est très clair, dans ce processus, il est possible il aura des copies de bifurcation de ces données
    • Par conséquent, l'ensemble du réseau de la chaîne de bloc, les données sont des données réellement efficaces, ont souvent besoin de passer par pour confirmer les blocs suivants
    • Le soi-disant plus grande difficulté est de maintenir le bloc dans la confirmation ultérieure d'une chaîne dans la chaîne, est la plus grande exploitation minière difficile, c'est en fait l'un des critères (protocole)
    • Bien sûr, il est pas tout dans l'autre système de chaîne de blocs de cette pratique, est de Bitcoin par exemple, est l'une de ses caractéristiques.

Bit crédits de noeud de réseau

  • Qu'est-ce que Bitcoin ce nœud? point de vue logiciel debout, il fait référence à un programme sur un ensemble de noeuds.
    • 完全节点 Anglais appelé « noeud complet » qui est sur ce noeuds, il contient toutes les fonctionnalités et Bitcoin livres de données de la chaîne de bloc, est un important support réseau Bitcoin, ou est le support le plus important.
    • En plus de noeud complet, d'autres noeuds avec des caractéristiques propriétaires respectifs spéciaux dépouillé, tels que:
      • Dédié à 挖矿的节点(ne conserver que la fonction minière)
      • 网络路由节点Pour assurer une convergence communication p2p entre les différents nœuds, il est principalement responsable des données de routage
      • 钱包Bourse bien sûr est en fait pas vraiment un nœud, mais souligne également la situation, si c'est le genre de porte-monnaie avec nœud complet pour travailler ensemble, appelé le portefeuille complet de noeud
      • Si certains porte-monnaie léger (autres formes de la version web, porte-monnaie mobile, etc.), c'est en fait un plus portefeuille appartient à un client, il peut garder nœud plein communique aux paiements de transfert réels .
  • Nous pouvons voir que dans le nœud de monnaie bits dans le réseau, le noeud est divisé en plusieurs types de
  • Nous pouvons mettre dans le temps de déploiement sont intégrées toutes ces fonctions ensemble, qui est intégré noeud
  • nœud de bit dans le réseau a besoin d'un nombre de crédits à être composés par des noeuds pointe vers les communications réseau de points

structure de données de transaction commerciale

  • Bitcoin fonction il est très simple, il est avant tout de réaliser une des opérations similaires comme la banque et le transfert d'un tel système (système)
  • Eh bien, puisqu'il est la réalisation de l'opération de transfert, il y a une transaction commerciale, les questions de transaction à la fin est ce genre de structure de données?
    • En fait, il est principalement composé de deux parties: la première partie est appelée 输入交易, dite seconde moitié输出交易
    • Nous pouvons voir dans les transactions d'entrée, qui contient les valeurs de hachage de l'entrée principale, qui est entrée sur la valeur de hachage correspondante précédente, et l'entrée de script (pour une procédure de vérification)
    • Les transactions de sortie, le premier contient la valeur des transferts (à savoir, le nombre de tours), et la sortie du script (pour certaines procédures de vérification)
    • Peut décider de convertir la propriété Bitcoins matches par l'entrée et la sortie de script, afin que nous puissions voir les soi-disant questions de transaction, pas comme exactement comme les banques, il suffit de tourner une somme, qui est inclus avec le script de vérification
    • En même temps, les affaires précédentes liens commerciaux, en fait, juste à l'intérieur de l'entreprise d'entrepôt, comme il y a dans le stockage, il y a une bibliothèque, le correspondent incontournable bibliothèque au stockage, une telle formation de la chaîne d'un tel lien
    • On peut voir la formation de lien entre un bloc non seulement l'accord entre les choses aussi formé une telle chaîne, il est aussi liée par cette valeur de hachage, pointant vers des données de transaction précédentes
    • Ceci est une structure de base des choses Bitcoin commerce

A propos UTXO

  • Regardons à une transaction commerciale plus spécifique - UTXO: transaction non dépensés sortie (sortie de transaction non dépensés)
  • Le premier exemple ci-dessous, une opération correspondant à la transaction est générée, l'entrée de la sortie de deux parties
  • Coinbase équivalent à celui généré par le système récompense des mines de plutôt que de se tourner par quelqu'un d'autre, nous pouvons voir qu'il délivre une adresse Bitcoin 12,5 à Alice
  • Ensuite, nous regardons le numéro de transaction 002 est l'article 2 des questions transactionnelles, ceci est une transaction de transfert ordinaire, il a commencé à se détourner de l'adresse Alice, rendez-vous à l'adresse de Bob
  • Dans l'entrée, il est en fait pointer vers la sortie 001 numéro de transaction, ce qui explique pourquoi la relation entre l'entrée et la sortie est un lien vers le correspondant (doit être avant la sortie, afin d'avoir l'entrée après)
  • Alice aux transferts Bob, elle a tourné six, et la récompense de l'exploitation minière d'Alice est de 12,5, ce transfert de six à Bob, elle vous donne le changement de 6,5, donc formant ainsi une nouvelle relation entre l'entrée et la sortie .
  • Pour Alice est concerné, le numéro de transaction 001 à l'intérieur de 12,5 récompense minière Bitcoin obtenue est qu'il peut être utilisé pour le coût de l'équilibre, qui est, la soi-disant sortie de transaction non dépensés, qui est, UTXO
  • On peut donc mettre UTXO vu que les soldes non dépensés, mais ce n'est pas un résumé du solde du nombre d'un tel, mais ces opérations de transaction (opérations de sortie)
  • Nous avons vu dans 002 ans de Bob a remporté six Bitcoin, alors, Bob être aussi un transfert à Lily, le numéro de transaction 003 à l'intérieur, nous pouvons voir tourner Bob deux Bitcoins à Lily, pour se retrouver zéro quatre
  • Nous pouvons voir que le nombre de transactions 001,002,003 reliés bout à bout, continuent à l'entrée et la sortie complète, entrée et sortie des liens de telle manière, et à chaque sortie sont inclus qui peut être utilisé à votre propre entrée de temps valeur, également connu sous le UTXO
  • Mais il est encore très similaire au concept maintenant dans la bibliothèque de stockage de l'entrepôt, il peut être compris en contraste

bloc de contenu contenu

1) et la zone d'en-tête du corps de bloc Bitcoin

  • bloc de contenu inclus dans les crédits de bits est très simple: il est une région d'en-tête et un corps composé de blocs
  • Dans le bloc contient six principaux domaines avant:
    • 区块版本: Le numéro de version, les protocoles actuels et des structures de données,
    • 前一个区块哈希: Un bloc de hachage dans le bloc précédent pour générer un lien pointant vers l'avant
    • 时间戳: Fait référence au temps ce bloc généré
    • 梅克尔根: Fait référence au corps de bloquer toutes les transactions de transactions pour calculer une valeur de hachage, sera détaillée plus loin dans cet article
    • 难度值: Ceci est associé à l'exploitation du Bitcoin, dans le processus de l'exploitation minière, il est effectivement effectué par deux valeurs de hachage consécutive est calculée pour obtenir une cible plus difficile à atteindre l'en-tête de la zone, cette valeur est difficile à égaler l'exploitation des qualifications
    • 随机数: Sont également associés à l'exploitation minière, car nous avons besoin d'utiliser la force brute comme similaire à la zone d'en-tête de données sera double calcul de hachage continu, dans lequel le processus de calcul de hachage il, continuera à correspondre à un nombre aléatoire comme les paramètres de calcul de hachage. Lorsque l'on calcule la valeur conformément à la difficulté du bloc cible, nombres aléatoires que nous utilisons seront crédités sur la zone à l'intérieur l'en-tête.
  • Corps de bloc est une somme de transaction de la transaction

2) racine détaillée Merkel (arbre)

  • Pour comprendre la racine Merkel, nous examinerons une structure d'arbre appelé arbre Meckel
  • Nous partons du principe que ce bloc il y a cinq questions transactionnelles, à savoir: A, B, C, D, E,
  • 5 cette transaction commerciale qui ont été calculés valeur de hachage générée par A, B, C, D, E 5 valeurs de hachage
  • 5 valeur de hachage puis appariés une nouvelle fois pour calculer la valeur de hachage: Une combinaison avec B, la liaison C et D, E seulement vous, et qui est combiné avec leur propre pour créer une nouvelle valeur de hachage
  • La nouvelle valeur de hachage une fois ensemble apparié à nouveau jusqu'à ce que calculer la racine, chaque nœud de l'arbre Merkel à l'intérieur, chaque nœud d'un arbre, en fait, sont la valeur de hachage, l'arbre est aussi appelé Merkel Ha arbre grec
  • Merkel alors la racine (ou arbre) quel est-il? Nous savons que le bloc de données est la nécessité d'un transfert continu des noeuds Bitcoin, le processus du transfert d'endommagement des données utiles ou d'autres problèmes peuvent survenir
  • Quand un noeud (noeud de réception) reçoit le bloc, il va bloquer une fois de transaction commerciale pour calculer la valeur de hachage pour restaurer ce que l'arbre Merkel
  • Donc, si l'en-tête racine calculée Merkel Merkel dans la zone racine et incohérente, il montre acquis dans une transaction commerciale il y a un problème, cette fois-ci, nous pouvons revenir à la fin à travers laquelle une racine Merkel les activités transactionnelles sur la question
  • Par exemple, nous avons des opérations de trading problème C, puis par Merkel vue racine, il est N1 et N2, où une valeur de hachage sur le problème? Donc, par comparaison, si cela se trouve à N1 avec la valeur de hachage de l'arbre original qui Merkel est pas le même
  • Ensuite, le long de cette ligne de regard, nous sommes venus pour voir qu'il ya un problème H1 ou H2, H2 est que si vous trouvez un problème, puis regardez à nouveau selon cette ligne de C ou D est un problème
  • Après un tel retour en arrière constante, vous pouvez trouver sur des données de vitesse relativement élevée dans laquelle une partie des données en question, de sorte que vous ne avez besoin de re-télécharger les données de transaction de bloc entier, mais seulement pour aller télécharger la question correspondante que
  • Tel est le rôle de l'arbre Merkel, ce qui signifie qu'il est utilisé pour prouver l'intégrité des données, et peut être un moyen plus efficace de trouver le problème des blocs de données

3) la validation horodatage des règles

  • En général, dans le centre de l'architecture logicielle du serveur du temps en question est fondamentalement relativement facile à résoudre, car le temps peut être unifiée à partir d'un serveur de temps (à partir du serveur lui-même)
  • Sans système de chaîne de blocs en termes de serveur dédié, bien sûr, nous avons également Bitcoin spécifiquement déployé dans le temps de service réseau, il est également possible
  • Depuis le réseau Bitcoin lui-même, il est un point d'une telle architecture de réseau, par conséquent, le fuseau horaire où chaque noeud est également susceptible d'être différent
  • Bits du Horodatage règles de jeton de validation:
    • Bitcoin En général, il n'y a pas de serveur de temps spécifique, mais nous pouvons aller au serveur pour déployer un tel service pour le Bitcoin
    • L'horodatage moyen avant le nouveau bloc doit être supérieur à l'horodatage dans le bloc de bits 11 pièces, et moins que les deux heures
    • Ceci est une des règles de validation pièce horodatage de bits
  • Depuis le point de cette architecture, nous ne pouvons pas aller pour obtenir une certaine unité de temps
  • Vous ne pouvez avoir un tel règles de validation, pour en faire un horodatage pour chaque bloc ne sera pas une différence très très grand

principes de processus miniers

  • En fait, il Bitcoin minière fait partie d'un mécanisme de consensus
  • Pour un tel point à un logiciel de réseau de points, ses données sont pas une seule référence faisant autorité pour faire un centre de service
  • Il doit être un mécanisme, chacun sur une période de temps, sélectionnez une donnée de packager les données emballés emballeur sous réserve de synchroniser la cohérence des données avec d'autres noeuds
  • Qui emballer chaque fois dans un certain temps? Dans Bitcoin, qui est renforcée par un mécanisme qui est la charge de travail a prouvé un tel mécanisme
  • Cet effort avéré être l'image du processus est appelé 挖矿, dans ce processus, les opérateurs devront consommer beaucoup de puissance informatique pour calculer, tout comme le travail des mines
  • Ce que cela signifie en permanence bloc de calcul de la valeur de hachage (bien sûr, a fait deux hachage, double hachage)
  • Nous sommes le seul fait référence au calcul de la double zone d'en-tête hash-tête dans la surface, pas tous les paramètres est réglable, par exemple des blocs de hachage, un horodatage, les racines Merkel, etc.
    • Dans ces différents paramètres, la racine Merkel peut changer, parce que si nous avons ajusté le nombre de blocs à l'intérieur du corps de la transaction est une transaction ou une commande, puis la racine Merkel va changer, si Mei Kerr est l'un des principaux paramètres de calcul de la racine de participation (ou la participation à l'exploitation minière, a dit que les principaux paramètres calculés calcul de hachage)
    • Bien sûr, l'horodatage peut être réglé, mais pas une grande plage de réglage
    • D'autres paramètres, il est principalement nombre aléatoire, relativement parlant, la plage de réglage est relativement importante, il est préoccupé par ce calcul, il est plus facile de trouver une telle valeur qualifiée dans une large gamme de
  • Donc, quel que soit le réglage paramètre calculé par cet ajustement, de sorte que les résultats correspondent à la difficulté d'un bloc cible, une fois le match réussi, même en cas de succès ah minier, même la fin
  • extraction dite se réfère à des paramètres du procédé sur la composition de la région constante du calcul de hachage à double tête
  • En Bitcoin l'intérieur, l'algorithme de hachage SHA256 se réfère principalement un tel algorithme

Le réseau de cohérence finale

  • Le soi-disant cohérence éventuelle des données se réfèrent à leurs livres Bitcoin chaque nœud du réseau auquel ils ont est pas tous les mêmes
  • Bitcoin lui-même va bifurcation se produit, il est difficile d'une manière particulièrement claire, de sorte que les livres dans les données Bitcoin toujours toujours cohérent, alors cela est difficile à faire
  • En outre, le principe FLP, nous savons que l'Internet réseau asynchrone, car chaque fois qu'un nœud est en panne, donc une variété de dommages arrive
  • Ainsi, le réseau Bitcoin, il ne peut pas atteindre en temps réel déterministe cohérente, mais seulement pour atteindre une consistance finale
  • Par exemple, nous transférons une somme de Bitcoin, comme notre dossier dans ce bloc de transaction transfert n ° 5
  • Cette fois-ci, nous recommandons, si vous voulez assurer la sécurité, il attend un accusé de réception six blocs, c'est-à-dire jusqu'à 11 blocs générés après 5 + 6 = 11 jusqu'à ce produit après les 11 premiers blocs
  • Si nous traitons avant que la transaction est encore dans la chaîne principale, il montre fondamentalement aucun problème
  • Bien sûr, ce problème est non seulement une probabilité, ne peut dire que la possibilité de falsification a été très faible, de sorte que tant que cela est basé sur un réseau asynchrone, la cohérence essentiellement à terme plutôt que la certitude de la cohérence de temps en temps

A propos de SPV

  • SPV: Paiement simplifié la vérification de paiement simple, vérification
  • Le concept des transferts réseau Bitcoin sera payé de cette vérification des transactions d'affaires et de vérification transaction, qui est relativement facile de confondre les deux
  • vérification de paiement: que j'ai payé une somme d'argent (Bitcoin), est de vérifier la légitimité d'un paiement qui se produit, par exemple, mon équilibre est suffisant, je paie ce qui en soi est non juridique
  • Transaction de vérification: vérification est le plus complet, il sera l'un des plus validation complète des données sur la base des livres.
  • Pour la vérification de paiement, parce que je veux juste prouver que ce paiement est présent dans le bloc, alors il est pas nécessaire avec des livres complets pour vérifier les données
  • Comme les données sont souvent pleines de livres au fil du temps sera très grande, Bitcoin a atteint une taille de plus de 200 G
  • Ensuite, pour la vérification de paiement, uniquement en raison de tester si le paiement de la transaction existe, par conséquent, il ne peut être basée sur un bloc en place toute la base de cette vérification sans livres
  • Le processus de vérification de SPV:
    • Si nous devions payer un peu d'argent à quelqu'un, nous vérifions maintenant
    • Comme la seule région à en-tête acquire, le corps ne reçoit pas le bloc, donc nous ne pouvons y arriver alors la zone d'en-tête de données de plusieurs champs
    • tête première capture (en-tête fait référence à capturer la plus longue chaîne, est la plus grande difficulté qui se réfère également à un squelette de la chaîne, qui est l'en-tête de la zone de colonne vertébrale)
    • Après avoir obtenu la zone d'en-tête, nous avons calculé la transaction commerciale (opérations de paiement d'affaires) valeur de hachage, regardez l'entreprise de négociation de blocs dans les opérations de paiement de la valeur de hachage
    • Plus tard trouvé, vous pouvez obtenir calculer la racine de la valeur de hachage Merkel
    • Pour calculer la racine Merkel, une approche doit être calculée séparément pour chaque valeur de hachage d'une chose, alors calculé par la procédure générale
    • Un deuxième type est que nous obtenons la valeur de hachage arbre noeud intermédiaire Merkel, il n'y a pas besoin d'aller un par un calculé séparément pour chacune des choses
    • Nous avons donc fait sortir l'une des branches de l'arbre, on peut calculer directement la racine Merkel
    • Ensuite, nous comparons la zone d'en-tête juste à la racine Merkel, si les deux sont égaux, cela signifie que les affaires de cette opération de paiement est là, sinon égal, il montre qu'il n'y a pas
    • Ceci est une vérification de paiement relativement simple
Publié 432 articles originaux · Praise gagné 251 · vues 710 000 +

Je suppose que tu aimes

Origine blog.csdn.net/Tyro_java/article/details/104814639
conseillé
Classement