Révélation du mystère de l'exploitation minière

DébutantJul 15, 2024
Cet article fournit une introduction détaillée au processus de « mining » en blockchain. En faisant un parallèle avec les activités minières traditionnelles, il explique le concept de base de l'exploitation minière numérique, qui consiste à utiliser des ressources informatiques pour résoudre des problèmes mathématiques pour la validation des transactions et l'émission de nouvelles devises.
Révélation du mystère de l'exploitation minière

forward the original title ‘白话区块链三:揭开挖矿神秘的面纱——挖矿是什么?为什么要挖矿?谁是我们买不起显卡的罪魁祸首?’

L'un des concepts les plus familiers liés à la blockchain pour tout le monde est probablement l'extraction minière. De nombreuses personnes ont peut-être entendu parler de l'extraction minière à de nombreuses reprises, mais ne sont pas tout à fait sûres de ce qu'elle implique réellement. Dans cette section, nous interrompons notre programmation régulière pour d'abord introduire l'extraction minière.

un bref récapitulatif du contenu de “plain blockchain 1: introduction to bitcoin (le pionnier de la révolution blockchain et le challenger de la monnaie souveraine),” où satoshi nakamoto a conçu le système monétaire du bitcoin pour lier les récompenses de la tenue de comptes à l'émission de monnaie. cette approche permet à l'émission de monnaie d'être automatisée grâce au processus de tenue de comptes, résolvant ainsi le problème de l'émission de monnaie tout en encourageant les tenanciers de comptes à participer activement.

1. qu'est-ce que le mining?

dans le monde réel, l'exploitation minière implique des mineurs utilisant divers outils pour extraire des métaux précieux cachés dans les roches des mines. les mineurs extraient de la valeur de ces métaux rares cachés dans la nature par le travail physique.

pour les projets blockchain avec des récompenses pour la tenue de livres (généralement des projets de monnaie numérique), les nœuds du réseau dépensent des ressources informatiques pour résoudre des problèmes. Une fois qu'ils trouvent la solution, ils empaquettent le bloc et reçoivent une récompense sous forme de monnaie nouvellement émise. Ce processus est analogue à l'extraction de métaux précieux tels que l'or à partir du minerai, d'où le terme couramment utilisé de «minage». Ici, les tenanciers de livres sont les mineurs, qui rivalisent pour empaquetter les blocs à l'aide de matériel et d'électricité, ce qui entraîne la création d'une nouvelle monnaie.

2. pourquoi l'exploitation minière est-elle nécessaire?

Le minage sert à deux fins principales : valider les transactions récentes en les regroupant en blocs et en les reliant à la chaîne de blocs, et émettre une nouvelle devise en récompensant les gardiens de livre. Ci-dessous sont les fonctions détaillées du minage :

  1. sélection des comptables : une stratégie est nécessaire pour sélectionner les véritables comptables parmi de nombreux candidats. le résultat du minage est utilisé comme base pour cette sélection, garantissant que chaque transaction est reconnue par tous les participants, atteignant un consensus à travers le réseau.
  2. vérification de la transaction: chaque transaction bitcoin doit être vérifiée par les mineurs dans le réseau. ce processus confirme la validité de la transaction, y compris:
    • veiller à ce que le format et la taille de la transaction respectent les spécifications.
    • vérifier la validité de la signature de chaque transaction pour s'assurer qu'elle a été initiée par l'utilisateur possédant la clé privée associée.
    • vérifier que le montant d'entrée dépasse le montant de sortie (une partie du montant étant prélevée sous forme de frais), en s'assurant que les jetons utilisés pour le paiement n'ont pas été dépensés deux fois.
    • confirmer que la transaction n'a pas été inclus précédemment dans un bloc.
  3. l'émission de nouvelle monnaie : l'exploitation minière est également le moyen par lequel de nouveaux bitcoins entrent en circulation. Lorsqu'un mineur réussit à exploiter un nouveau bloc, il reçoit une certaine quantité de bitcoins en récompense. Ce mécanisme de récompense incite non seulement les gens à participer à l'exploitation minière, mais sert également de méthode d'émission de bitcoins. Cette méthode d'émission de monnaie assure une augmentation régulière et contrôlée de la circulation de la monnaie, ce qui contribue à gérer l'inflation.
  4. encourager la participation: le mécanisme de récompense motive davantage de personnes à participer à la maintenance du système monétaire, favorisant ainsi son développement continu et robuste.
  5. améliorer la sécurité et la décentralisation du réseau: les récompenses de l'extraction minière attirent un grand nombre d'extractionneurs, ce qui entraîne une puissance de calcul distribuée. Cette décentralisation garantit qu'aucune entité unique ne peut contrôler 50% de la puissance de calcul, améliorant ainsi la transparence et la sécurité du système. En adhérant au principe de la chaîne la plus longue, on améliore encore la sécurité du système.

3. pourquoi les mineurs sont-ils prêts à participer à l'exploitation minière?

Les mineurs sont incités à participer à l'extraction car ils reçoivent des récompenses substantielles pour avoir réussi à empaqueter un bloc sur la chaîne de blocs. Ces récompenses proviennent de deux sources principales :

  • récompenses en bloc (nouvelle devise émise) : le système monétaire émet automatiquement une nouvelle devise, qui va entièrement au mineur. par exemple, dans le système bitcoin, les mineurs reçoivent actuellement 3,125 bitcoins pour chaque bloc qu'ils emballent. étant donné que chaque bitcoin est valorisé à environ 65 000 $, l'emballage d'un seul bloc peut rapporter plus de 200 000 $, soit environ 1,47 million de RMB.
  • frais de transaction payés par les utilisateurs : en raison de la capacité limitée d'un bloc à contenir des enregistrements de transaction, certains utilisateurs paient des frais de transaction pour inciter les mineurs à donner la priorité à leurs transactions pour une confirmation plus rapide. lors de la sélection des transactions à inclure dans le bloc à partir du pool, les mineurs ont tendance à choisir celles avec des frais plus élevés. un bloc peut contenir des milliers de transactions, et tous les frais de ces transactions vont au mineur, représentant une autre source de revenus importante. à mesure que de plus en plus de personnes utilisent le bitcoin pour les transactions, la concurrence pour l'inclusion dans les blocs s'intensifie, ce qui entraîne des frais plus élevés que les utilisateurs sont prêts à payer.

avec le temps, les récompenses en bloc diminueront (par exemple, en raison du mécanisme de division par deux du bitcoin, où la récompense est divisée par deux environ tous les quatre ans). finalement, une fois que les 21 millions de bitcoins auront été minés, prévu vers l'année 2141, la récompense automatique en bloc cessera d'exister, et les frais de transaction deviendront la principale source de revenus pour les mineurs.

conseils

bitcoin génère un nouveau bloc environ toutes les 10 minutes. initialement, chaque nouveau bloc produit 50 bitcoins. cette récompense est réduite de moitié tous les quatre ans, et à ce jour, il y a eu quatre de ces événements de réduction de moitié. actuellement, chaque bloc génère 3,125 bitcoins, avec la réduction de moitié la plus récente ayant eu lieu en avril 2024. la prochaine réduction de moitié est prévue vers 2028. vers 2141, bitcoin atteindra sa limite d'émission.

Les frais de transaction sont influencés non seulement par l'offre et la demande, mais aussi par la taille de la transaction, car les frais sont proportionnels à l'espace occupé par la transaction dans le bloc.

4. comment participer à l'exploitation minière

Pour les mineurs, participer au minage est simple. Téléchargez un client de portefeuille de crypto-monnaie, et à l'intérieur du client, cliquez sur le bouton de minage pour commencer à miner.

pour les projets blockchain avec des récompenses en blocs, l'algorithme de minage est généralement écrit dans un script intégré au portefeuille. les mineurs n'ont qu'à cliquer sur un bouton pour démarrer le script.

l'algorithme de minage est déterministe, ce qui signifie que tant que les mineurs exécutent continuellement l'algorithme, ils obtiendront éventuellement un résultat. cependant, en raison des ressources informatiques variables, le temps nécessaire pour calculer ce résultat peut différer d'un mineur à l'autre. une fois qu'un nœud calcule la valeur cible, les efforts des autres mineurs pendant cette période sont rendus futiles, entraînant des rendements négatifs en raison des ressources physiques dépensées.

pour éviter les efforts inutiles, les mineurs regroupent souvent leurs ressources de calcul en rejoignant un nœud de pool de minage. Ce nœud fonctionne comme n'importe quel autre nœud mais dispose d'une puissance de calcul considérablement plus importante. Lorsque le pool réussit à miner un bloc, les récompenses sont réparties entre les mineurs participants en fonction de leurs ressources de calcul contribuées. Il est important de noter que sur la blockchain, le mineur enregistré comme empaquetant le bloc est le nœud de pool de minage, tandis que les mineurs individuels reçoivent leur part des récompenses allouées par le pool, pas directement du système de monnaie.

Bitmain, une entreprise qui fabrique des puces minières spécialisées à haute efficacité, a solidifié le rôle des pools de minage, contribuant ainsi à la centralisation du pouvoir de tenue de livres.

5. les détails du puzzle de minage

différents projets blockchain peuvent avoir des puzzles miniers et des niveaux de difficulté variables. ici, prenons bitcoin comme exemple. l'algorithme minier utilisé par bitcoin s'appelle proof of work (pow). l'essence de cet algorithme est qu'une certaine quantité de travail doit être dépensée pour prouver un résultat.

le puzzle de minage n'est pas un problème mathématique traditionnel mais consiste à trouver un nombre aléatoire, appelé nonce. Ce nonce, lorsqu'il est combiné avec les données du bloc et traité par une fonction de hachage, doit produire une valeur de hachage qui satisfait une condition spécifique. En général, cette condition exige que la valeur de hachage soit inférieure à une valeur cible (ou, de manière équivalente, que les premiers n bits de la valeur de hachage soient nuls). L'équation est la suivante: hachage(nonce+données_bloc)≤cible\text{hachage}(\text{nonce} + \text{données_bloc}) \leq \text{cible}hachage(nonce+données_bloc)≤cible

bitcoin utilise la fonction de hachage sha-256, qui convertit n'importe quelle longueur d'entrée en une sortie de longueur fixe de 256 bits (équivalent à 64 chiffres hexadécimaux ou 32 octets). la sortie est presque aléatoire mais garantie d'être la même pour la même entrée. le minage implique de changer continuellement le nonce et de hacher les données d'en-tête de bloc en utilisant sha-256 jusqu'à ce qu'une valeur de hachage qui satisfait la condition cible soit trouvée.

par exemple, une valeur de hachage sha-256 avec les 30 premiers bits étant des zéros: 000000000000000000000000000000111111010000011011000100100110111011000110100010011011000110100010110110101010011101011010100100011011010001111101001111110101001101111101011110011100011110011110000111000100110000001011011010001110011100110010111010010010010001101010110010110

la conversion de ceci en hexadécimal donne une valeur commençant par sept zéros: 00000003f41b126ec689b1a2da9d5d46d13d0fd1bece47983d59c5d32eb4ac9000000003f41b126ec689b1a2da9d5d46d13d0fd1bece47983d59c5d32eb4ac9000000003f41b126ec689b1a2da9d5d46d13d0fd1bece47983d59c5d32eb4ac90

En simplifiant, la probabilité de trouver un hachage avec les premiers n bits étant zéro est de 12n\frac{1}{2^n}2n1​. Plus n est grand, plus il y a de bits à zéro et plus la probabilité est faible :

  • n=10n = 10n=10: 1 sur 1 024
  • n = 20n = 20n = 20: 1 sur 1 048 576
  • n=30n = 30n = 30: 1 sur 1,073,741,824
  • n=40n = 40n=40: 1 sur 1,099,511,627,776
  • n=50n = 50n=50: 1 sur 1,125,899,906,842,624

avec n jusqu'à 256, trouver une valeur de hachage avec la puissance de calcul humaine actuelle, en excluant les ordinateurs quantiques, est pratiquement impossible avant que la Terre cesse d'exister.

en raison des propriétés de sha-256, la seule méthode est la force brute, qui consiste à essayer continuellement différents nonces jusqu'à ce que la condition soit satisfaite. cette nécessité d'équipements informatiques haute performance est la raison pour laquelle l'exploitation minière nécessite de tels appareils.

puisque vous ne pouvez pas prédire la valeur de hash générée en ajoutant le nonce aux données de bloc et en les passant à travers sha-256, le processus est entièrement aléatoire. par exemple, si la valeur de hash cible est 10 000, vous ne pouvez pas savoir quel nonce combiné aux données de bloc donnera une valeur de hash inférieure à 10 000. cette nature imprévisible et aléatoire signifie que les mineurs doivent énumérer les possibilités jusqu'à ce que la condition soit satisfaite. si plusieurs valeurs remplissent la condition, la plus petite valeur de hash est choisie car une plus petite valeur de hash indique une difficulté plus élevée et une probabilité plus faible d'occurrence.

vérifier si une valeur de hachage générée satisfait la condition est facile, ne nécessitant qu'une seule opération de comparaison. cependant, trouver une valeur de hachage inférieure ou égale à la valeur cible ne peut être réalisé que par une énumération par force brute. cette caractéristique, où vérifier un résultat est facile mais trouver le résultat est difficile, est connue sous le nom d'asymétrie computationnelle.

6. simulation de code de l'algorithme de mining

Le code suivant simule le processus d'extraction. Il commence par une chaîne de données d'en-tête de bloc « geekbang » et effectue une recherche progressive à partir d'une valeur de nonce de 10 000 jusqu'à ce qu'il trouve un nonce qui satisfait la condition spécifiée.

Voici un script python qui démontre le processus de minage:

import hashlibdef main():    base_string = "geekbang"    nonce = 10000    count = 0    while true:        target_string = base_string + str(nonce)        pow_hash = hashlib.sha256(target_string.encode()).hexdigest()        count += 1        if pow_hash.startswith("0000"):  # premiers 4 chiffres hexadécimaux sont 0, équivalent aux premiers 16 bits étant 0            print("hash:", pow_hash)            print("nonce:", nonce, "temps de numérisation:", count)            break        nonce += 1if __name__ == '__main__':    main()

lorsque l'exigence est que les 4 premiers chiffres hexadécimaux du résultat du hachage soient nuls (équivalent à ce que les 16 premiers bits soient nuls), le nombre de calculs est d'environ 58 000. si l'exigence est augmentée pour que les 5 premiers chiffres soient nuls, le nombre de calculs augmente à 1,23 million. lorsque l'exigence est que les 7 premiers chiffres soient nuls, le nombre de calculs atteint 160 millions. cela illustre que chaque zéro supplémentaire dans le préfixe de hachage augmente le calcul d'environ 16 fois.

voici les résultats pour différentes conditions cibles:

les quatre premiers chiffres hexadécimaux sont zéro (16 bits):

import hashlib

def main():

base_string = "geekbang"nonce = 10000count = 0while true:    target_string = base_string + str(nonce)    pow_hash = hashlib.sha256(target_string).hexdigest()    count = count + 1    if pow_hash.startswith("0000"): # 前4个16进制位是0,相当于前16个比特位是0    print pow_hash    print "nonce: https://s3.ap-northeast-1.amazonaws.com/gimg.gateimg.com/learn/51d786353cf4ac886dbb869fc7abf883dac67ceb.png"  scan times: https://s3.ap-northeast-1.amazonaws.com/gimg.gateimg.com/learn/4ebdb22f10c27f8797a1c2ae7bbbd78f40220ed4.png"" % (nonce, count)    break    nonce = nonce + 1

sinom == ‘principal‘:

main()

comme on peut le voir, augmenter le nombre requis de zéros de tête dans le hachage augmente considérablement le nombre de tentatives nécessaires, suivant un schéma de croissance exponentielle. cela démontre la difficulté de calcul et les ressources nécessaires pour le minage, soulignant le besoin de dispositifs informatiques haute performance dans le processus de minage.

7. ajustement dynamique de la difficulté

Pour garantir qu'un bloc est généré environ toutes les 10 minutes, le système Bitcoin ajuste la difficulté de minage en modifiant le nombre de zéros en tête requis dans la valeur de hachage. Ce mécanisme d'ajustement de la difficulté est une partie cruciale du système Bitcoin. Il évalue le temps nécessaire à la génération des 2016 derniers blocs, qui devrait idéalement être d'environ deux semaines. Si ces blocs ont été minés en moins de deux semaines, la difficulté augmente en ajoutant plus de zéros en tête (ce qui abaisse la valeur cible). En revanche, s'il a fallu plus de deux semaines, la difficulté diminue en réduisant le nombre de zéros en tête (ce qui élève la valeur cible). Ce mécanisme garantit que le temps de génération d'un bloc reste d'environ 10 minutes, même si le taux de hachage total du réseau fluctue.

ce mécanisme de réglage de la difficulté, conçu par le créateur de bitcoin satoshi nakamoto, a été prévu dès le départ pour s'adapter automatiquement à la puissance de calcul totale du réseau. Il maintient un rythme d'extraction stable et empêche la monnaie d'être émise trop rapidement, ce qui pourrait perturber l'économie du marché.

8. processus d'exécution de l'algorithme de minage

différents projets blockchain peuvent avoir des algorithmes de minage variables. ici, nous décrivons le plus célèbre d'entre eux: l'algorithme de minage de Bitcoin.

le processus d'exécution de l'algorithme minier sous-jacent de Bitcoin est le suivant:

  1. sélection de transactions: choisissez plusieurs transactions à partir du pool de mémoire (en privilégiant généralement celles avec des frais plus élevés). Générez automatiquement une transaction spéciale (souvent appelée transaction Coinbase) où le destinataire est le mineur, et le montant de la transaction est la récompense de bloc plus tous les frais de transaction sélectionnés. Placez cette transaction spéciale au début des transactions sélectionnées pour former l'ensemble de transactions pour le bloc à être empaqueté.
  2. construction de l'arbre de Merkle: construire un arbre de hachage de Merkle à partir de l'ensemble de transactions. Un arbre de Merkle est un arbre binaire où chaque nœud feuille stocke le hachage d'une transaction, l'identifiant et l'indexant de manière unique. Chaque nœud supérieur stocke le hachage combiné de ses nœuds enfants, aboutissant au nœud racine. Le nœud racine identifie de manière unique l'arbre de Merkle et, par extension, toutes les transactions.
  3. construction de l'en-tête de bloc : assembler l'en-tête de bloc à partir de la valeur de racine de Merkle, d'un nonce, de la version de bloc, du hachage du bloc précédent, de l'horodatage, de la cible de difficulté et du nonce. La taille de l'en-tête de bloc est de 80 octets.
  4. hacher l'en-tête de bloc : modifier continuellement la valeur du nonce dans l'en-tête de bloc et effectuer un hachage double sha-256 sur le contenu de l'en-tête de bloc (c'est-à-dire sha256(sha256(en-tête_de_bloc))). comparer le hachage obtenu avec la valeur cible actuelle du réseau. si le résultat est inférieur à la valeur cible (indiquant que les premiers n bits sont nuls), le puzzle est résolu et la preuve de travail est terminée.
  5. diffusion du bloc: envoie du bloc nouvellement extrait aux nœuds voisins, les informant que le bloc a été extrait avec succès.
  6. vérification et propagation: lors de la réception du nouveau bloc, les autres nœuds effectuent un double hachage sur l'en-tête du bloc pour obtenir le hachage du bloc. ils vérifient que les premiers n bits du hachage du bloc sont nuls, reconnaissent le bloc, cessent les calculs pour ce bloc et le propaGate.io à leurs nœuds voisins.

la taille de chaque champ de l'en-tête de bloc est la suivante:

https://time.geekbang.org/column/article/5963

alt = "" >

la structure de l'arbre de Merkle est la suivante:

大后端私房菜]. alt="">

9. controverses dans l'exploitation minière

La principale controverse entourant l'exploitation minière concerne les algorithmes de preuve de travail (PoW) utilisés par Bitcoin et ses dérivés. Ces algorithmes obligent les mineurs à allouer d'importantes ressources informatiques pour résoudre des problèmes sur lesquels le réseau est d'accord. De nombreuses personnes travaillent simultanément sur ces calculs, mais seule la première à résoudre le problème obtient la récompense. Les ressources informatiques et électriques des autres participants sont donc effectivement gaspillées, sans générer de valeur supplémentaire.

Il existe deux voies principales pour optimiser ce gaspillage de ressources :

  1. passage à des algorithmes moins gourmands en ressources : par exemple, Ethereum est passé de l'algorithme de preuve de travail (PoW) à l'algorithme de preuve d'enjeu (PoS), ce qui réduit considérablement le gaspillage de ressources.
  2. en utilisant des ressources électriques inutilisées: les nœuds de minage expérimentent l'utilisation de sources d'énergie renouvelable, comme l'énergie éolienne, pour les opérations de minage. Un autre développement important est l'utilisation du gaz naturel autrement gaspillé. De plus, certaines institutions explorent des moyens de recycler la chaleur excédentaire générée par le minage de Bitcoin.

10. questions

Quelle est la valeur de l’exploitation minière ? Cela semble être un gaspillage de ressources et dénué de sens pour la société.

En revenant sur la section «Pourquoi l'exploitation minière est-elle nécessaire?» de cet article, la signification directe de l'exploitation minière est qu'elle soutient l'émission de devises numériques. Les récompenses minières incitent davantage de personnes à participer à la maintenance de devises numériques, les rendant plus stables. De plus, les algorithmes miniers maintiennent la cohérence des transactions au sein des systèmes de devises numériques, les rendant plus robustes et moins susceptibles d'attaques internes et externes.

La signification indirecte de l'exploitation minière est dérivée des devises numériques elles-mêmes. Les devises numériques créent un système monétaire mondial et sans confiance où des transactions sécurisées peuvent avoir lieu sans avoir besoin d'institutions centralisées, évitant les inconvénients de la centralisation. Leur nature mondiale permet également des transactions transfrontalières efficaces et peu coûteuses.

Les rendements miniers vont-ils diminuer au point de tomber en dessous des coûts, ce qui entraînerait l'arrêt de l'exploitation minière et la cessation des transactions?

Il est courant de craindre que les gains miniers dépendent uniquement des récompenses du système, qui diminuent avec le temps. Cependant, le minage génère également des revenus importants provenant des frais de transaction. À mesure que les monnaies numériques gagnent en acceptation, le marché des transactions de monnaie numérique va s'étendre. Cette augmentation du volume des transactions intensifiera la concurrence pour l'inclusion des blocs, ce qui entraînera des frais plus élevés que les utilisateurs sont prêts à payer pour donner la priorité à leurs transactions. Par conséquent, les mineurs peuvent continuer à gagner des frais de transaction substantiels, garantissant la viabilité continue du traitement des transactions.

Si les coûts de minage dépassent les frais de blockchain, le minage peut-il continuer?

Les frais de transaction compenseront-ils les coûts de minage ?

oui, les frais de transaction peuvent aider à compenser les coûts de minage. Comme les récompenses de bloc diminuent avec le temps, les frais de transaction deviennent une source de revenus cruciale pour les mineurs. Cela garantit que même si les coûts d'électricité sont élevés, les mineurs peuvent toujours maintenir leurs opérations grâce aux frais payés par les utilisateurs pour le traitement des transactions.

Que se passe-t-il si plusieurs mineurs résolvent l’énigme simultanément ?

Est-ce que plusieurs mineurs partagent les récompenses de minage s'ils diffusent simultanément leurs nouveaux blocs ?

non, si plusieurs mineurs résolvent le puzzle et diffusent leurs nouveaux blocs en même temps, cela crée une fourchette temporaire dans la blockchain. Voici comment cela fonctionne :

  1. Fourches temporaires : lorsque certains nœuds reçoivent deux blocs valides de la même hauteur, ils stockent temporairement les deux blocs, ce qui cause une fourche temporaire dans la blockchain.
  2. résolution des forks: à mesure que de nouveaux blocs sont extraits, les nœuds continueront de se construire sur la chaîne la plus longue. Le réseau converge finalement vers une seule chaîne, en abandonnant la ou les plus courtes.
  3. choisir la chaîne principale: les nœuds suivent la chaîne la plus longue (celle avec le plus de preuves de travail accumulées). Le mineur dont le bloc finit sur la chaîne la plus longue reçoit la récompense, tandis que l'autre bloc devient un bloc « orphelin ».

exemple:

  • le mineur a et le mineur b extraient tous deux un bloc à la même hauteur et le diffusent.
  • certains nœuds reçoivent d'abord le bloc du mineur a, tandis que d'autres reçoivent le bloc du mineur b.
  • les deux chaînes existent temporairement.
  • Lorsque le prochain bloc est miné, s'il est ajouté à la chaîne du mineur A, cette chaîne devient la plus longue et les nœuds l'adopteront comme chaîne principale.
  • Le mineur A reçoit la récompense et le bloc du mineur B est rejeté.

Pourquoi les nœuds disposant de plus de 50% de la puissance de hachage ne trichent-ils pas ?

qu'est-ce qu'une attaque de 51% et pourquoi les super nœuds ne trichent-ils pas ?

Une attaque de 51 % se produit lorsqu'une seule entité ou un groupe contrôle plus de 50 % de la puissance de calcul du réseau. Voici pourquoi les super nœuds ne trichent généralement pas:

  1. impossibilité pratique : posséder 51 % de la puissance de hachage totale du réseau est hautement improbable en raison de l'ampleur et de la décentralisation des principales cryptomonnaies comme le bitcoin.
  2. validation du réseau : même si un super nœud tente de tricher, tous les nœuds valident chaque bloc indépendamment. Les transactions invalides ou les tentatives de double dépense sont rejetées par le réseau, rendant les efforts du super nœud vains.
  3. réputation et incitations économiques: les super noeuds ont plus à gagner en maintenant l'intégrité de la blockchain qu'en l'attaquant. Des attaques réussies pourraient dévaluer la cryptomonnaie, nuisant à l'investissement de l'attaquant.
  4. types d'attaques:
    • double spend: tentative de dépenser les mêmes pièces deux fois.
    • Blocage de transaction : empêcher certaines transactions d'être incluses dans les blocs.
    • minage égoïste: tentative de gagner plus de récompenses de minage en révélant sélectivement des blocs.
    • manipulation de l'horodatage: modification des horodatages de blocs pour obtenir un avantage en matière de minage.
    • attaque de bloc vide : miner des blocs sans transactions pour ralentir le réseau.

pourquoi la blockchain suppose l'absence de comptables fixes pour prévenir les transactions frauduleuses

comment la blockchain empêche-t-elle les interruptions intentionnelles et les transactions frauduleuses?

  1. vérification par les nœuds voisins: lorsqu'un bloc est distribué aux nœuds voisins, ces noeuds vérifient les transactions dans le bloc. S'ils trouvent des transactions invalides, ils rejetteront le bloc et ne le propageront pas davantage.
  2. Mécanisme de consensus : Le mécanisme de consensus de Bitcoin repose sur le principe de la plus longue chaîne. Tous les nœuds du réseau tentent d’étendre la chaîne valide la plus longue. Si quelqu’un tente de modifier des enregistrements historiques (par exemple, en supprimant une transaction), il doit modifier tous les blocs suivants liés au bloc falsifié et s’assurer que la chaîne modifiée est plus longue que la chaîne principale actuelle. Cela nécessite d’énormes ressources de calcul, ce qui le rend pratiquement impossible.

prévention de la distribution incohérente des blocs par les mineurs

  1. cohérence dans la distribution des blocs : un mineur ne peut pas trouver plusieurs valeurs de nonce valides dans un court laps de temps, ce qui les empêche de distribuer différents blocs légitimes à différents nœuds simultanément. tout bloc illégal sera rejeté par les nœuds voisins.

Qu'est-ce qu'un pool de transactions (mempool)?

définition et fonction : dans un réseau blockchain, toutes les transactions diffusées qui n'ont pas encore été incluses dans un bloc sont temporairement stockées dans le pool de mémoire (mempool) des nœuds du réseau. Les mineurs surveillent leur mempool pour sélectionner les transactions à inclure dans la construction de nouveaux blocs.

stratégie de sélection de transaction: les mineurs peuvent choisir les transactions de la mempool en fonction de leur stratégie. En général, ils privilégient les transactions avec des frais plus élevés, mais certains peuvent également prendre en compte d'autres facteurs, tels que l'âge de la transaction (le temps qu'elle a passé dans la mempool).

sources de revenus dans le système Bitcoin

qui participe et comment ils gagnent: mis à part les utilisateurs, les trois principaux participants du système bitcoin sont les mineurs, les développeurs et les opérateurs de nœuds.

  1. les mineurs : gagnez des récompenses et des frais de transaction grâce à l'exploitation minière.
  2. les développeurs et les opérateurs de nœuds ne gagnent généralement pas directement à partir du système bitcoin. Leurs contributions sont souvent idéalistes, visant à maintenir l'intégrité du système. Ils peuvent recevoir des revenus par d'autres moyens, tels que des dons et des parrainages. Leur participation au mining dépend des préférences individuelles.

pourquoi les prix des GPU ont-ils augmenté? Pourquoi les GPU de minage sont-ils indésirables?

augmentation des prix des GPU: la forte demande de GPUs par les mineurs à des fins de minage a entraîné une pénurie d'approvisionnement, faisant augmenter les prix.

Cartes graphiques de minage : les cartes graphiques de minage sont celles qui ont été utilisées précédemment pour le minage de crypto-monnaies. Ces cartes subissent des calculs intensifs, ce qui entraîne une usure importante. En raison de leurs performances diminuées, la plupart des gens préfèrent ne pas acheter de cartes graphiques de minage d'occasion.

les mineurs ont-ils besoin de stocker l'ensemble des données de la chaîne de blocs ?

Exigence de stockage redondant complet : Oui, les mineurs doivent stocker l’intégralité du registre de la blockchain pour vérifier si un jeton a déjà été dépensé et pour assurer la sécurité et l’intégrité du registre. Cependant, pour les blocs très anciens, les mineurs n’ont besoin de stocker que les en-têtes de bloc, et non le contenu complet du bloc. Cela permet de maintenir l’efficacité de la blockchain tout en préservant sa sécurité.

Que se passe-t-il lorsque la limite d'approvisionnement en bitcoins est atteinte?

pas de récompenses automatiques au-delà de 21 millions de bitcoins : une fois que l'offre totale de bitcoins atteint sa limite de 21 millions, le système ne délivrera plus de nouveaux bitcoins en récompense aux mineurs. Si les utilisateurs ne sont pas prêts à payer des frais de transaction, théoriquement, le système de transaction pourrait rencontrer des défis opérationnels. Cependant, il est probable que les utilisateurs seront prêts à payer des frais de transaction pour que leurs transactions soient traitées, assurant ainsi la continuation du système.

La hauteur des blocs continuera d’augmenter : même après avoir atteint l’offre maximale de 21 millions de bitcoins, la hauteur des blocs (le nombre total de blocs) continuera d’augmenter tant que les mineurs seront prêts à miner et à regrouper les transactions dans de nouveaux blocs. La hauteur du bloc n’est pas limitée par le plafond d’offre de bitcoins.

potentiel de changements de consensus : la communauté pourrait proposer des modifications aux règles de consensus, telles que l'augmentation de l'offre totale de bitcoin, pour permettre une nouvelle génération de pièces si nécessaire.

comment les mineurs sont-ils récompensés?

transaction coinbase : dans la blockchain bitcoin, les récompenses des mineurs sont distribuées via une transaction spéciale appelée « transaction coinbase » ou « récompense de bloc ». cette transaction présente des caractéristiques uniques :

  1. aucune diffusion requise: la transaction coinbase est la première transaction dans chaque bloc, créée automatiquement par l'algorithme de minage et n'a pas besoin d'être diffusée à d'autres nœuds.
  2. Pas d'entrées: Contrairement aux transactions de Bitcoin régulières, la transaction Coinbase n'a pas d'entrée (pas d'expéditeur). Elle génère de nouveaux bitcoins qui sont récompensés au mineur.
  3. Sorties : La transaction Coinbase génère la récompense à l’adresse du portefeuille du mineur, qui comprend les bitcoins nouvellement frappés et tous les frais de transaction des transactions incluses dans le bloc.

comment est calculée la revenue du mineur ?

calcul du revenu par bloc : le revenu du mineur est calculé à chaque fois qu'un bloc est miné avec succès et confirmé par le mécanisme de consensus du réseau. Le mineur (ou le pool de minage) qui mine le bloc reçoit la récompense du bloc ainsi que les frais de transaction cumulés de toutes les transactions incluses dans le bloc.

Processus de réception des récompenses : Une fois qu’un mineur ou un pool de minage a réussi à miner un bloc et que cela est confirmé par le réseau, il reçoit la récompense du bloc et les frais de transaction. Ceci est exécuté par le biais de la transaction Coinbase, qui convertit les frais et les récompenses en sorties de transaction non dépensées (UTXO) créditées sur le compte du mineur.

les blocs sont-ils créés séquentiellement ou en parallèle?

Création séquentielle : les blocs sont créés de manière séquentielle dans la blockchain. Un nouveau bloc ne peut être créé qu’une fois que le bloc précédent a été miné avec succès et ajouté à la chaîne.

emballage des transactions

transactions multiples par bloc : les blocs contiennent généralement plusieurs transactions. Les mineurs incluent autant de transactions que possible pour maximiser leurs gains de frais de transaction, plutôt que d'emballer les transactions individuellement.

utilisation de l'espace de bloc

blocs partiellement remplis: la plupart des blocs ne sont pas entièrement utilisés. les mineurs commencent à travailler sur le bloc suivant dès qu'ils trouvent un hachage valide qui répond aux exigences de difficulté, indépendamment du fait que le bloc soit complètement plein.

minage sans transactions

blocs vides : des blocs peuvent être extraits même s'il n'y a aucune transaction à inclure. Ces blocs, appelés blocs vides, fournissent toujours une récompense système au mineur.

gestion des forks de la blockchain

règle de la chaîne la plus longue : lorsqu'une fourche se produit, le réseau suit la chaîne avec la plus grande accumulation de preuves de travail, qui est généralement la chaîne la plus longue. Les nœuds basculent vers la chaîne la plus longue une fois qu'il devient évident laquelle a le plus de travail qui y a été investi.

prévention de la double dépense

Résolution de la double dépense :

  • si un bloc contient des transactions conflictuelles (double dépense), seule la première transaction valide à être incluse dans un bloc est considérée comme valide. l'autre transaction conflictuelle est rejetée.
  • Si deux transactions conflictuelles sont incluses dans des blocs différents, celle du bloc qui est confirmée en premier est considérée comme valide.

Gestion détaillée des doubles dépenses

processus de validation:

  • entre les blocs : si deux transactions tentant de dépenser la même pièce sont incluses dans des blocs séparés, la transaction dans le bloc qui est confirmé en premier sera considérée comme valide. le bloc contenant la transaction en conflit sera rejeté.
  • Au sein d’un seul bloc : si deux transactions conflictuelles sont incluses dans le même bloc, le mineur n’en inclura qu’une. Le mineur choisit généralement en fonction des frais de transaction (les frais les plus élevés obtiennent la préférence) ou de l’âge de la transaction (la transaction la plus ancienne obtient la préférence).

Comment les utilisateurs contrôlent-ils le montant des frais de transaction qu’ils paient ?

calcul des frais de transaction : les utilisateurs peuvent contrôler les frais de transaction pour accélérer la confirmation de leurs transactions. Les frais sont déterminés par la formule suivante :

frais de transaction=entrée totale−sortie totale−changement

Les utilisateurs définissent les frais de transaction en ajustant le montant en entrée, le montant en sortie et le montant de la monnaie rendue en échange.

le processus d'extraction de la monnaie numérique

  1. Préparez l’équipement minier : Installez du matériel minier ou des appareils de calcul haute performance.
  2. Assurez-vous d'avoir accès à Internet : connectez l'équipement de minage à Internet.
  3. télécharger un portefeuille numérique: obtenir un portefeuille numérique et générer vos clés privées et publiques.
  4. Commencer à miner : Cliquez sur le bouton de minage dans le portefeuille pour commencer à miner.

minage dans un pool

Distribution des gains : lors du minage dans un pool, le nœud du pool reçoit la récompense de bloc. Le pool distribue ensuite les gains à ses membres en fonction de leur puissance de calcul contributive. Cette distribution est exécutée par le biais de transferts vers les portefeuilles des mineurs.

Qu'est-ce que le mining égoïste ?

minage égoïste: le minage égoïste est une stratégie où un mineur (ou un pool de minage) trouve un nouveau bloc mais ne le diffuse pas immédiatement. Au lieu de cela, ils continuent à miner en privé sur leur chaîne (chaîne cachée). Une fois qu'ils trouvent des blocs supplémentaires, ils les diffusent tous en même temps. Cela peut invalider le travail des autres mineurs et incliner la puissance de calcul et les récompenses en faveur du mineur égoïste. Bitcoin peut mitiGate.io l'impact du minage égoïste en améliorant le protocole de diffusion.

validation des nœuds lors de la réception de transactions et de blocs

Validation de la transaction : Lorsqu’une transaction est diffusée sur un nœud, elle subit plusieurs vérifications pour déterminer si elle doit être ajoutée au mempool :

  1. format de transaction: vérifier la correction de la structure des données de la transaction.
  2. signature de transaction: valider l'authenticité de la signature de la transaction.
  3. double-dépense : assurez-vous que l'entrée n'a pas été dépensée précédemment dans le mempool ou la blockchain.
  4. Entrées et sorties : Vérifiez que la quantité totale d’entrée est supérieure ou égale à la quantité totale de sortie.
  5. Scripts de transaction : Exécutez et vérifiez des scripts (principalement dans les contrats intelligents).
  6. locktime: vérifiez si la condition de verrouillage (hauteur de bloc ou temps) est satisfaite.
  7. Taille de la transaction et frais : assurez-vous que la taille de la transaction et les frais sont suffisants.

Validation du bloc : Lorsqu’un nœud mineur reçoit un nouveau bloc, il effectue des vérifications approfondies sur le bloc et ses transactions :

  1. validité de la transaction: valider chaque transaction dans le bloc (mêmes vérifications que la validation de la transaction).
  2. Vérifications spécifiques aux blocs :
    • taille de bloc : assurez-vous que la taille de bloc est dans les limites permises.
    • récompense de bloc : vérifier que la récompense de bloc (nouveaux bitcoins créés et frais de transaction) est correcte.
    • racine de Merkle : calcule et valide la racine de Merkle du bloc.
    • horodatage: confirmer que l'horodatage du bloc est dans une plage raisonnable.
    • cible de difficulté : vérifiez que le bloc répond à la cible de difficulté actuelle.

11. références

[1] Conférence 12 | Technologie Blockchain en profondeur (4) : Explication approfondie du consensus PoW sur le temps Blockchain-Geek :démenti:

  1. Cet article est repris de[Gate.io apprendrel'équipe et ils s'en occuperont rapidement.
  2. clause de non-responsabilité: les points de vue et opinions exprimés dans cet article sont uniquement ceux de l'auteur et ne constituent aucun conseil en investissement.
  3. les traductions de l'article dans d'autres langues sont effectuées par l'équipe d'apprentissage de Gate.io. Sauf mention contraire, la copie, la distribution ou le plagiat des articles traduits est interdit.

Révélation du mystère de l'exploitation minière

DébutantJul 15, 2024
Cet article fournit une introduction détaillée au processus de « mining » en blockchain. En faisant un parallèle avec les activités minières traditionnelles, il explique le concept de base de l'exploitation minière numérique, qui consiste à utiliser des ressources informatiques pour résoudre des problèmes mathématiques pour la validation des transactions et l'émission de nouvelles devises.
Révélation du mystère de l'exploitation minière

forward the original title ‘白话区块链三:揭开挖矿神秘的面纱——挖矿是什么?为什么要挖矿?谁是我们买不起显卡的罪魁祸首?’

L'un des concepts les plus familiers liés à la blockchain pour tout le monde est probablement l'extraction minière. De nombreuses personnes ont peut-être entendu parler de l'extraction minière à de nombreuses reprises, mais ne sont pas tout à fait sûres de ce qu'elle implique réellement. Dans cette section, nous interrompons notre programmation régulière pour d'abord introduire l'extraction minière.

un bref récapitulatif du contenu de “plain blockchain 1: introduction to bitcoin (le pionnier de la révolution blockchain et le challenger de la monnaie souveraine),” où satoshi nakamoto a conçu le système monétaire du bitcoin pour lier les récompenses de la tenue de comptes à l'émission de monnaie. cette approche permet à l'émission de monnaie d'être automatisée grâce au processus de tenue de comptes, résolvant ainsi le problème de l'émission de monnaie tout en encourageant les tenanciers de comptes à participer activement.

1. qu'est-ce que le mining?

dans le monde réel, l'exploitation minière implique des mineurs utilisant divers outils pour extraire des métaux précieux cachés dans les roches des mines. les mineurs extraient de la valeur de ces métaux rares cachés dans la nature par le travail physique.

pour les projets blockchain avec des récompenses pour la tenue de livres (généralement des projets de monnaie numérique), les nœuds du réseau dépensent des ressources informatiques pour résoudre des problèmes. Une fois qu'ils trouvent la solution, ils empaquettent le bloc et reçoivent une récompense sous forme de monnaie nouvellement émise. Ce processus est analogue à l'extraction de métaux précieux tels que l'or à partir du minerai, d'où le terme couramment utilisé de «minage». Ici, les tenanciers de livres sont les mineurs, qui rivalisent pour empaquetter les blocs à l'aide de matériel et d'électricité, ce qui entraîne la création d'une nouvelle monnaie.

2. pourquoi l'exploitation minière est-elle nécessaire?

Le minage sert à deux fins principales : valider les transactions récentes en les regroupant en blocs et en les reliant à la chaîne de blocs, et émettre une nouvelle devise en récompensant les gardiens de livre. Ci-dessous sont les fonctions détaillées du minage :

  1. sélection des comptables : une stratégie est nécessaire pour sélectionner les véritables comptables parmi de nombreux candidats. le résultat du minage est utilisé comme base pour cette sélection, garantissant que chaque transaction est reconnue par tous les participants, atteignant un consensus à travers le réseau.
  2. vérification de la transaction: chaque transaction bitcoin doit être vérifiée par les mineurs dans le réseau. ce processus confirme la validité de la transaction, y compris:
    • veiller à ce que le format et la taille de la transaction respectent les spécifications.
    • vérifier la validité de la signature de chaque transaction pour s'assurer qu'elle a été initiée par l'utilisateur possédant la clé privée associée.
    • vérifier que le montant d'entrée dépasse le montant de sortie (une partie du montant étant prélevée sous forme de frais), en s'assurant que les jetons utilisés pour le paiement n'ont pas été dépensés deux fois.
    • confirmer que la transaction n'a pas été inclus précédemment dans un bloc.
  3. l'émission de nouvelle monnaie : l'exploitation minière est également le moyen par lequel de nouveaux bitcoins entrent en circulation. Lorsqu'un mineur réussit à exploiter un nouveau bloc, il reçoit une certaine quantité de bitcoins en récompense. Ce mécanisme de récompense incite non seulement les gens à participer à l'exploitation minière, mais sert également de méthode d'émission de bitcoins. Cette méthode d'émission de monnaie assure une augmentation régulière et contrôlée de la circulation de la monnaie, ce qui contribue à gérer l'inflation.
  4. encourager la participation: le mécanisme de récompense motive davantage de personnes à participer à la maintenance du système monétaire, favorisant ainsi son développement continu et robuste.
  5. améliorer la sécurité et la décentralisation du réseau: les récompenses de l'extraction minière attirent un grand nombre d'extractionneurs, ce qui entraîne une puissance de calcul distribuée. Cette décentralisation garantit qu'aucune entité unique ne peut contrôler 50% de la puissance de calcul, améliorant ainsi la transparence et la sécurité du système. En adhérant au principe de la chaîne la plus longue, on améliore encore la sécurité du système.

3. pourquoi les mineurs sont-ils prêts à participer à l'exploitation minière?

Les mineurs sont incités à participer à l'extraction car ils reçoivent des récompenses substantielles pour avoir réussi à empaqueter un bloc sur la chaîne de blocs. Ces récompenses proviennent de deux sources principales :

  • récompenses en bloc (nouvelle devise émise) : le système monétaire émet automatiquement une nouvelle devise, qui va entièrement au mineur. par exemple, dans le système bitcoin, les mineurs reçoivent actuellement 3,125 bitcoins pour chaque bloc qu'ils emballent. étant donné que chaque bitcoin est valorisé à environ 65 000 $, l'emballage d'un seul bloc peut rapporter plus de 200 000 $, soit environ 1,47 million de RMB.
  • frais de transaction payés par les utilisateurs : en raison de la capacité limitée d'un bloc à contenir des enregistrements de transaction, certains utilisateurs paient des frais de transaction pour inciter les mineurs à donner la priorité à leurs transactions pour une confirmation plus rapide. lors de la sélection des transactions à inclure dans le bloc à partir du pool, les mineurs ont tendance à choisir celles avec des frais plus élevés. un bloc peut contenir des milliers de transactions, et tous les frais de ces transactions vont au mineur, représentant une autre source de revenus importante. à mesure que de plus en plus de personnes utilisent le bitcoin pour les transactions, la concurrence pour l'inclusion dans les blocs s'intensifie, ce qui entraîne des frais plus élevés que les utilisateurs sont prêts à payer.

avec le temps, les récompenses en bloc diminueront (par exemple, en raison du mécanisme de division par deux du bitcoin, où la récompense est divisée par deux environ tous les quatre ans). finalement, une fois que les 21 millions de bitcoins auront été minés, prévu vers l'année 2141, la récompense automatique en bloc cessera d'exister, et les frais de transaction deviendront la principale source de revenus pour les mineurs.

conseils

bitcoin génère un nouveau bloc environ toutes les 10 minutes. initialement, chaque nouveau bloc produit 50 bitcoins. cette récompense est réduite de moitié tous les quatre ans, et à ce jour, il y a eu quatre de ces événements de réduction de moitié. actuellement, chaque bloc génère 3,125 bitcoins, avec la réduction de moitié la plus récente ayant eu lieu en avril 2024. la prochaine réduction de moitié est prévue vers 2028. vers 2141, bitcoin atteindra sa limite d'émission.

Les frais de transaction sont influencés non seulement par l'offre et la demande, mais aussi par la taille de la transaction, car les frais sont proportionnels à l'espace occupé par la transaction dans le bloc.

4. comment participer à l'exploitation minière

Pour les mineurs, participer au minage est simple. Téléchargez un client de portefeuille de crypto-monnaie, et à l'intérieur du client, cliquez sur le bouton de minage pour commencer à miner.

pour les projets blockchain avec des récompenses en blocs, l'algorithme de minage est généralement écrit dans un script intégré au portefeuille. les mineurs n'ont qu'à cliquer sur un bouton pour démarrer le script.

l'algorithme de minage est déterministe, ce qui signifie que tant que les mineurs exécutent continuellement l'algorithme, ils obtiendront éventuellement un résultat. cependant, en raison des ressources informatiques variables, le temps nécessaire pour calculer ce résultat peut différer d'un mineur à l'autre. une fois qu'un nœud calcule la valeur cible, les efforts des autres mineurs pendant cette période sont rendus futiles, entraînant des rendements négatifs en raison des ressources physiques dépensées.

pour éviter les efforts inutiles, les mineurs regroupent souvent leurs ressources de calcul en rejoignant un nœud de pool de minage. Ce nœud fonctionne comme n'importe quel autre nœud mais dispose d'une puissance de calcul considérablement plus importante. Lorsque le pool réussit à miner un bloc, les récompenses sont réparties entre les mineurs participants en fonction de leurs ressources de calcul contribuées. Il est important de noter que sur la blockchain, le mineur enregistré comme empaquetant le bloc est le nœud de pool de minage, tandis que les mineurs individuels reçoivent leur part des récompenses allouées par le pool, pas directement du système de monnaie.

Bitmain, une entreprise qui fabrique des puces minières spécialisées à haute efficacité, a solidifié le rôle des pools de minage, contribuant ainsi à la centralisation du pouvoir de tenue de livres.

5. les détails du puzzle de minage

différents projets blockchain peuvent avoir des puzzles miniers et des niveaux de difficulté variables. ici, prenons bitcoin comme exemple. l'algorithme minier utilisé par bitcoin s'appelle proof of work (pow). l'essence de cet algorithme est qu'une certaine quantité de travail doit être dépensée pour prouver un résultat.

le puzzle de minage n'est pas un problème mathématique traditionnel mais consiste à trouver un nombre aléatoire, appelé nonce. Ce nonce, lorsqu'il est combiné avec les données du bloc et traité par une fonction de hachage, doit produire une valeur de hachage qui satisfait une condition spécifique. En général, cette condition exige que la valeur de hachage soit inférieure à une valeur cible (ou, de manière équivalente, que les premiers n bits de la valeur de hachage soient nuls). L'équation est la suivante: hachage(nonce+données_bloc)≤cible\text{hachage}(\text{nonce} + \text{données_bloc}) \leq \text{cible}hachage(nonce+données_bloc)≤cible

bitcoin utilise la fonction de hachage sha-256, qui convertit n'importe quelle longueur d'entrée en une sortie de longueur fixe de 256 bits (équivalent à 64 chiffres hexadécimaux ou 32 octets). la sortie est presque aléatoire mais garantie d'être la même pour la même entrée. le minage implique de changer continuellement le nonce et de hacher les données d'en-tête de bloc en utilisant sha-256 jusqu'à ce qu'une valeur de hachage qui satisfait la condition cible soit trouvée.

par exemple, une valeur de hachage sha-256 avec les 30 premiers bits étant des zéros: 000000000000000000000000000000111111010000011011000100100110111011000110100010011011000110100010110110101010011101011010100100011011010001111101001111110101001101111101011110011100011110011110000111000100110000001011011010001110011100110010111010010010010001101010110010110

la conversion de ceci en hexadécimal donne une valeur commençant par sept zéros: 00000003f41b126ec689b1a2da9d5d46d13d0fd1bece47983d59c5d32eb4ac9000000003f41b126ec689b1a2da9d5d46d13d0fd1bece47983d59c5d32eb4ac9000000003f41b126ec689b1a2da9d5d46d13d0fd1bece47983d59c5d32eb4ac90

En simplifiant, la probabilité de trouver un hachage avec les premiers n bits étant zéro est de 12n\frac{1}{2^n}2n1​. Plus n est grand, plus il y a de bits à zéro et plus la probabilité est faible :

  • n=10n = 10n=10: 1 sur 1 024
  • n = 20n = 20n = 20: 1 sur 1 048 576
  • n=30n = 30n = 30: 1 sur 1,073,741,824
  • n=40n = 40n=40: 1 sur 1,099,511,627,776
  • n=50n = 50n=50: 1 sur 1,125,899,906,842,624

avec n jusqu'à 256, trouver une valeur de hachage avec la puissance de calcul humaine actuelle, en excluant les ordinateurs quantiques, est pratiquement impossible avant que la Terre cesse d'exister.

en raison des propriétés de sha-256, la seule méthode est la force brute, qui consiste à essayer continuellement différents nonces jusqu'à ce que la condition soit satisfaite. cette nécessité d'équipements informatiques haute performance est la raison pour laquelle l'exploitation minière nécessite de tels appareils.

puisque vous ne pouvez pas prédire la valeur de hash générée en ajoutant le nonce aux données de bloc et en les passant à travers sha-256, le processus est entièrement aléatoire. par exemple, si la valeur de hash cible est 10 000, vous ne pouvez pas savoir quel nonce combiné aux données de bloc donnera une valeur de hash inférieure à 10 000. cette nature imprévisible et aléatoire signifie que les mineurs doivent énumérer les possibilités jusqu'à ce que la condition soit satisfaite. si plusieurs valeurs remplissent la condition, la plus petite valeur de hash est choisie car une plus petite valeur de hash indique une difficulté plus élevée et une probabilité plus faible d'occurrence.

vérifier si une valeur de hachage générée satisfait la condition est facile, ne nécessitant qu'une seule opération de comparaison. cependant, trouver une valeur de hachage inférieure ou égale à la valeur cible ne peut être réalisé que par une énumération par force brute. cette caractéristique, où vérifier un résultat est facile mais trouver le résultat est difficile, est connue sous le nom d'asymétrie computationnelle.

6. simulation de code de l'algorithme de mining

Le code suivant simule le processus d'extraction. Il commence par une chaîne de données d'en-tête de bloc « geekbang » et effectue une recherche progressive à partir d'une valeur de nonce de 10 000 jusqu'à ce qu'il trouve un nonce qui satisfait la condition spécifiée.

Voici un script python qui démontre le processus de minage:

import hashlibdef main():    base_string = "geekbang"    nonce = 10000    count = 0    while true:        target_string = base_string + str(nonce)        pow_hash = hashlib.sha256(target_string.encode()).hexdigest()        count += 1        if pow_hash.startswith("0000"):  # premiers 4 chiffres hexadécimaux sont 0, équivalent aux premiers 16 bits étant 0            print("hash:", pow_hash)            print("nonce:", nonce, "temps de numérisation:", count)            break        nonce += 1if __name__ == '__main__':    main()

lorsque l'exigence est que les 4 premiers chiffres hexadécimaux du résultat du hachage soient nuls (équivalent à ce que les 16 premiers bits soient nuls), le nombre de calculs est d'environ 58 000. si l'exigence est augmentée pour que les 5 premiers chiffres soient nuls, le nombre de calculs augmente à 1,23 million. lorsque l'exigence est que les 7 premiers chiffres soient nuls, le nombre de calculs atteint 160 millions. cela illustre que chaque zéro supplémentaire dans le préfixe de hachage augmente le calcul d'environ 16 fois.

voici les résultats pour différentes conditions cibles:

les quatre premiers chiffres hexadécimaux sont zéro (16 bits):

import hashlib

def main():

base_string = "geekbang"nonce = 10000count = 0while true:    target_string = base_string + str(nonce)    pow_hash = hashlib.sha256(target_string).hexdigest()    count = count + 1    if pow_hash.startswith("0000"): # 前4个16进制位是0,相当于前16个比特位是0    print pow_hash    print "nonce: https://s3.ap-northeast-1.amazonaws.com/gimg.gateimg.com/learn/51d786353cf4ac886dbb869fc7abf883dac67ceb.png"  scan times: https://s3.ap-northeast-1.amazonaws.com/gimg.gateimg.com/learn/4ebdb22f10c27f8797a1c2ae7bbbd78f40220ed4.png"" % (nonce, count)    break    nonce = nonce + 1

sinom == ‘principal‘:

main()

comme on peut le voir, augmenter le nombre requis de zéros de tête dans le hachage augmente considérablement le nombre de tentatives nécessaires, suivant un schéma de croissance exponentielle. cela démontre la difficulté de calcul et les ressources nécessaires pour le minage, soulignant le besoin de dispositifs informatiques haute performance dans le processus de minage.

7. ajustement dynamique de la difficulté

Pour garantir qu'un bloc est généré environ toutes les 10 minutes, le système Bitcoin ajuste la difficulté de minage en modifiant le nombre de zéros en tête requis dans la valeur de hachage. Ce mécanisme d'ajustement de la difficulté est une partie cruciale du système Bitcoin. Il évalue le temps nécessaire à la génération des 2016 derniers blocs, qui devrait idéalement être d'environ deux semaines. Si ces blocs ont été minés en moins de deux semaines, la difficulté augmente en ajoutant plus de zéros en tête (ce qui abaisse la valeur cible). En revanche, s'il a fallu plus de deux semaines, la difficulté diminue en réduisant le nombre de zéros en tête (ce qui élève la valeur cible). Ce mécanisme garantit que le temps de génération d'un bloc reste d'environ 10 minutes, même si le taux de hachage total du réseau fluctue.

ce mécanisme de réglage de la difficulté, conçu par le créateur de bitcoin satoshi nakamoto, a été prévu dès le départ pour s'adapter automatiquement à la puissance de calcul totale du réseau. Il maintient un rythme d'extraction stable et empêche la monnaie d'être émise trop rapidement, ce qui pourrait perturber l'économie du marché.

8. processus d'exécution de l'algorithme de minage

différents projets blockchain peuvent avoir des algorithmes de minage variables. ici, nous décrivons le plus célèbre d'entre eux: l'algorithme de minage de Bitcoin.

le processus d'exécution de l'algorithme minier sous-jacent de Bitcoin est le suivant:

  1. sélection de transactions: choisissez plusieurs transactions à partir du pool de mémoire (en privilégiant généralement celles avec des frais plus élevés). Générez automatiquement une transaction spéciale (souvent appelée transaction Coinbase) où le destinataire est le mineur, et le montant de la transaction est la récompense de bloc plus tous les frais de transaction sélectionnés. Placez cette transaction spéciale au début des transactions sélectionnées pour former l'ensemble de transactions pour le bloc à être empaqueté.
  2. construction de l'arbre de Merkle: construire un arbre de hachage de Merkle à partir de l'ensemble de transactions. Un arbre de Merkle est un arbre binaire où chaque nœud feuille stocke le hachage d'une transaction, l'identifiant et l'indexant de manière unique. Chaque nœud supérieur stocke le hachage combiné de ses nœuds enfants, aboutissant au nœud racine. Le nœud racine identifie de manière unique l'arbre de Merkle et, par extension, toutes les transactions.
  3. construction de l'en-tête de bloc : assembler l'en-tête de bloc à partir de la valeur de racine de Merkle, d'un nonce, de la version de bloc, du hachage du bloc précédent, de l'horodatage, de la cible de difficulté et du nonce. La taille de l'en-tête de bloc est de 80 octets.
  4. hacher l'en-tête de bloc : modifier continuellement la valeur du nonce dans l'en-tête de bloc et effectuer un hachage double sha-256 sur le contenu de l'en-tête de bloc (c'est-à-dire sha256(sha256(en-tête_de_bloc))). comparer le hachage obtenu avec la valeur cible actuelle du réseau. si le résultat est inférieur à la valeur cible (indiquant que les premiers n bits sont nuls), le puzzle est résolu et la preuve de travail est terminée.
  5. diffusion du bloc: envoie du bloc nouvellement extrait aux nœuds voisins, les informant que le bloc a été extrait avec succès.
  6. vérification et propagation: lors de la réception du nouveau bloc, les autres nœuds effectuent un double hachage sur l'en-tête du bloc pour obtenir le hachage du bloc. ils vérifient que les premiers n bits du hachage du bloc sont nuls, reconnaissent le bloc, cessent les calculs pour ce bloc et le propaGate.io à leurs nœuds voisins.

la taille de chaque champ de l'en-tête de bloc est la suivante:

https://time.geekbang.org/column/article/5963

alt = "" >

la structure de l'arbre de Merkle est la suivante:

大后端私房菜]. alt="">

9. controverses dans l'exploitation minière

La principale controverse entourant l'exploitation minière concerne les algorithmes de preuve de travail (PoW) utilisés par Bitcoin et ses dérivés. Ces algorithmes obligent les mineurs à allouer d'importantes ressources informatiques pour résoudre des problèmes sur lesquels le réseau est d'accord. De nombreuses personnes travaillent simultanément sur ces calculs, mais seule la première à résoudre le problème obtient la récompense. Les ressources informatiques et électriques des autres participants sont donc effectivement gaspillées, sans générer de valeur supplémentaire.

Il existe deux voies principales pour optimiser ce gaspillage de ressources :

  1. passage à des algorithmes moins gourmands en ressources : par exemple, Ethereum est passé de l'algorithme de preuve de travail (PoW) à l'algorithme de preuve d'enjeu (PoS), ce qui réduit considérablement le gaspillage de ressources.
  2. en utilisant des ressources électriques inutilisées: les nœuds de minage expérimentent l'utilisation de sources d'énergie renouvelable, comme l'énergie éolienne, pour les opérations de minage. Un autre développement important est l'utilisation du gaz naturel autrement gaspillé. De plus, certaines institutions explorent des moyens de recycler la chaleur excédentaire générée par le minage de Bitcoin.

10. questions

Quelle est la valeur de l’exploitation minière ? Cela semble être un gaspillage de ressources et dénué de sens pour la société.

En revenant sur la section «Pourquoi l'exploitation minière est-elle nécessaire?» de cet article, la signification directe de l'exploitation minière est qu'elle soutient l'émission de devises numériques. Les récompenses minières incitent davantage de personnes à participer à la maintenance de devises numériques, les rendant plus stables. De plus, les algorithmes miniers maintiennent la cohérence des transactions au sein des systèmes de devises numériques, les rendant plus robustes et moins susceptibles d'attaques internes et externes.

La signification indirecte de l'exploitation minière est dérivée des devises numériques elles-mêmes. Les devises numériques créent un système monétaire mondial et sans confiance où des transactions sécurisées peuvent avoir lieu sans avoir besoin d'institutions centralisées, évitant les inconvénients de la centralisation. Leur nature mondiale permet également des transactions transfrontalières efficaces et peu coûteuses.

Les rendements miniers vont-ils diminuer au point de tomber en dessous des coûts, ce qui entraînerait l'arrêt de l'exploitation minière et la cessation des transactions?

Il est courant de craindre que les gains miniers dépendent uniquement des récompenses du système, qui diminuent avec le temps. Cependant, le minage génère également des revenus importants provenant des frais de transaction. À mesure que les monnaies numériques gagnent en acceptation, le marché des transactions de monnaie numérique va s'étendre. Cette augmentation du volume des transactions intensifiera la concurrence pour l'inclusion des blocs, ce qui entraînera des frais plus élevés que les utilisateurs sont prêts à payer pour donner la priorité à leurs transactions. Par conséquent, les mineurs peuvent continuer à gagner des frais de transaction substantiels, garantissant la viabilité continue du traitement des transactions.

Si les coûts de minage dépassent les frais de blockchain, le minage peut-il continuer?

Les frais de transaction compenseront-ils les coûts de minage ?

oui, les frais de transaction peuvent aider à compenser les coûts de minage. Comme les récompenses de bloc diminuent avec le temps, les frais de transaction deviennent une source de revenus cruciale pour les mineurs. Cela garantit que même si les coûts d'électricité sont élevés, les mineurs peuvent toujours maintenir leurs opérations grâce aux frais payés par les utilisateurs pour le traitement des transactions.

Que se passe-t-il si plusieurs mineurs résolvent l’énigme simultanément ?

Est-ce que plusieurs mineurs partagent les récompenses de minage s'ils diffusent simultanément leurs nouveaux blocs ?

non, si plusieurs mineurs résolvent le puzzle et diffusent leurs nouveaux blocs en même temps, cela crée une fourchette temporaire dans la blockchain. Voici comment cela fonctionne :

  1. Fourches temporaires : lorsque certains nœuds reçoivent deux blocs valides de la même hauteur, ils stockent temporairement les deux blocs, ce qui cause une fourche temporaire dans la blockchain.
  2. résolution des forks: à mesure que de nouveaux blocs sont extraits, les nœuds continueront de se construire sur la chaîne la plus longue. Le réseau converge finalement vers une seule chaîne, en abandonnant la ou les plus courtes.
  3. choisir la chaîne principale: les nœuds suivent la chaîne la plus longue (celle avec le plus de preuves de travail accumulées). Le mineur dont le bloc finit sur la chaîne la plus longue reçoit la récompense, tandis que l'autre bloc devient un bloc « orphelin ».

exemple:

  • le mineur a et le mineur b extraient tous deux un bloc à la même hauteur et le diffusent.
  • certains nœuds reçoivent d'abord le bloc du mineur a, tandis que d'autres reçoivent le bloc du mineur b.
  • les deux chaînes existent temporairement.
  • Lorsque le prochain bloc est miné, s'il est ajouté à la chaîne du mineur A, cette chaîne devient la plus longue et les nœuds l'adopteront comme chaîne principale.
  • Le mineur A reçoit la récompense et le bloc du mineur B est rejeté.

Pourquoi les nœuds disposant de plus de 50% de la puissance de hachage ne trichent-ils pas ?

qu'est-ce qu'une attaque de 51% et pourquoi les super nœuds ne trichent-ils pas ?

Une attaque de 51 % se produit lorsqu'une seule entité ou un groupe contrôle plus de 50 % de la puissance de calcul du réseau. Voici pourquoi les super nœuds ne trichent généralement pas:

  1. impossibilité pratique : posséder 51 % de la puissance de hachage totale du réseau est hautement improbable en raison de l'ampleur et de la décentralisation des principales cryptomonnaies comme le bitcoin.
  2. validation du réseau : même si un super nœud tente de tricher, tous les nœuds valident chaque bloc indépendamment. Les transactions invalides ou les tentatives de double dépense sont rejetées par le réseau, rendant les efforts du super nœud vains.
  3. réputation et incitations économiques: les super noeuds ont plus à gagner en maintenant l'intégrité de la blockchain qu'en l'attaquant. Des attaques réussies pourraient dévaluer la cryptomonnaie, nuisant à l'investissement de l'attaquant.
  4. types d'attaques:
    • double spend: tentative de dépenser les mêmes pièces deux fois.
    • Blocage de transaction : empêcher certaines transactions d'être incluses dans les blocs.
    • minage égoïste: tentative de gagner plus de récompenses de minage en révélant sélectivement des blocs.
    • manipulation de l'horodatage: modification des horodatages de blocs pour obtenir un avantage en matière de minage.
    • attaque de bloc vide : miner des blocs sans transactions pour ralentir le réseau.

pourquoi la blockchain suppose l'absence de comptables fixes pour prévenir les transactions frauduleuses

comment la blockchain empêche-t-elle les interruptions intentionnelles et les transactions frauduleuses?

  1. vérification par les nœuds voisins: lorsqu'un bloc est distribué aux nœuds voisins, ces noeuds vérifient les transactions dans le bloc. S'ils trouvent des transactions invalides, ils rejetteront le bloc et ne le propageront pas davantage.
  2. Mécanisme de consensus : Le mécanisme de consensus de Bitcoin repose sur le principe de la plus longue chaîne. Tous les nœuds du réseau tentent d’étendre la chaîne valide la plus longue. Si quelqu’un tente de modifier des enregistrements historiques (par exemple, en supprimant une transaction), il doit modifier tous les blocs suivants liés au bloc falsifié et s’assurer que la chaîne modifiée est plus longue que la chaîne principale actuelle. Cela nécessite d’énormes ressources de calcul, ce qui le rend pratiquement impossible.

prévention de la distribution incohérente des blocs par les mineurs

  1. cohérence dans la distribution des blocs : un mineur ne peut pas trouver plusieurs valeurs de nonce valides dans un court laps de temps, ce qui les empêche de distribuer différents blocs légitimes à différents nœuds simultanément. tout bloc illégal sera rejeté par les nœuds voisins.

Qu'est-ce qu'un pool de transactions (mempool)?

définition et fonction : dans un réseau blockchain, toutes les transactions diffusées qui n'ont pas encore été incluses dans un bloc sont temporairement stockées dans le pool de mémoire (mempool) des nœuds du réseau. Les mineurs surveillent leur mempool pour sélectionner les transactions à inclure dans la construction de nouveaux blocs.

stratégie de sélection de transaction: les mineurs peuvent choisir les transactions de la mempool en fonction de leur stratégie. En général, ils privilégient les transactions avec des frais plus élevés, mais certains peuvent également prendre en compte d'autres facteurs, tels que l'âge de la transaction (le temps qu'elle a passé dans la mempool).

sources de revenus dans le système Bitcoin

qui participe et comment ils gagnent: mis à part les utilisateurs, les trois principaux participants du système bitcoin sont les mineurs, les développeurs et les opérateurs de nœuds.

  1. les mineurs : gagnez des récompenses et des frais de transaction grâce à l'exploitation minière.
  2. les développeurs et les opérateurs de nœuds ne gagnent généralement pas directement à partir du système bitcoin. Leurs contributions sont souvent idéalistes, visant à maintenir l'intégrité du système. Ils peuvent recevoir des revenus par d'autres moyens, tels que des dons et des parrainages. Leur participation au mining dépend des préférences individuelles.

pourquoi les prix des GPU ont-ils augmenté? Pourquoi les GPU de minage sont-ils indésirables?

augmentation des prix des GPU: la forte demande de GPUs par les mineurs à des fins de minage a entraîné une pénurie d'approvisionnement, faisant augmenter les prix.

Cartes graphiques de minage : les cartes graphiques de minage sont celles qui ont été utilisées précédemment pour le minage de crypto-monnaies. Ces cartes subissent des calculs intensifs, ce qui entraîne une usure importante. En raison de leurs performances diminuées, la plupart des gens préfèrent ne pas acheter de cartes graphiques de minage d'occasion.

les mineurs ont-ils besoin de stocker l'ensemble des données de la chaîne de blocs ?

Exigence de stockage redondant complet : Oui, les mineurs doivent stocker l’intégralité du registre de la blockchain pour vérifier si un jeton a déjà été dépensé et pour assurer la sécurité et l’intégrité du registre. Cependant, pour les blocs très anciens, les mineurs n’ont besoin de stocker que les en-têtes de bloc, et non le contenu complet du bloc. Cela permet de maintenir l’efficacité de la blockchain tout en préservant sa sécurité.

Que se passe-t-il lorsque la limite d'approvisionnement en bitcoins est atteinte?

pas de récompenses automatiques au-delà de 21 millions de bitcoins : une fois que l'offre totale de bitcoins atteint sa limite de 21 millions, le système ne délivrera plus de nouveaux bitcoins en récompense aux mineurs. Si les utilisateurs ne sont pas prêts à payer des frais de transaction, théoriquement, le système de transaction pourrait rencontrer des défis opérationnels. Cependant, il est probable que les utilisateurs seront prêts à payer des frais de transaction pour que leurs transactions soient traitées, assurant ainsi la continuation du système.

La hauteur des blocs continuera d’augmenter : même après avoir atteint l’offre maximale de 21 millions de bitcoins, la hauteur des blocs (le nombre total de blocs) continuera d’augmenter tant que les mineurs seront prêts à miner et à regrouper les transactions dans de nouveaux blocs. La hauteur du bloc n’est pas limitée par le plafond d’offre de bitcoins.

potentiel de changements de consensus : la communauté pourrait proposer des modifications aux règles de consensus, telles que l'augmentation de l'offre totale de bitcoin, pour permettre une nouvelle génération de pièces si nécessaire.

comment les mineurs sont-ils récompensés?

transaction coinbase : dans la blockchain bitcoin, les récompenses des mineurs sont distribuées via une transaction spéciale appelée « transaction coinbase » ou « récompense de bloc ». cette transaction présente des caractéristiques uniques :

  1. aucune diffusion requise: la transaction coinbase est la première transaction dans chaque bloc, créée automatiquement par l'algorithme de minage et n'a pas besoin d'être diffusée à d'autres nœuds.
  2. Pas d'entrées: Contrairement aux transactions de Bitcoin régulières, la transaction Coinbase n'a pas d'entrée (pas d'expéditeur). Elle génère de nouveaux bitcoins qui sont récompensés au mineur.
  3. Sorties : La transaction Coinbase génère la récompense à l’adresse du portefeuille du mineur, qui comprend les bitcoins nouvellement frappés et tous les frais de transaction des transactions incluses dans le bloc.

comment est calculée la revenue du mineur ?

calcul du revenu par bloc : le revenu du mineur est calculé à chaque fois qu'un bloc est miné avec succès et confirmé par le mécanisme de consensus du réseau. Le mineur (ou le pool de minage) qui mine le bloc reçoit la récompense du bloc ainsi que les frais de transaction cumulés de toutes les transactions incluses dans le bloc.

Processus de réception des récompenses : Une fois qu’un mineur ou un pool de minage a réussi à miner un bloc et que cela est confirmé par le réseau, il reçoit la récompense du bloc et les frais de transaction. Ceci est exécuté par le biais de la transaction Coinbase, qui convertit les frais et les récompenses en sorties de transaction non dépensées (UTXO) créditées sur le compte du mineur.

les blocs sont-ils créés séquentiellement ou en parallèle?

Création séquentielle : les blocs sont créés de manière séquentielle dans la blockchain. Un nouveau bloc ne peut être créé qu’une fois que le bloc précédent a été miné avec succès et ajouté à la chaîne.

emballage des transactions

transactions multiples par bloc : les blocs contiennent généralement plusieurs transactions. Les mineurs incluent autant de transactions que possible pour maximiser leurs gains de frais de transaction, plutôt que d'emballer les transactions individuellement.

utilisation de l'espace de bloc

blocs partiellement remplis: la plupart des blocs ne sont pas entièrement utilisés. les mineurs commencent à travailler sur le bloc suivant dès qu'ils trouvent un hachage valide qui répond aux exigences de difficulté, indépendamment du fait que le bloc soit complètement plein.

minage sans transactions

blocs vides : des blocs peuvent être extraits même s'il n'y a aucune transaction à inclure. Ces blocs, appelés blocs vides, fournissent toujours une récompense système au mineur.

gestion des forks de la blockchain

règle de la chaîne la plus longue : lorsqu'une fourche se produit, le réseau suit la chaîne avec la plus grande accumulation de preuves de travail, qui est généralement la chaîne la plus longue. Les nœuds basculent vers la chaîne la plus longue une fois qu'il devient évident laquelle a le plus de travail qui y a été investi.

prévention de la double dépense

Résolution de la double dépense :

  • si un bloc contient des transactions conflictuelles (double dépense), seule la première transaction valide à être incluse dans un bloc est considérée comme valide. l'autre transaction conflictuelle est rejetée.
  • Si deux transactions conflictuelles sont incluses dans des blocs différents, celle du bloc qui est confirmée en premier est considérée comme valide.

Gestion détaillée des doubles dépenses

processus de validation:

  • entre les blocs : si deux transactions tentant de dépenser la même pièce sont incluses dans des blocs séparés, la transaction dans le bloc qui est confirmé en premier sera considérée comme valide. le bloc contenant la transaction en conflit sera rejeté.
  • Au sein d’un seul bloc : si deux transactions conflictuelles sont incluses dans le même bloc, le mineur n’en inclura qu’une. Le mineur choisit généralement en fonction des frais de transaction (les frais les plus élevés obtiennent la préférence) ou de l’âge de la transaction (la transaction la plus ancienne obtient la préférence).

Comment les utilisateurs contrôlent-ils le montant des frais de transaction qu’ils paient ?

calcul des frais de transaction : les utilisateurs peuvent contrôler les frais de transaction pour accélérer la confirmation de leurs transactions. Les frais sont déterminés par la formule suivante :

frais de transaction=entrée totale−sortie totale−changement

Les utilisateurs définissent les frais de transaction en ajustant le montant en entrée, le montant en sortie et le montant de la monnaie rendue en échange.

le processus d'extraction de la monnaie numérique

  1. Préparez l’équipement minier : Installez du matériel minier ou des appareils de calcul haute performance.
  2. Assurez-vous d'avoir accès à Internet : connectez l'équipement de minage à Internet.
  3. télécharger un portefeuille numérique: obtenir un portefeuille numérique et générer vos clés privées et publiques.
  4. Commencer à miner : Cliquez sur le bouton de minage dans le portefeuille pour commencer à miner.

minage dans un pool

Distribution des gains : lors du minage dans un pool, le nœud du pool reçoit la récompense de bloc. Le pool distribue ensuite les gains à ses membres en fonction de leur puissance de calcul contributive. Cette distribution est exécutée par le biais de transferts vers les portefeuilles des mineurs.

Qu'est-ce que le mining égoïste ?

minage égoïste: le minage égoïste est une stratégie où un mineur (ou un pool de minage) trouve un nouveau bloc mais ne le diffuse pas immédiatement. Au lieu de cela, ils continuent à miner en privé sur leur chaîne (chaîne cachée). Une fois qu'ils trouvent des blocs supplémentaires, ils les diffusent tous en même temps. Cela peut invalider le travail des autres mineurs et incliner la puissance de calcul et les récompenses en faveur du mineur égoïste. Bitcoin peut mitiGate.io l'impact du minage égoïste en améliorant le protocole de diffusion.

validation des nœuds lors de la réception de transactions et de blocs

Validation de la transaction : Lorsqu’une transaction est diffusée sur un nœud, elle subit plusieurs vérifications pour déterminer si elle doit être ajoutée au mempool :

  1. format de transaction: vérifier la correction de la structure des données de la transaction.
  2. signature de transaction: valider l'authenticité de la signature de la transaction.
  3. double-dépense : assurez-vous que l'entrée n'a pas été dépensée précédemment dans le mempool ou la blockchain.
  4. Entrées et sorties : Vérifiez que la quantité totale d’entrée est supérieure ou égale à la quantité totale de sortie.
  5. Scripts de transaction : Exécutez et vérifiez des scripts (principalement dans les contrats intelligents).
  6. locktime: vérifiez si la condition de verrouillage (hauteur de bloc ou temps) est satisfaite.
  7. Taille de la transaction et frais : assurez-vous que la taille de la transaction et les frais sont suffisants.

Validation du bloc : Lorsqu’un nœud mineur reçoit un nouveau bloc, il effectue des vérifications approfondies sur le bloc et ses transactions :

  1. validité de la transaction: valider chaque transaction dans le bloc (mêmes vérifications que la validation de la transaction).
  2. Vérifications spécifiques aux blocs :
    • taille de bloc : assurez-vous que la taille de bloc est dans les limites permises.
    • récompense de bloc : vérifier que la récompense de bloc (nouveaux bitcoins créés et frais de transaction) est correcte.
    • racine de Merkle : calcule et valide la racine de Merkle du bloc.
    • horodatage: confirmer que l'horodatage du bloc est dans une plage raisonnable.
    • cible de difficulté : vérifiez que le bloc répond à la cible de difficulté actuelle.

11. références

[1] Conférence 12 | Technologie Blockchain en profondeur (4) : Explication approfondie du consensus PoW sur le temps Blockchain-Geek :démenti:

  1. Cet article est repris de[Gate.io apprendrel'équipe et ils s'en occuperont rapidement.
  2. clause de non-responsabilité: les points de vue et opinions exprimés dans cet article sont uniquement ceux de l'auteur et ne constituent aucun conseil en investissement.
  3. les traductions de l'article dans d'autres langues sont effectuées par l'équipe d'apprentissage de Gate.io. Sauf mention contraire, la copie, la distribution ou le plagiat des articles traduits est interdit.
Lancez-vous
Inscrivez-vous et obtenez un bon de
100$
!