Comprendre les principes fondamentaux de la Blockchain, Partie 2: Preuve de travail et preuve d’enjeu

Articles de cette série Comprendre les fondamentaux de la chaîne de blocs:

  1. Partie 1: Tolérance aux pannes byzantines
  2. Partie 2: Preuve de travail et preuve de mise
  3. Partie 3: Preuve de participation déléguée

Dans la première partie, nous avons discuté du problème des généraux byzantins, de la manière de parvenir à la tolérance aux pannes byzantines et de la manière dont tout cela est lié à la blockchain.

L'algorithme de l'article précédent est en fait une solution permettant d'atteindre la tolérance aux pannes byzantines. Cependant, cette solution n’est pas assez efficace et ses variantes ont des contraintes, à savoir que moins d’un tiers du réseau est malhonnête.

Durée d'exécution de la résolution du problème des généraux byzantins avec l'algorithme proposé par Lamport, Shostak et Pease (n = nombre d'acteurs, m = nombre de traîtres)

Cela nous amène à une question classique en informatique:

Pouvons-nous faire mieux?

Le sujet du présent article abordera des algorithmes alternatifs permettant d'atteindre la tolérance aux pannes byzantines.

Remarque: veuillez supporter toutes les simplifications que je fais. Ces algorithmes ont beaucoup de recherches complexes derrière eux. Je fournirai des liens au fur et à mesure que le lecteur intéressé approfondira ses propres recherches.

Les blockchains utilisent des algorithmes de consensus pour désigner un chef qui décidera du contenu du prochain bloc.

Ce chef est également responsable de la diffusion du bloc sur le réseau, afin que les autres pairs puissent vérifier la validité de son contenu.

Preuve de travail (PoW)

C'est l'algorithme le plus populaire utilisé par des monnaies telles que Bitcoin et Ethereum, chacune avec ses propres différences.

Avant de continuer, pour les lecteurs non techniques:

Une fonction de hachage est toute fonction qui peut être utilisée pour mapper des données de taille arbitraire à des données de taille fixe¹.
Si une fonction de hachage est sécurisée, sa sortie ne peut être distinguée de manière aléatoire.
Exemple:
keccak256 ("hello") = 1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8
keccak256 ("hello1") = 57c65f1718e8297f4048beff2419e134656b7a856872b27ad77846e395f13ffe

Dans Preuve de travail, pour qu'un acteur soit élu en tant que leader et choisisse le prochain bloc à ajouter à la blockchain, il doit trouver une solution à un problème mathématique particulier.

Soit ce problème mathématique:

Avec les données X, trouvez un nombre n tel que le hachage de n ajouté aux résultats X soit un nombre inférieur à Y.
Exemple - Le hachage est une fonction de hachage hypothétique dont les sorties sont répertoriées ci-dessous.
Y = 10, X = 'test'
hash (X) = hash ('test') = 0x0f = 15> 10
hash (X + 1) = hash ('test1') = 0xff = 255> 10
hash (X + 2) = hash ('test2') = 0x09 = 9 <10 OK, résolu.

Étant donné que la fonction de hachage utilisée est sécurisée de manière cryptographique [1,2], le seul moyen de trouver une solution à ce problème consiste à utiliser brutalement (en essayant toutes les combinaisons possibles). En d'autres termes, de manière probabiliste, l'acteur qui résoudra le problème susmentionné le plus souvent est celui qui a le plus accès à la puissance de calcul. Ces acteurs s'appellent également des mineurs.

Il a eu beaucoup de succès principalement en raison de ses propriétés suivantes:

  1. Il est difficile de trouver une solution à ce problème donné
  2. Lorsqu'on donne une solution à ce problème, il est facile de vérifier qu'il est correct

Chaque fois qu'un nouveau bloc est exploité, ce mineur est récompensé par une devise (récompense de bloc, frais de transaction) et est donc incité à poursuivre l'exploitation. Dans la preuve de travail, d'autres nœuds vérifient la validité du bloc en vérifiant que le hachage des données du bloc est inférieur à un nombre prédéfini.

En raison de l'offre limitée de puissance de calcul, les mineurs sont également incités à ne pas tricher. Attaquer le réseau coûterait cher en raison du coût élevé du matériel, de l’énergie et des profits miniers potentiels.

La photo montre très bien comment Bitcoin et toute autre pièce utilisant Proof of Work découragent les comportements malveillants.

Pour les lecteurs intéressés par la manière dont fonctionnent les scissions en chaîne (par exemple, les fourches ou les réorganisations de chaîne fonctionnent en cas de désaccord, je suggère cet article.

La preuve de travail fournit la sécurité nécessaire et s’est avérée assez efficace jusqu’à présent. Cependant, il consomme beaucoup d’énergie:

Presque tous les pays africains (séparément) consomment moins d'électricité que l'industrie minière Bitcoin

Preuve de mise (PDS)

Avant de continuer, permettez-moi de faire l'analogie de l'élection du chef (l'acteur qui sélectionnera le prochain bloc) comme une loterie:

Probablement, dans une loterie, si Bob a plus de billets qu'Alice, il a plus de chances de gagner.

D'une manière très similaire:

Dans Proof of Work, si Bob a plus de puissance et d’énergie de calcul que Alice - et peut donc produire plus de travail - il aura plus de chances de gagner (le mien le bloc suivant).

De même, encore une fois:

Dans Proof of Stake, si Bob a plus d’enjeu qu’Alice, il a plus de chances de gagner («le mien» du bloc suivant).

Preuve de participation enlève les besoins en énergie et en puissance de calcul de PoW et les remplace par des enjeux. La mise est considérée comme une quantité de monnaie qu'un acteur est prêt à conserver pendant un certain temps. En retour, ils ont une chance proportionnelle à leur mise d'être le prochain leader et de sélectionner le prochain bloc. Il existe diverses pièces de monnaie utilisant des points de vente purs, telles que Nxt et Blackcoin.

Le principal problème avec les points de vente est le soi-disant problème de «rien en jeu». Essentiellement, dans le cas d'une fourche, les fabricants ne sont pas dissuadés de miser dans les deux chaînes et le risque de problèmes de double dépense augmente. Plus à ce sujet ici.

Afin d'éviter cela, des algorithmes de consensus hybrides sont apparus, tels que la combinaison PoW-PoS utilisée par Decred. La fondation Ethereum mène actuellement une recherche active en vue de la mise au point d’un protocole sécurisé et décentralisé de preuve de participation, avec Casper The Friendly Ghost et Casper The Friendly Finality Gadget.

Conclusion

Dans cet article, nous avons discuté de la preuve de travail et de preuve d’enjeu, qui sont actuellement les algorithmes de consensus qui atteignent la tolérance aux pannes byzantines et qui sont utilisés pratiquement dans les systèmes de blockchain d’aujourd’hui.

Il existe d'autres algorithmes de consensus tels que Practical Tolérance aux pannes byzantines (Tendermint) ou Distributed Byzantine Fault Tolerance (NEO). Vous trouverez ici une excellente comparaison entre PBFT et Casper.

Loom Network est la plateforme blockchain de choix pour les développeurs dapp sérieux - Universal Layer 2 qui fournit aux développeurs les outils dont ils ont besoin pour créer des dapps fonctionnels destinés aux utilisateurs.

Nouveau sur Loom? Commencer ici.

Vous souhaitez miser vos jetons LOOM et aider à sécuriser Loom Network? Trouver comment.

Et si vous avez aimé cet article et que vous souhaitez rester au courant, inscrivez-vous à notre liste de diffusion privée.