Saviez-vous que miner un bitcoin n'est pas toujours aussi compliqué ? Un téléphone portable (l'un des moins chers) pouvait rapidement miner du bitcoin en 2009, mais aujourd'hui d'immenses entrepôts industriels remplis de milliers d'appareils spécialisés sont nécessaires pour cette tâche, générant des millions de millions d'opérations par seconde pour miner la même quantité de bitcoin. Découvrez pourquoi en vous renseignant sur l'un des aspects les plus importants de l'exploitation minière, la "difficulté".
Bitcoin a une complexité / difficulté de minage dynamique. qu'est-ce que cela signifie exactement? En substance, cela signifie que la difficulté de miner un bloc en Bitcoin n'est pas toujours la même. Parfois, il monte, parfois il baisse (bien qu'à long terme, il tend actuellement à augmenter).
Dans cet article de la Bit2Me Academy, vous vous plongerez dans l'un des aspects les plus importants des crypto-monnaies comme le Bitcoin. Se plonger dans ces aspects techniques n'est pas toujours facile mais, comme toujours, nous vous expliquerons ce concept de manière simple.
Le terme "difficulté" est utilisé comme unité de mesuré dans le processus de extraction de crypto-monnaie, Se référant à comment difficile est de trouver le hachage du bloc.
Comme nous l'avons déjà expliqué dans l'article consacré à comment les crypto-monnaies sont minées, le hachage doit répondre aux caractéristiques recherchées en ce que blockchain. Chaque bloc du réseau est généré à un rythme déterminé par le protocole blockchain. Et ce rythme doit rester, dans la mesure du possible, constant.
Téléchargez gratuitement le guide de base sur l'exploitation minière
Recevez dans votre email le PDF avec les informations de base.
Combien de temps faut-il pour miner un bitcoin ?
En Bitcoin il a été stipulé dans votre code que un bloc doit être miné toutes les 10 minutes en moyenne. Pour miner un bloc, le Nonce que dans l'opération d'extraction, il trouve un hachage qui correspond au modèle recherché. Une personne disposant d'une grande puissance de calcul (par exemple, des milliers de ASIC, ou appliquer un nouveau mécanisme pour faire l'opération plus rapidement) vous pourrez trouver le nonce très rapidement, et cela cassera la moyenne de 10 minutes fixée par le protocole. C'est là que Bitcoin a ajouté l'un de ses composants les plus importants : le réajustement de la difficulté minière.
Sans ce réajustement, ce mineur exploiterait tous les blocs en un rien de temps, brisant la courbe d'émission de bitcoins préétablie dans le modèle économique sous-jacent au protocole Bitcoin. Autrement dit, dans un court laps de temps, tous les bitcoins seraient extraits.
Pour éviter cela, le réajustement minier entre en action, et augmente la complexité du problème mathématique recherché. De cette façon, le temps de chaque bloc est à nouveau stabilisé à 10 minutes (en moyenne).
À quelle fréquence la difficulté de minage de Bitcoin est-elle réinitialisée ?
Le réglage de la difficulté de minage dépend de la programmation et des protocoles d'exploitation de chaque blockchain et crypto-monnaie. Comme nous l'avons déjà expliqué, la difficulté de minage dans Bitcoin devrait permettre aux mineurs de résoudre et de générer un nouveau bloc environ toutes les 10 minutes. Et lorsque cette condition n'est pas remplie, le degré de difficulté est ajusté.
Ce réajustement se fait automatiquement tous les 2.016 blocs (environ toutes les deux semaines). Autrement dit, dans chacun des noeuds du réseau Bitcoin, il y a déjà un morceau de code dans son code source qui a été préparé pour cela. Par conséquent, chaque fois que les 2.016 XNUMX blocs minés sont atteints, tous les nœuds seront recalculés, ce qui entraînera un nouveau niveau de difficulté pour la preuve de travail (PoW).
Comment la difficulté de minage dans Bitcoin est-elle déterminée?
Tout d'abord, il est important de noter que la difficulté de l'exploitation minière est totalement indépendante du nombre de transactions ou de la valeur des transactions. Cependant, il est en corrélation avec la puissance de hachage du réseau, et donc, avec l'objectif et le temps d'extraction.
La formule de calcul de la difficulté est la suivante:
difficulté = difficulté_1_target / current_target
Où la cible est un nombre de 256 bits. difficulté_1_target il peut être différent pour diverses façons de mesurer la difficulté. Traditionnellement, il représente un hachage où les 32 premiers bits sont zéro et le reste est un (c'est ce qu'on appelle "difficulté de groupe»Ou«pdf« ). Le protocole Bitcoin représente les cibles sous la forme d'un type à virgule flottante personnalisé avec une précision limitée. En conséquence, les clients Bitcoin évaluent souvent la difficulté en fonction de cela, connu sous le nom de "bdiff«.
À son tour, le réseau Bitcoin vérifie le temps réel qu'il a fallu pour extraire les derniers 2.016 blocs de la chaîne et le compare à 20.160 minutes. Cette valeur est due au fait que chaque bloc devant être exploité en 10 minutes, le temps estimé pour extraire les 2.016 20.160 blocs est de XNUMX XNUMX minutes. Ensuite, à l'aide de ces données, la relation entre l'intervalle de temps réel et l'intervalle de temps estimé est calculée. Faire les ajustements correspondants à la difficulté en fonction des résultats obtenus, qu'il soit nécessaire de l'augmenter ou de la diminuer.
En quoi la difficulté se traduit-elle?
La difficulté de la blockchain joue un rôle très important. Tout d'abord, il régule la fabrication et l'activation de la crypto-monnaie à un taux constant et prédéterminé. Deuxièmement, cela permet de maintenir le temps de production des blocs de crypto-monnaie de manière uniforme, en évitant les problèmes de sécurité et en évitant d'éventuelles fraudes. De cette manière, lorsque la valeur d'une crypto-monnaie augmente, les mineurs sont attirés pour rejoindre le réseau, augmentant ainsi la puissance de hachage du réseau et la difficulté est ajustée et augmentée. Par conséquent, le taux d'émission de pièces reste constant.
En plus de cela, comme il y a beaucoup de temps entre chaque bloc, les mineurs fournissent une plus grande sécurité au réseau, en étant en mesure de vérifier que tous les blocs répondent aux exigences.
Par conséquent, cette fonctionnalité est importante car elle garantit que les blocs sont générés à la vitesse prédéterminée par le protocole et la sécurité du réseau, en restant résilients même si de plus en plus de mineurs rejoignent le réseau et augmentent la puissance de hachage de la même.
Comment la difficulté de l'exploitation minière en Bitcoin est-elle représentée visuellement?
Bien que cela semble étrange, la difficulté de l'exploitation minière peut être représentée visuellement. En outre, en fonction de la blockchain, cela peut être vu différemment. Cependant, prenons Bitcoin pour montrer comment il est représenté. Voyons d'abord l'image que nous laissons ci-dessous (ou ouvrons le lien), où les données du bloc # 607557.
Regardez les données les bits y difficulté. Le premier est une représentation abrégée en hexadécimal du nombre maximum pouvant être atteint dans le hachage du bloc. La deuxième valeur est une représentation décimale de la difficulté à atteindre cet objectif.
Maintenant, si nous prenons les bits de valeur (1715dbd2) et nous le transformons en un nombre hexadécimal complet, nous obtenons ce qui suit:
bits = 0x00000000000000000015dbd20000000000000000000000000000000000000000
Transformons maintenant cette valeur en décimal:
bits = 2093644940525638357414324633411056914147713045789409280
Comme vous pouvez le voir, cela représente un très grand nombre décimal et c'est le nombre cible maximal à atteindre pour le hachage de bloc. Maintenant bien, Comment vérifier que le hachage de bloc respecte cela?. Très simple, prenons le hachage du bloc et transformons-le de l'hexadécimal en décimal.
Block hash = 000000000000000000144758ca662636f4aa4089caaa776ea18cf53cbc8f5781
Transformer ce résultat en base décimale nous donne le nombre suivant:
Bloc de hachage = 1942313447480713367840564387969267204147459722176321409
Comme vous pouvez le voir, le numéro du hachage de bloc est inférieur à la cible que nous indique les bits. Cela signifie que le bloc est valide pour la difficulté programmée par le protocole Bitcoin à ce moment précis.
Curieusement, nous pouvons mentionner que la valeur du hachage et de la cible sont exprimées en nombres hexadécimaux. Autrement dit, dans un ensemble de chiffres et de lettres, mais à la fin, c'est un nombre. Alors que la difficulté est exprimée en nombres entiers, avec lesquels nous sommes plus familiers.
Qu'est-ce qu'une difficulté élevée?
La difficulté maximale du réseau Bitcoin peut être exprimée comme suit: maximum_target / 1. Et le numéro 1 est utilisé puisque lorsque Bitcoin a été lancé sur le marché, la difficulté du réseau était à ce niveau. Cette valeur ne peut pas être 0 car elle donnerait un résultat infini. Ainsi, le calcul de maximum_target / 1 se traduira par un nombre extrêmement grand, environ 2 ^ 224.
La difficulté concerne uniquement le protocole de consensus PoW?
La difficulté de miner dans une crypto-monnaie est applicable à différents protocoles de consensus comme PoW, Point de vente, DPoSQu'il s'agisse d'un vin rare et exotique ou du même vin dans différents millésimes, quel que soit votre choix au PoA. Mais Ce sont les blockchains qui utilisent le système Proof of Work (PoW), qui utilisent ces données comme un point important pour leur sécurité et leur fonctionnement. Dans un réseau blockchain PoW, les mineurs sont invités à effectuer un test cryptographique dont la difficulté augmente à mesure que la puissance du réseau augmente.
Cela signifie que trouver la bonne solution nécessite des millions de hachages par seconde sur l'ensemble du réseau. L'algorithme de preuve de travail consiste à hacher les en-têtes de bloc et à générer un nombre aléatoire. Pour cela, l'algorithme cryptographique est généralement utilisé SHA-256, jusqu'à ce que vous trouviez une solution qui correspond à un certain modèle.
Tout ce processus entraîne la création d'équipements informatiques plus puissants, tels que FPGA, Processeur, GPU o ASIC pour générer suffisamment de solutions et être en mesure de vérifier les transactions. Ainsi, la difficulté du réseau est ajustée pour garantir que la vitesse de génération de bloc.
Tout ce processus n'est pas répété dans d'autres protocoles car leur fonctionnement est différent et ils concentrent leur capacité à assurer la sécurité sur d'autres mécanismes moins exigeants en énergie et en ressources de calcul.
La difficulté de minage est-elle variable et de s'adapter à la concurrence en Bitcoin?
Oui, la difficulté du minage en Bitcoin est variable et s'adapte à la concurrence qui participe au réseau. Cette difficulté de minage est fournie par un algorithme. Cet algorithme garantit que la difficulté a la valeur idéale, afin que les mineurs puissent produire un nouveau bloc environ toutes les 10 minutes.
Si nous regardons cela dans un scénario extrême, où le prix du Bitcoin tombe à des valeurs extrêmement basses, l'exploitation minière ne serait pas du tout rentable. Tant de mineurs quitteraient le réseau. Mais comme la difficulté est ajustable en fonction de la puissance de hachage dont dispose le réseau à un instant donné, elle diminuerait et s'ajusterait automatiquement. Ouvrant ainsi les portes aux plus petits mineurs, qui pourraient, au moins pendant un certain temps, miner à nouveau du bitcoin comme au début : depuis un ordinateur de bureau ou portable.
Pourquoi la difficulté de l'exploitation minière augmente-t-elle parfois et diminue-t-elle parfois?
La difficulté de minage fonctionne comme un paramètre dynamique qui est constamment ajusté en fonction des conditions du réseau. N'oubliez pas que l'objectif du minage est de découvrir et de générer un nouveau bloc en fonction de la programmation du réseau. Ensuite, la difficulté est ajustée par le même système. Tout cela en tenant compte de la puissance de hachage du réseau à un moment donné.
Prenons l'exemple suivant, si le réseau Bitcoin génère de nouveaux blocs en moins des 10 minutes établies, le même réseau ajustera la difficulté à un degré plus élevé. Autrement dit, comme les blocs sont générés plus rapidement que souhaité, la difficulté d'extraction augmentera. Au contraire, si le réseau génère de nouveaux blocs dans un temps supérieur à 10 minutes, la difficulté de minage sera réduite, car les blocs se généreront plus lentement.
Un autre aspect très influent dans le degré de difficulté du réseau Bitcoin est le coût de l'électricité et la valeur de Bitcoin sur le marché. Ceci par rapport à la monnaie fiduciaire qui sert à couvrir les dépenses de fonctionnement dans le réseau. Ainsi, le prix du kilowattheure en bitcoin est un aspect très important de la difficulté.
Mais lorsque le prix d'un bitcoin est élevé, l'exploitation minière devient rentable; au contraire, si le prix du Bitcoin est bas, certains mineurs quitteront le réseau car leurs bénéfices ne couvrent pas leurs dépenses d'exploitation. Par conséquent, lorsque l'exploitation minière est rentable, plus le nombre de mineurs connectés au réseau est élevé et par conséquent, plus la puissance de hachage est élevée et plus le degré de difficulté est élevé. En revanche, lorsque l'exploitation minière n'est pas rentable, la puissance de hachage diminue et avec elle, la difficulté.
Comment connaître la difficulté actuelle d'une blockchain ?
C'est un autre point lié à la partie technique et aux protocoles de la blockchain. Par exemple, pour connaître la difficulté actuelle du réseau Bitcoin, vous pouvez visiter un explorateur de blocs, par exemple Explorateur Bit2Me, qui vous montre la difficulté de Bitcoin et de son testnet Testnet Bitcoin, en parcourant simplement le dernier bloc généré, vous pouvez voir les derniers blocs ici !et affichez les détails du bloc souhaité.
De même, si vous avez un client Bitcoin, vous pouvez découvrir la difficulté en entrant la commande OP_GETDIFFICULTÉ chez le client de Bitcoin Core.