Preuve de travail : minage et ajustement de la difficulté
Implémentez un mineur PoW et comprenez la recherche de nonces ainsi que la difficulté cible.
Preuve de travail : minage et ajustement de la difficulté est une leçon Cryptology Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cryptology Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cryptology Academy comprend 4 leçons au total.
Qu’est-ce que la preuve de travail
La preuve de travail (PoW) exige qu’un producteur de blocs effectue une tâche coûteuse en calcul pour ajouter un bloc. Cela dissuade le spam et rend la réécriture de la chaîne coûteuse. La vérification de la preuve est rapide (un seul hachage). Le calcul nécessite de nombreuses opérations de hachage.
Le défi du minage
PoW de Bitcoin : trouver un nonce tel que SHA256d(block_header) < target. La cible est un nombre de 256 bits. Une cible plus petite exige davantage de zéros en tête dans la sortie de hachage, ce qui rend les nonces valides plus rares et plus difficiles à trouver.
Démonstration du PoW en Python
import hashlib def mine(data, difficulty): target = "0"*difficulty nonce = 0 while True: h = hashlib.sha256(f"{data}{nonce}".encode()).hexdigest() if h.startswith(target): return nonce, h nonce += 1 nonce, h = mine("block data", 4) print(nonce, h) # hash starts with "0000"
Cible de difficulté
L’en-tête d’un bloc Bitcoin contient un champ « bits » qui encode la cible actuelle. Target = coefficient * 256^(exponent-3). Exemple : bits=0x1703a30c → target = 0x03a30c * 2^(8*(0x17-3)) = un nombre de 256 bits nécessitant environ 72 bits nuls en tête.
Ajustement de la difficulté
Bitcoin ajuste la difficulté tous les 2 016 blocs (environ 2 semaines). Target adjustment: new_target = old_target * (actual_time / 2016 * 10 minutes). Si les blocs ont été produits en moyenne en moins de 10 minutes, la cible diminue (la difficulté augmente). S’ils ont été produits plus lentement, la cible augmente (la difficulté diminue). Cela maintient une durée d’environ 10 minutes par bloc.
Taux de hachage et sécurité
Le taux de hachage du réseau (H/s) mesure la puissance totale de minage. Plus le taux de hachage est élevé, plus la probabilité de trouver par hasard un nonce valide par unité de temps est faible. Pour réécrire k blocs, un attaquant doit disposer de plus de 50 % du taux de hachage du réseau pendant une durée proportionnelle à k*10 minutes.
Attaque à 51 %
Avec un taux de hachage supérieur à 50 %, un attaquant peut : (1) miner une branche secrète, (2) inclure ou exclure des transactions, (3) effectuer une double dépense en publiant une chaîne plus longue après la confirmation d’un paiement. Il ne peut pas : voler les fonds d’autrui, créer des fonds à partir de rien ni annuler des transactions profondément enfouies dans la chaîne.
Minage avec des ASIC et centralisation
Le minage SHA256d de Bitcoin est dominé par les ASIC (circuits intégrés propres à une application), des puces optimisées pour une seule fonction de hachage. Les ASIC sont 10^6 fois plus efficaces que les CPU. Cela concentre le minage dans de grands centres de données et suscite des préoccupations concernant la centralisation.
Preuve de travail à forte contrainte mémoire
Ethereum utilisait Ethash (désormais obsolète), un PoW à forte contrainte mémoire nécessitant un vaste jeu de données DAG. Cette contrainte résiste aux ASIC, car il est difficile d’optimiser la bande passante mémoire à faible coût. Monero utilise RandomX (optimisé pour les CPU et résistant aux ASIC). Zcash utilise Equihash (à forte contrainte mémoire).
Minage égoïste
Stratégie de minage égoïste : conserver secrètement un bloc trouvé, miner un second bloc, puis publier les deux simultanément. Si le moment est bien choisi, les mineurs honnêtes gaspillent leur travail sur le bloc orphelin. Cette stratégie nécessite environ 33 % du taux de hachage pour être rentable en moyenne, et non 51 %.
L’alternative de la preuve d’enjeu
La preuve d’enjeu (PoS, utilisée par Ethereum après la fusion) remplace le travail de hachage par une cryptomonnaie mise en jeu. Les validateurs sont choisis pour proposer des blocs en fonction de leur mise. Le PoS consomme 99,95 % d’énergie en moins que le PoW. Compromis : les hypothèses de confiance et l’économie des attaques sont différentes.
Vérification rapide
Que cherche à maintenir l’ajustement de la difficulté de Bitcoin ?
Récapitulatif
Le PoW exige de trouver un nonce tel que SHA256d(header) < target. La difficulté est ajustée tous les 2 016 blocs. Un taux de hachage de 51 % permet les attaques par double dépense. Les ASIC dominent le minage de Bitcoin ; les fonctions à forte contrainte mémoire résistent aux ASIC. Ensuite : le script Bitcoin et les signatures UTXO.
Questions Fréquemment Posées
La leçon « Preuve de travail : minage et ajustement de la difficulté » est-elle gratuite ?
Oui — le texte complet de « Preuve de travail : minage et ajustement de la difficulté » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cryptology Academy, passe à CoddyKit PRO. Le cours Cryptology Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Preuve de travail : minage et ajustement de la difficulté » ?
Implémentez un mineur PoW et comprenez la recherche de nonces ainsi que la difficulté cible. Tu pratiques Cryptology Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Cryptology Academy ?
Aucune expérience préalable n'est requise. Cryptology Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Preuve de travail : minage et ajustement de la difficulté » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Cryptology Academy ?
Oui. Chaque leçon Cryptology Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Chaînes de hachage et liaison de blocs
- Arbres de Merkle : intégrité des transactions à grande échelle
- Preuve de travail : minage et ajustement de la difficulté
- Script Bitcoin et vérification des signatures UTXO