Algorithme Proof of Work (PoW)
L’algorithme de consensus Proof of Work est le fondement de la cryptomonnaie Bitcoin. Cette cryptomonnaie a été créée de sorte qu'elle soit décentralisée, c'est-à-dire qu'aucune entité centrale ne contrôle les transactions. Elle repose une blockchain infalsifiable ainsi qu'un réseau p2p de nœuds mineurs.
Comment former une transaction Bitcoin ?
Une transaction consiste à débiter un compte pour en créditer un autre. Par exemple, Alice envoie 2 Bitcoin à Bob. Pour ce faire, Alice et Bob ont au préalable créé un portefeuille (ou wallet) permettant de contenir leur Bitcoin.
Techniquement, un wallet repose une paire de clé cryptographique (privée et publique) générée aléatoirement. Ainsi, n'importe qui peut à tout moment générer un portefeuille. Pour créer une transaction, l'émetteur doit y inscrire l'adresse de son wallet (dérivé de la clé publique), l'adresse du récepteur, le montant et le tout doit être signé par la clé privée de l'émetteur. L'identité de l'émetteur peut ensuite être vérifiée grâce à sa clé publique.
Ainsi, Alice signe sa transaction en stipulant qu'elle envoie 2 Bitcoin à Bob. Elle envoie ensuite sa transaction à une petite liste de mineurs (obtenu au préalable à grâce à un système de bootstrap codé en dur dans le wallet).
Comment un mineur inscrit des transactions dans la blockchain ?
Un mineur est un nœud ayant une copie complète de la blockchain obtenue au près d'autres nœuds. Il est capable de prolonger la blockchain en y inscrivant plusieurs transactions, mais seulement sous certaines conditions.
Pour prolonger la blockchain, un mineur constitue un bloc contenant plusieurs transactions (généralement entre 1000 et 2000). Ce bloc contient également plusieurs informations comme un horodatage, une récompense de bloc pour le mineur, le hash du bloc précédant et un nonce (un chiffre aléatoire et modifiable). Pour ajouter son bloc à la blockchain, le mineur doit obtenir un hash à l'aide d'une fonction de hashage (SHA-256) en respectant une condition : le hash doit commencer par un certain nombre de zéros. Comme il est impossible prédire le résultat de cette fonction de hashage, le seul moyen d'obtenir un hash respectant la condition est de modifier le nonce aléatoirement jusqu'à ce que la condition soit vraie. La fonction de hashage SHA-256 étant couteuse en ressource, calculer un hash valide prend un certain temps (en moyenne 10 min). Une fois le hash trouvé, il est ajouté à la fin du bloc. Les blocs sont donc chainés entre eux. Le bloc est ensuite transmis aux nœuds voisins. Ils peuvent alors facilement vérifier le hash trouvé par le mineur.
Le mineur ayant calculé un bloc valide est crédité d'une récompense fixe en Bitcoin. Des frais de transactions payés par les émetteurs peuvent s'ajouter à la récompense du mineur.
Pourquoi la blockchain de Bitcoin est fiable ?
L'intégrité de la blockchain repose sur le fait qu'une majorité de mineur sont d'accord sur les conditions de son utilisation. Ainsi, si un mineur transmet un bloc contenant une transaction erronée (envoient de Bitcoin à partir d'un compte vide par exemple), les autres mineurs n'intègreront pas le bloc dans la blockchain.
Également, l'une des règles primordiales de cette blockchain est que les nœuds auront toujours confiance en la blockchain la plus longue (celle ayant nécessité le plus de travail pour miner les blocs). Cela permet de la protéger de la modification d'anciens blocs : il serait trop long de calculer les hash permettant de chainer les blocs et de rattraper la version actuelle de la blockchain.
D'autre part, la blockchain est résistante au fait qu'un seul nœud puise la manipuler. Du fait de la difficulté de trouver un hash correcte pour un bloc, il est impossible pour un nœud de toujours trouver avant les autres nœuds un hash correcte. Ainsi, il est peu probable qu'un mineur puisse valider plusieurs blocs consécutivement. Donc même si un mineur décide de ne pas intégrer une transaction dans la blockchain, il arrivera un moment où un autre mineur l'intégrera et la blockchain continuera.
Sources :
Wikipédia - Bitcoin
YouTube - But how does bitcoin actually work?
Congratulations @adilbenameur1! You have completed the following achievement on the Hive blockchain And have been rewarded with New badge(s)
Your next target is to reach 50 upvotes.
You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word
STOP
Check out our last posts: