Blockchain - Preuve de travail
Comme toutes les transactions sont horodatées, nous devons implémenter un serveur d'horodatage distribué sur un réseau peer-to-peer. Cela nécessite une implémentation supplémentaire et c'est la preuve de travail que je vais décrire maintenant. À chaque bloc, nous ajoutons maintenant un autre élément appeléNonce comme le montre la figure ci-dessous -
![](https://assets.edu.lat/blockchain/images/proof_of_work.jpg)
Nonce est un nombre tel que le hachage du bloc répond à un certain critère. Ce critère pourrait être que le hachage généré doit avoir ses quatre premiers chiffres pour être zéro.
Ainsi, le hachage généré ressemblerait à 000010101010xxx. En règle générale, le mineur commence avec une valeur Nonce de 0 et continue de l'incrémenter jusqu'à ce que le hachage généré réponde au critère spécifié.
Notez que la génération de hachage fonctionne au hasard et est hors de votre contrôle - c'est-à-dire que vous ne pouvez pas forcer la fonction de hachage à générer un certain hachage. Ainsi, plusieurs itérations peuvent être nécessaires jusqu'à ce que le hachage souhaité avec quatre zéros en tête soit généré. Le temps prévu pour générer un bloc dans le système Bitcoin est de 10 minutes. Une fois que le mineur a réussi à extraire le bloc, il le libère dans le système, ce qui en fait maintenant le dernier bloc de la chaîne.
Notez qu'il y a plusieurs mineurs en compétition pour générer le bloc légitime. Le système Bitcoin récompense le premier mineur à succès en lui donnant certains bitcoins. En général, le mineur avec plus de puissance de calcul peut être un gagnant précoce. Cela peut provoquer des attaques sur l'ensemble du système par ceux qui possèdent une énorme puissance de traitement. Je décrirai les attaques et comment elles sont atténuées vers la fin de ce tutoriel.