Bitcoin Mining Difficulty - What is it And How Does it Work?

Updated on: May 2nd, 2020
This content has been Fact-Checked.
Bitcoin Mining Difficulty - What is it And How Does it Work?

Avant même de commencer à comprendre ce que signifie la difficulté d'extraction bitcoin, nous devons savoir comment fonctionne l'exploitation minière. Nous avons déjà abordé ce sujet en détail auparavant, donc nous allons juste vous donner un petit aperçu avant d'entrer dans les différentes nuances de difficulté. Ensuite, nous examinerons comment les difficultés minières sont calculées et comment elles évoluent en fonction des besoins du réseau.

Comment fonctionne l'exploitation minière ? Combien de temps faut-il pour extraire 1 Bitcoin ?

Le réseau de Bitcoin a plusieurs nœuds spécialisés appelés « mineurs » qui utilisent des équipements spécialisés pour résoudre des énigmes cryptographiquement difficiles. S'ils réussissent, ils auront la possibilité d'ajouter des blocs à la blockchain BTC avec succès. Voici comment cela fonctionne :

Le mineur ramasse les transactions en attente dans le mempool et les hachage.

Ils ajoutent une valeur hexadécimale aléatoire à l'avant du hachage et hachage la valeur entière.

Ce hachage doit être inférieur à une valeur particulière, qui est appelée « difficulté ».

Qu'est-ce qui détermine la difficulté d'extraction de bitcoin ? Pourquoi la difficulté BTC augmente-t-elle ?

#1 Pour maintenir l'intégrité du réseau

Le niveau de difficulté de minage Bitcoin augmente ou diminue selon la facilité de minage dans le protocole. Rappelez-vous, Bitcoin doit avoir un temps de bloc cohérent de 10 minutes. En d'autres termes, un nouveau BTC peut être injecté dans l'alimentation circulante toutes les 10 minutes. Pour vous assurer que ce timing ne change pas le protocole Bitcoin :

Augmente les difficultés du réseau lorsqu'il devient plus facile pour les mineurs d'extraire.

Réduisez la difficulté du réseau quand il devient plus difficile pour les mineurs d'extraire.

Le réseau Bitcoin a une difficulté de bloc universelle. Tous les blocs valides doivent avoir un hachage en dessous de la cible. Les pools miniers ont également des difficultés à définir une limite inférieure pour les actions spécifiques au pool.

#2 Relation avec le taux de hachage

L'une des mesures critiques pour juger de l'état d'un réseau de preuve de travail est le taux de hachage. En termes simples, hashrate vous montre à quel point les mineurs sont puissants dans le réseau. Plus le hashrate du réseau bitcoin est élevé, plus il est la sécurité et la vitesse globales. Cependant, ces réseaux doivent garder leur hashrate sous contrôle pour une production de blocs cohérente. C'est pourquoi, lorsque le hashrate devient élevé, la difficulté bitcoin finit par s'élever aussi, ce qui rend plus difficile pour les mineurs de miner facilement dans le réseau.

L'inverse est également vrai.

Si le hashrate de Bitcoin diminue, la difficulté réseau diminuera également. Le hashrate peut diminuer pour les raisons suivantes :

Bitcoin a actuellement une grande difficulté, c'est pourquoi les mineurs ont un temps difficile à miner dans le système.

Le prix de BTC a baissé, c'est pourquoi beaucoup de mineurs ont quitté l'exploitation minière.

Pour comprendre la corrélation entre les deux, examinons leurs graphiques. D'abord, nous avons le taux de hachage.

Après cela, nous avons le graphique de difficulté bitcoin :

Comme vous pouvez le voir, il y a une corrélation très étroite entre les deux. Vers le 26 mars, la difficulté du réseau a chuté de 16 %, passant de 16,55 billions à 13,9 billions. Il s'agit du plus grand crash de difficultés réseau depuis le début de 2013. Pour comprendre pourquoi cela s'est produit cette fois-ci, regardez comment le hashrate a chuté aussi bien juste avant la chute de difficulté bitcoin. Cette baisse s'est produite à cause de l'accident des prix de Bitcoin, qui a forcé beaucoup de mineurs à quitter les opérations.

Comment Bitcoin calcule-t-il la difficulté ?

La difficulté réseau de Bitcoin change tous les blocs 2016. La formule utilisée par le réseau pour calculer la difficulté se présente comme suit :

difficulté = difficulté_1_target/current_target

Dans la formule ci-dessus :

cible est un nombre de 256 bits. Selon le protocole de Bitcoin, les cibles sont un type à virgule flottante personnalisé avec une précision limitée. Les clients Bitcoin se rapprochent de la difficulté en fonction de ce fait. Cette valeur est également appelée bdiff.

difficulty_1_target peut être différent selon la façon dont vous choisissez de mesurer la difficulté. Traditionnellement, il représente un hachage où les 32 bits principaux sont zéro et le reste sont un. En fait, cette valeur est également connue sous le nom de difficulté de pool ou pdiff.

Chaque bloc stocke une représentation emballée de la difficulté bitcoin dans leurs blocs appelés « Bits ». Cette cible apparaît généralement sous la forme 0x1b0404cb (stockée dans l'ordre little-endian : cb 04 04 1b).

Un bloc calcule la valeur cible via une formule prédéterminée. Par exemple. Avec la cible emballée donnée ci-dessus, c'est-à-dire 0x1b0404cb. La cible hexadécimale est :

0x0404cb * 2** (8* (0x1b - 3)) = 0x000000000000000404CB0000000000000000000000000000000000000000

Maintenant, nous allons calculer bdiff et pdiff.

La cible la plus élevée possible (difficulty_1_target) est définie comme 0x1d00ffff ou, sous forme hexadécimale :

0x00ffff * 2** (8* (0x1d - 3)) = 0x000000000000000000000000000000000000000000000000000000000000000000000000

Maintenant que nous connaissons cette valeur, nous pouvons l'utiliser pour calculer notre bdiff en utilisant la formule de difficulté = difficulty_1_target/current_target

Maintenant, comme nous l'avons défini dans la section précédente, le current_target est 0x1b0404cb ou 0x000000000000000404CB0000000000000000000000000000000000000000000000000000.

Donc, pour calculer la difficulté actuelle :

0x000000000000000000000000000000000000000000000000000000000000000000000000/

0x00000000000404CB000000000000000000000000000000000000000000000000

= 16307,420938523983

Par conséquent, bdiff est 16307.420938523983.

Maintenant, calculons le pdiff. Les pools d'exploration ont tendance à utiliser des cibles non tronquées qui placent difficulty_1_target à 0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Si c'est le cas alors pour le même current_target, notre pdiff sera :

0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

0x00000000000404CB000000000000000000000000000000000000000000000000

= 16307,669773817162

Voici un code de programme tiré du wiki Bitcoin qui s'appuie sur les journaux pour faciliter le calcul des difficultés :

#include iostream

#include cmath

float en ligne fast_log (float val)

{

int * const exp_ptr = reinterpret_cast int * (et val) ;

int x = *exp_ptr ;

const int log_2 = ((x 23) et 255) - 128 ;

x et = ~ (255 23) ;

x += 127 23 ;

*exp_ptr = x ;

val = ((-1.0f/3) * val + 2) * val - 2.0f/3 ;

return ((val + log_2) * 0.69314718f) ;

}

difficulté de float (bits int non signés)

{

statique double max_body = fast_log (0x00ffff), scaland = fast_log (256) ;

return exp (max_body - fast_log (bits et 0x00ffffff) + scaland * (0x1d - ((bits et 0xff000000) 24)) ;

}

int main ()

{

std : :cout difficulté (0x1b0404cb) std : :endl ;

retour 0 ;

}

Comment définissez une difficulté minière ?

Les mineurs utilisent du matériel ASIC spécialisé pour extraire des Bitcoins. Ces machines sont extrêmement rapides et produisent des tétrahashes chaque seconde. Il sera extrêmement difficile pour un système de vérifier minutieusement chacun d'entre eux pour voir s'ils satisfont ou non à toutes les conditions nécessaires. Cela est exponentiellement vrai pour les bassins miniers. Ils ne peuvent pas vérifier tous les hachages produits par un mineur bitcoin chaque seconde. C'est pourquoi les pools miniers utilisent un concept appelé « Temps de partage ».

Imaginons donc que votre pool d'exploration bitcoin a défini un temps de partage de 5 secondes. Cela signifie qu'en moyenne, votre pool d'exploitation minière exigera des mineurs qu'ils leur soumettent une part toutes les 5 secondes.

Comment cela se fait-il exactement ?

Votre pool d'exploration bitcoin définira une valeur appelée Difficulté de partage pour chaque mineur. La difficulté de partage d'un mineur est directement proportionnelle à son hashrate individuel. Ainsi, plus le taux de hachage du mineur est élevé, plus sa difficulté à partager est élevée. L'idée est que le mineur utilisera son équipement pour générer des tonnes de hachages. Dès qu'ils trouvent un hachage qui répond à la difficulté de partage cible, ils enverront le hachage au pool.

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

Les mineurs du pool sont récompensés sur la base du « paiement par action » (SPA). Dans ce système, les mineurs sont récompensés pour les actions qu'ils soumettent. Les valeurs des actions dépendent entièrement de la difficulté de découvrir la part.

Prenons un exemple pour voir comment cela fonctionne :

Supposons que vous soyez mineur avec un hashrate individuel de 50 TH/s.

Le pool d'exploration que vous avez rejoint a défini votre Difficulté de partage à 1 000 000.

Dès que vous obtenez des actions supérieures à 1 000 000, vous serez récompensé par la piscine.

Le pool peut changer votre difficulté pour vous assurer que vous ne soumettez pas vos actions trop rapidement.

Maintenant, si vous achetez un nouvel équipement et augmentez votre hashrate à 150 TH/s, la piscine augmentera votre difficulté à 3 000 000. Vous soumettrez des actions au même taux que celui que vous soumettiez précédemment. Cependant, vous obtiendrez 3 fois la récompense que vous receviez précédemment pour les actions que vous soumettez.

La raison pour laquelle les pools recommandent des difficultés plus élevées pour un matériel plus rapide est de réduire la charge réseau sur le système du mineur et sur le pool. Il réduit également le délai de redémarrage de votre matériel d'exploration au fur et à mesure qu'il se prépare pour l'unité de travail suivante. Dans le même temps, la piscine doit faire attention de ne pas régler la difficulté trop élevée qui se traduira par beaucoup d'actions périmées.

REMARQUE : Cible de partage = 1/Difficulté de partage

L'importance de la difficulté dans le consensus de Nakamoto

Pour comprendre à quel point la difficulté est critique pour l'écosystème de Bitcoin, vous devez savoir comment fonctionne le consensus de Nakamoto. Pour un réseau étendu sans entité centralisée, les protocoles consensuels sont le seul moyen de maintenir toute forme de gouvernance. Les algorithmes de consensus traditionnels comme Raft ne sont pas idéaux pour maintenir un protocole cryptoéconomique étendu. C'est pourquoi Satoshi Nakamoto, le créateur de Bitcoin, est venu avec le consensus de Nakamoto. Le principe central du consensus de Nakamoto est que pour participer au système, il faut en payer un prix. Dans le cas de la preuve de travail (POW), c'est-à-dire le consensus de Bitcoin, les mineurs paient un prix avec « travail ». Le travail, dans ce cas, est la quantité importante d'énergie de calcul qu'un mineur doit dépenser pour exploiter un Bitcoin. C'est là que se pose la difficulté. Difficulté est la métrique qui rend l'exploitation Bitcoin difficile, plus, c'est ce que le consensus Nakamoto tire parti pour résoudre le problème de double dépense.

Qu'est-ce que la double dépense ?

La double dépense est la raison pour laquelle toutes les tentatives de création d'une crypto-monnaie décentralisée avaient échoué lamentablement avant Bitcoin. En termes simples, c'est un défaut qui peut permettre à un Bitcoin d'être dépensé plus d'une fois en même temps. Nous n'avons jamais rencontré ce problème lorsqu'il s'agit de liquidités physiques. Après tout, si vous achetez quelque chose avec un billet de 10$, vous ne pouvez pas acheter quelque chose d'autre en même temps avec le même billet, n'est-ce pas ?

Cependant, un jeton numérique a des fichiers numériques qui peuvent être facilement dupliqués, entraînant inévitablement une double dépense. Comme vous pouvez l'imaginer, la double dépense peut avoir plusieurs effets dévastateurs sur l'économie de l'écosystème :

Premièrement, il gonfle l'offre totale de pièces de monnaie dans l'écosystème, ce qui rend l'équation de l'offre et de la demande hors de contrôle.

Deuxièmement, si quelqu'un, n'importe où, peut dépenser la même pièce sans restriction, cela réduira la foi du peuple dans le caractère sacré de cette monnaie.

Bitcoin exige que toutes les transactions soient incluses dans la blockchain, sans faute. Cela garantit que n'importe qui dans le réseau peut tracer chaque Bitcoin droit à sa source même. Un tel niveau de transparence garantit que personne ne pourra doubler les dépenses sans que l'ensemble du réseau ne le remarque. Cependant, pensons à quelque chose de plus diabolique. Supposons que quelqu'un décide de détourner la blockchain en sortant et d'essayer de doubler dépenser tous les Bitcoins.

Que se passe-t-il alors ?

Eh bien, il s'avère qu'en raison de la difficulté du réseau, la quantité de ressources et d'argent dont l'attaquant aura besoin pour prendre en charge la chaîne sera exponentielle. En tant que tel, il ne vaudra tout simplement pas la peine d'agir contre les intérêts du système. C'est ainsi que la difficulté réseau donne à Nakamoto Consensus la puissance de feu dont il a besoin pour maintenir la sécurité et l'intégrité du réseau.

Conclusion - Difficulté minière Bitcoin

Nous espérons que vous avez trouvé beaucoup de valeur dans cet article. Si vous avez des doutes, n'hésitez pas à nous contacter à tout moment.

Ameer Rosic
#SerialEntrepreneur, Investor, #Digitalmarketing Adviser and Cofounder of @Blockgks a #blockchain innovation hub

Like what you read? Give us one like or share it to your friends and get +16

0
Hungry for knowledge?
New guides and courses each week
Looking to invest?
Market data, analysis, and reports
Just curious?
A community of blockchain experts to help

Get started today

Already have an account? Sign In