Comprendre le Bitcoin introduction à la Blockchain

Comprendre le Bitcoin introduction à la Blockchain

La construction de la blockchain

Les mineurs
Les blocs de la blockchain sont créés et diffusés sur internet par les mineurs. Le caractère aléatoire de temps de calcul de la preuve-de-travail permet de distribuer les chances de création des blocs à tous les mineurs. Le mineur qui résoudra le premier une preuve de travail est, en quelque sorte, tiré au sort.

L’incitation
Pour inciter les mineurs à participer à la création de la blockchain, et investir leur puissance de calcul en preuve-de-travail, les mineurs peuvent prélever des frais sur les transactions enregistrées dans un bloc ou créer des Bitcoins.
Le terme de mineur a été choisi par analogie avec les chercheurs d’or qui par leurs efforts introduisent des pièces d’or en circulation. La création de bloc exige de la puissance de calcul, elle est donc rétribuée par une transaction spéciale, créée par le mineur pour luimême.

Les instances de la blockchain
Au fur et à mesure de la création des blocs et de leur diffusion sur le réseau, chaque mineur assemble les blocs créés par lui-même et par ses pairs pour former sa propre instance de la blockchain.
La blockchain est ainsi stockée localement par chacun des mineurs.

Le protocole
Le protocole définit le format des messages diffusés ainsi que les règles de sélection des blocs, et de sélection de la blockchain parmi les instances concurrentes, afin que chaque mineur, bien que non contraint par une autorité de contrôle, parvienne à une instance identique de la blockchain :
Un bloc est approuvé par un mineur, s’il vérifie trois conditions :
son empreinte numérique est calculée avec son en-tête ;
son empreinte numérique vérifie la preuve-de-travail ;
son contenu est valide.
Chaque mineur ajoute au sommet de sa blockchain tout bloc approuvé.
Chaque mineur diffuse par broadcast tout bloc qu’il crée de façon à faire valider et adopter ce bloc par ses pairs qui construiront alors la même instance de la blockchain.
Si un mineur observe la mise en concurrence de plusieurs instances de la blockchain en recevant simultanément deux blocs candidats. Il est amené à conserver les deux instances, lesquelles divergeront à partir de ces deux blocs reçus. Le mineur doit privilégier la première l’instance qui correspond au premier bloc reçu.
Si un mineur constate une progression plus rapide de l’une de ses instances alors il doit se reporter sur celle-ci. Un mineur doit toujours opter pour la plus longue de ses instances.
Si un mineur constate qu’il ne peut assembler un bloc, cela signifie qu’il lui manque une instance de blockchain susceptible de devenir la plus longue. Il doit interroger ses pairs pour obtenir les blocs manquants ; c’est le cas d’un mineur qui a quitté le réseau volontairement ou du fait d’un incident d’exploitation.

Le consensus
Sans autorité de contrôle il n’est pas possible de vérifier que chaque mineur respecte le protocole. Le protocole est en fait imposé par consensus.
Un mineur qui n’observe pas le protocole, quel que soit sa raison (tentative de fraude, bogue, conception inadaptée, application de règles obsolètes, etc.), ne pourra assembler dans son instance de blockchain les nouveaux blocs créés par la majorité des mineurs.
Autrement dit il sera mis en minorité vis à vis de ses pairs. De même les blocs qu’il crée ne s’assembleront pas à la plus longue instance de blockchain. C’est la raison pour laquelle un mineur ne peut disposer immédiatement de la transaction spéciale qui le rétribue pour son travail. Cette transaction devient valide lorsque suffisamment de blocs ont été ajoutés à la suite du bloc qu’il a créé.
La blockchain officiellement reconnue est donc la plus longue instance, soit celle adoptée à la majorité.
On peut noter ici que le comportement de la majorité des mineurs fait foi ; même si ce comportement est jugé arbitraire (comme se reporter sur l’instance de blockchain du premier bloc reçu) voire même dans certains cas erroné (si la majorité des mineurs utilise un logiciel commun bogué). Ce n’est donc par la spécification du protocole qui compte mais l’implémentation du protocole par le logiciel utilisé par la majorité des mineurs. C’est pourquoi pour amorcer le système, le partage d’un logiciel gratuit et ouvert est une condition nécessaire.

LIRE AUSSI :  Cours réseaux et télécommunications

L’autorégulation
Le système se régule en fonction du trafic, par le consensus et par la mutualisation des ressources des mineurs.
L’ajustement de la preuve-de-travail tous les 2016 blocs est une règle du protocole. Comme toute règle consensuelle, si un mineur ne respecte cette preuve-de-travail ajustée, il sera mis en minorité, et ses blocs seront rejetés par la majorité. La fréquence de 10 minutes correspond à une projection, estimée en 2008, des capacités de stockage des ordinateurs dans les années à venir, notamment pour conserver les en-têtes de blocs en mémoire vive.
Si la difficulté de la preuve-de-travail augmente, exigeant une puissance de calcul de plus en plus grande, les mineurs peuvent alors mutualiser leur ressource dans des pools de mineurs pour atteindre la puissance de calcul requise.
Enfin le nombre moyen de transactions par bloc est induit par les frais prélevés sur les transactions, car ceux-ci compensent le coût en électricité requis par la preuve-de-travail. La taille maximale d’un bloc est cependant fixée à 1 Mo afin de garantir une diffusion rapide des blocs sur le réseau.

La fraude de la double-dépense

Principe de la fraude
La double dépense consiste à émettre deux transactions qui dépensent le même avoir : la première transaction est émise pour payer un premier destinataire, la seconde transaction est émise pour payer un complice ou le pirate lui-même, afin de récupérer la somme dépensée.
Afin que la fraude ne soit pas immédiatement découverte, ces deux transactions doivent coexister dans deux instances concurrentes de la blockchain. La seconde instance doit devenir la plus longue blockchain pour que la fraude réussisse. Dans ce cas, la première transaction ne pourra pas être recyclée dans un autre bloc car elle sera jugée invalide car incompatible avec la seconde transaction et sera donc finalement rejetée. Si entre les deux transactions, le premier destinataire a accepté le paiement, il ne découvrira qu’après coup que cette transaction a été rejetée. Puisque les participants sont anonymes, il ne pourra se retourner contre le fraudeur.

Contrecarrer la fraude
Pour veiller à ne pas être victime de la fraude, le destinataire de paiement doit s’assurer que la transaction émise par le payeur est bien enregistrée dans un bloc de la plus longue des instances et que cette instance est pérenne. C’est pourquoi, il doit attendre qu’un nombre suffisant de blocs succèdent au bloc qui enregistre sa transaction, avant d’accepter le paiement.
La structure d’un bloc par l’arbre de Merkle permet de restituer un bloc allégé ; le destinataire de paiement peut ainsi vérifier une transaction sans avoir à télécharger le contenu complet des blocs.
Si le nombre de bloc successeurs est suffisamment élevé, et que le pirate ne dispose pas de plus de 51% de la puissance de calcul total alors le risque de double-dépense tend vers zéro (cf. la démonstration par Satoshi Nakamoto basé sur la probabilité de Poisson).

Conclusion

La blockchain est ainsi un registre répliqué par chaque mineur du réseau. Les principes de la preuve-de-travail et du consensus permettent de s’assurer qu’il évolue de façon synchrone. Ces principes offrent les bénéfices suivants :
Il laisse au mineur une certaine latitude pour adopter la stratégie de son choix pour la création de blocs (nombre de transaction par bloc, fréquence d’émission des blocs, etc.).
Un mineur peut joindre ou quitter le réseau à tout moment.
Des transactions ou des blocs peuvent être perdus pour un mineur, ou être reçus en retard.
La fraude est contrecarrée tant que la puissance de calcul détenue par les mineurs honnêtes est majoritaire.
La fraude est dissuadée par le principe d’incitation à créer des blocs valides, car il autorise la création de Bitcoins ou le prélèvement de frais sur les transactions.
La répartition des ressources matérielles parmi les participants du réseau offre une plus grande robustesse qu’un système centralisé, car elle permet une redondance des processeurs et du registre des transactions.
La mise en concurrence des mineurs pour le calcul de la preuve-de-travail est en soi une parallélisation du calcul et une mutualisation des processeurs.

Si le lien ne fonctionne pas correctement, veuillez nous contacter (mentionner le lien dans votre message)
Comprendre le Bitcoin introduction à la Blockchain (364 KO) (Cours PDF)
Introduction à la blockchain

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *