Le meilleur mécanisme de consensus est toujours celui qui convient aux besoins des utilisateurs.
Orateur : Uchiha Madara
EDIT : bouffées
Source :Deschool
Cet article est les notes d'étude de la troisième leçon du cours universitaire web3 de DeSchool, et le conférencier est Uchiha Madara. Le contenu est trop sec et non mélangé à de l'eau, il est recommandé de le récupérer et de le digérer lentement. De plus, afin de faciliter la compréhension, cet article comporte quelques modifications et compléments en fonction du contenu du cours.
Le contenu principal de l'article comprend:
Introduction à l'algorithme de consensus
Classification des algorithmes de consensus
Explication détaillée des algorithmes de consensus (PoW, PoS, PoH, PoA, PBFT, etc.)
01 Introduction au mécanisme de consensus
Dans la communication et l'apprentissage de la blockchain, « l'algorithme de consensus » est un vocabulaire très fréquemment évoqué, c'est précisément grâce à l'existence de l'algorithme de consensus que la crédibilité de la blockchain peut être garantie.
**1. Pourquoi avons-nous besoin d'un mécanisme de consensus ? **
Le soi-disant consensus signifie que plusieurs personnes parviennent à un accord. Nos vies sont pleines de mécanismes de consensus. Par exemple, une entreprise a besoin que les actionnaires discutent collectivement pour prendre une décision, et la partie A et la partie B doivent s'asseoir et négocier pour signer un contrat. Ce processus est le processus d'atteinte d'un consensus.
Dans le système blockchain, ce que chaque nœud doit faire est de faire concorder son registre avec les registres des autres nœuds. Si c'est dans un scénario centralisé traditionnel, ce n'est guère un problème, car il y a un serveur central, qui est la bibliothèque dite maîtresse, et d'autres bibliothèques esclaves peuvent être alignées avec la bibliothèque maîtresse.
Mais dans la gestion décentralisée, il n'y a pas de patron, alors comment prendre les décisions ? À l'heure actuelle, un ensemble d'algorithmes est nécessaire pour assurer le consensus. C'est ce dont cet article va parler - le mécanisme de consensus.
**2. Qu'est-ce que le mécanisme de consensus ? **
Le mécanisme de consensus (Consensus Mechanism) complète la vérification et la confirmation des transactions dans un laps de temps très court grâce au vote de nœuds spéciaux ; pour une transaction, si plusieurs nœuds aux intérêts non pertinents peuvent parvenir à un consensus, on peut considérer que l'ensemble du réseau Il y a aussi consensus là-dessus.
Bien que le consensus (Consensus) et la cohérence (Cohérence) soient considérés comme à peu près équivalents dans de nombreux scénarios d'application, il existe des différences subtiles dans leurs significations : la recherche de consensus se concentre sur le processus et l'algorithme des nœuds distribués atteignant un consensus, tandis que la recherche de cohérence se concentre sur le résultat final. état stable du processus de consensus des nœuds ; en outre, la plupart des recherches traditionnelles sur le consensus distribué ne tiennent pas compte du problème de tolérance aux pannes byzantines, c'est-à-dire qu'il est supposé qu'il n'y a pas de nœuds byzantins qui falsifient ou falsifient les données de manière malveillante. Après tout, dans un réseau blockchain complètement ouvert et transparent, rien ne garantit que tous les nœuds ne feront pas le mal.
**3. Quels problèmes le mécanisme de consensus peut-il résoudre ? **
Le mécanisme de consensus peut résoudre le problème de confiance dans le système distribué et assurer la cohérence et la sécurité des données entre les nœuds. Dans un système distribué traditionnel, puisqu'il n'y a pas de mécanisme de confiance entre les nœuds, il est vulnérable aux attaques et à la falsification par des nœuds malveillants, entraînant des pannes du système ou la falsification des données. De plus, avant l'émergence de la technologie de cryptage blockchain, la monnaie numérique cryptée, comme d'autres actifs, était reproductible à l'infini.Sans agence intermédiaire centralisée, les gens n'avaient aucun moyen de confirmer si une somme d'argent numérique avait été dépensée.
Pour faire simple, le mécanisme de consensus peut résoudre efficacement deux problèmes : le problème de la double dépense (une somme d'argent est dépensée deux fois) et le problème général byzantin (des nœuds malveillants falsifient les données).
4. Attaque à double dépense
** **
Le mécanisme de consensus peut résoudre l'attaque de la double dépense dans une certaine mesure : c'est-à-dire qu'une somme d'argent est dépensée deux fois ou plus de deux fois, également appelée "double dépense". Dans le jeu du chat et de la souris, Xiao Lizi a fait une double dépense en faisant un faux chèque. Parce que la vérification du chèque prend du temps, il a utilisé les informations du même chèque pour acheter des articles plusieurs fois dans ce décalage horaire.
Comme nous le savons tous, les nœuds de blockchain considèrent toujours la chaîne la plus longue comme la bonne et continuent de travailler et de l'étendre. Si deux nœuds diffusent des versions différentes d'un nouveau bloc en même temps, le travail se fera sur la base du bloc reçu en premier, mais l'autre chaîne sera également conservée au cas où cette dernière deviendrait la chaîne la plus longue. Attendez que la prochaine preuve de travail soit trouvée et que l'une des chaînes s'avère être la plus longue, puis les nœuds travaillant sur l'autre chaîne de branche changeront de camp.
Comment se fait la double dépense ? Divisé en deux situations :
**(1) Dépense doublée avant confirmation. ** Les transactions à zéro confirmé peuvent ne pas avoir été écrites dans la blockchain à la fin. À moins que le montant ne soit faible, il est préférable d'éviter ces doubles dépenses en attendant au moins la confirmation.
**(2) Dépense doublée après confirmation. **Cela nécessite de maîtriser plus de 50% de la puissance de calcul à mettre en œuvre. C'est-à-dire, semblable à un petit fork, plaçant les transactions d'un magasin dans des blocs orphelins. Ce type de double dépense après confirmation est difficile à mettre en œuvre, mais n'est réalisable qu'en théorie.
** Il existe trois attaques à double dépense les plus courantes : l'attaque à 51 %, l'attaque de race et l'attaque Finney. **
Attaque à 51 % : Une attaque à 51 % se produit lorsqu'une personne ou un groupe prend le contrôle de 51 % de la puissance de hachage de la blockchain, ce qui signifie qu'elle a la capacité de contrôler certains aspects du projet. Sur une blockchain de preuve de travail telle que Bitcoin, cela serait réalisé en prenant le contrôle de la puissance minière du réseau. D'autre part, pour une blockchain de preuve de participation telle que Cardano, cela serait réalisé en contrôlant 51% des jetons jalonnés.
Race Attack : un utilisateur envoie deux transactions à deux marchands (ou le marchand et l'utilisateur) en même temps. Par conséquent, l'attaquant reçoit deux ensembles de marchandises ou reçoit les marchandises et récupère le coût de transaction initial.
Attaque Finney : Un mineur exploite un bloc ou une série de blocs contenant des transactions qui transfèrent de l'argent à sa propre adresse. Les blocs extraits ne sont pas publiés, mais sont conservés pendant que le mineur transfère de l'argent au marchand. Le marchand libère ensuite les marchandises que le mineur a payées avant que le mineur ne publie le bloc qu'il a creusé. Les mineurs publient alors les blocs qui ont été creusés, ce qui effacera le transfert au marchand et laissera le marchand payer de sa poche.
Cas classique d'attaque florale double :
En 2018, l'attaquant contrôlait plus de 51 % de la puissance de calcul sur le réseau BTG. Pendant la période de contrôle de la puissance de calcul, il a envoyé une certaine quantité de BTG dans son portefeuille sur l'échange. Cette branche a été nommée branche A. En même temps, envoyez ces BTG vers un autre portefeuille contrôlé par vous-même, et cette branche s'appelle la branche B. Une fois la transaction sur la branche A confirmée, l'attaquant vend immédiatement BTG pour obtenir de l'argent. Par la suite, l'attaquant mine sur la branche B. Puisqu'il contrôle plus de 51% de la puissance de calcul, la longueur de la branche B dépasse bientôt la longueur de la branche A, et la branche B deviendra la chaîne principale. annulé pour restaurer l'état précédent. Le BTG que l'attaquant a échangé contre de l'argent avant de revenir entre ses mains, et ces BTG sont la perte de l'échange. De cette manière, l'attaquant, s'appuyant sur plus de 50% du contrôle de la puissance de calcul, a réalisé la "double dépense" de la même crypto-monnaie.
5. Échecs byzantins
** **
Le problème des généraux byzantins est un problème hypothétique posé par Leslie Lamport dans les années 1980. Byzance était la capitale de l'Empire romain d'Orient.En raison du vaste territoire de l'Empire romain byzantin à cette époque, les garnisons de chaque armée étaient éloignées les unes des autres et les généraux ne pouvaient transmettre des messages que par des messagers. En cas de guerre, les généraux doivent élaborer un plan d'action unifié.
Cependant, il y a des traîtres parmi ces généraux, qui espèrent saper le plan d'action cohérent des généraux fidèles en influençant la formulation et la diffusion du plan d'action unifié. Par conséquent, les généraux doivent avoir un accord de méthode prédéterminé, afin que tous les généraux fidèles puissent s'entendre. Et une poignée de traîtres ne peuvent pas forcer des généraux loyaux à faire de mauvais plans. En d'autres termes, l'essence du problème des généraux byzantins est de trouver un moyen de faire en sorte que les généraux établissent un consensus sur le plan de bataille dans un environnement de non-confiance avec des traîtres.
Dans les systèmes distribués, en particulier dans l'environnement de réseau blockchain, il est également similaire à l'environnement général byzantin, il existe des serveurs normaux (similaires aux généraux byzantins fidèles), il y a des serveurs défectueux et des serveurs saboteurs (semblables au général byzantin traître). Le cœur de l'algorithme de consensus est de former un consensus sur l'état du réseau parmi les nœuds normaux. S'il n'y a que 3 nœuds, le problème des généraux byzantins est insoluble. Lorsqu'il y a x nœuds du problème dans les nœuds et que les points sommés sont inférieurs à 3x+1, le problème des généraux byzantins n'a pas de solution.
L'émergence du bitcoin résout facilement ce problème en augmentant le coût de la transmission de l'information, en réduisant le taux de transmission de l'information et en ajoutant un élément aléatoire afin qu'un seul général puisse diffuser l'information dans un certain laps de temps. Le premier général à diffuser un message est le premier ordinateur à trouver un hachage valide, et tant que d'autres généraux reçoivent et vérifient ce hachage valide et les informations qui y sont attachées, ils ne peuvent les mettre à jour qu'avec la nouvelle copie d'information du grand livre, puis recalculez la valeur de hachage. Le prochain général qui calcule la valeur de hachage effective peut joindre ses informations mises à jour à la valeur de hachage effective et les diffuser à tout le monde. La course au calcul de hachage redémarre alors à partir d'un nouveau point de départ. En raison de la synchronisation continue des informations réseau, tous les ordinateurs du réseau utilisent la même version du grand livre.
02 Classification des algorithmes de consensus
1. Historique du mécanisme de consensus
Lorsque les ordinateurs et les réseaux sont devenus populaires dans les années 1980 et 1990, des bases de données partagées ont émergé afin que plusieurs utilisateurs puissent accéder aux informations qu'ils stockaient. La plupart ont une base de données centrale à laquelle les utilisateurs peuvent accéder à partir de différents sites. Cette configuration évolue vers un réseau centralisé où les administrateurs accordent des autorisations aux utilisateurs et maintiennent l'intégrité des données.
Ces bases de données partagées sont connues sous le nom de registres distribués car elles enregistrent des informations et sont mises en réseau pour permettre l'accès à de nombreux utilisateurs à différents endroits. L'un des problèmes les plus importants à résoudre est la prévention de la falsification des données et des accès non autorisés, malveillants ou non. Un moyen d'automatiser la gestion des bases de données distribuées est nécessaire pour s'assurer que les données ne sont pas modifiées.
Ce besoin a conduit à la création d'un consensus autonome distribué, où les programmes sur le réseau utilisent la cryptographie pour s'accorder sur l'état de la base de données. Le protocole est conçu pour être atteint en utilisant un algorithme cryptographique pour créer une longue chaîne de nombres alphanumériques (hachage), qui est ensuite vérifiée par un programme exécuté sur le réseau. Le hachage ne change que lorsque les informations introduites dans l'algorithme de hachage changent, de sorte que les programmes sont conçus pour comparer les hachages pour s'assurer qu'ils correspondent.
Lorsque chaque programme exécuté sur le réseau a créé une chaîne de hachage correspondante, on dit que les données ont atteint un consensus sur le réseau. Ainsi, un mécanisme de consensus a été établi, créditant généralement le créateur anonyme de Bitcoin Satoshi Nakamoto. Cependant, de nombreuses personnes ont travaillé sur le mécanisme de consensus pendant des années avant que Satoshi ne publie le livre blanc qui a rendu Bitcoin célèbre.
Des scientifiques des données et des informaticiens tels que Moni Naor, Cynthia Dwork, Adam Beck, Nick Szabo et bien d'autres ont travaillé et contribué au développement des mécanismes de consensus du réseau.
2 Classification des algorithmes de consensus
Selon les différents types de tolérance aux pannes, les algorithmes de consensus peuvent être divisés en deux catégories : l'algorithme de consensus CFT (tolérance aux pannes non byzantine, c'est-à-dire que les nœuds malveillants ne sont pas pris en compte) et l'algorithme de consensus BFT (tolérance aux pannes byzantine, qui c'est-à-dire que les nœuds malveillants sont pris en compte) .
La tolérance de Byzance indique si l'algorithme peut être appliqué aux réseaux à faible confiance. D'une manière générale, l'algorithme byzantin tolérant aux pannes doit être utilisé dans l'environnement de la chaîne publique, tandis que dans la chaîne d'alliance, il peut être sélectionné en fonction du degré de confiance entre les participants de l'alliance. Si le degré de confiance est élevé, tout le monde est un nœud de bonne foi par défaut et peut utiliser l'algorithme CFT (non-Byzantine fault-tolerant).
**En outre, il peut être divisé en deux catégories selon la cohérence : **algorithme de consensus de probabilité et algorithme de cohérence absolue. L'algorithme de consensus probabiliste signifie que parmi différents nœuds distribués, il existe une forte probabilité de garantir que les données entre les nœuds sont cohérentes, mais il existe toujours une certaine probabilité que les données entre certains nœuds soient incohérentes. Par exemple, Proof of Work (PoW), Proof of Stake (PoS) et Delegated Proof of Stake (DPoS) sont tous des algorithmes probabilistes de consensus.
L'algorithme de cohérence absolue signifie qu'à tout moment, les données entre différents nœuds distribués resteront absolument cohérentes et qu'il n'y aura pas d'incohérence de données entre différents nœuds. Par exemple, l'algorithme PAXOS et son algorithme RAFT dérivé.
Ce qui suit est une division et une introduction spécifiques selon le type de tolérance aux pannes.
Algorithme de consensus 3CFT
Crash Fault Tolerance erreur non byzantine : convient aux réseaux avec un degré élevé de confiance des nœuds. Y compris Paxos, Radeau.
Algorithme de consensus 4BFT
Vérifier si le nœud contient des erreurs byzantines malveillantes tend vers une structure décentralisée, y compris la preuve de travail (PoW), la preuve de participation (PoS), la preuve de participation déléguée (DPoS), la preuve d'autorité (PoA), etc.
03 Explication détaillée de l'algorithme de consensus
Est-ce un peu fatigué de voir ça, cliquez sur un favori, faites une pause et continuez à ronger la partie la plus dure de cet article ! Les étudiants disposant d'un temps limité peuvent commencer directement à partir du troisième algorithme PoW.
1Algorithme Paxos
** **
**Introduction à l'algorithme : **En 1990, l'algorithme Paxos est un algorithme de consensus distribué basé sur la transmission de messages proposé par Lamport, et a remporté le prix Turing 2013. Depuis l'avènement de Paxos, il a continué à monopoliser l'algorithme de consensus distribué, résolvant principalement comment parvenir à un consensus sur une valeur spécifique dans un système distribué. Le processus de consensus de l'algorithme Paxos est que le proposant présente une proposition pour gagner le soutien de la plupart des accepteurs. Lorsqu'une proposition reçoit plus de la moitié du soutien, elle envoie le résultat final à tous les nœuds pour confirmation. Au cours de ce processus, si le Proposer échoue, il peut Il est résolu en déclenchant le mécanisme de timeout Si le Proposer de chaque nouvelle série de propositions échoue, le système ne pourra jamais parvenir à un consensus. Mais la probabilité que cela se produise est extrêmement faible.
Le premier protocole Basic Paxos était complexe et relativement inefficace, c'est pourquoi une version améliorée de Paxos a été proposée plus tard. Par exemple : Fast Paxos, Multi-Paxos et Byzanetine Paxos, etc.
**Cas d'utilisation : **ZooKeeper
**Principe de l'algorithme : **L'algorithme Paxos s'exécute dans un système asynchrone qui autorise les temps d'arrêt et les pannes, ne nécessite pas de livraison fiable des messages et peut tolérer la perte, le retard, le désordre et la répétition des messages. Il utilise le mécanisme majoritaire (Majority) pour assurer la tolérance aux pannes de 2f+1, c'est-à-dire qu'un système avec 2f+1 nœuds permet au plus f nœuds de tomber en panne en même temps. Tant qu'il y a moins de (n-1)/2 échecs, Paxos parvient à un consensus. Ces échecs ne peuvent pas être byzantins, sinon la preuve BFT serait violée. Par conséquent, le principe de cet algorithme est de supposer que les messages ne peuvent jamais être corrompus et que les nœuds ne peuvent pas s'entendre pour corrompre le système.
Paxos procède à une série de cycles de négociation dans lesquels un nœud a l'état "leadership". Si le leader n'est pas en ligne, la progression s'arrêtera jusqu'à ce qu'un nouveau leader soit élu, ou si l'ancien leader revient soudainement en ligne.
Paxos divise les rôles dans le système en proposant (proposant), décideur (accepteur) et apprenant de la décision finale (apprenant) : Proposeur : proposer une proposition (proposition). Les informations sur la proposition incluent le numéro de proposition (ID de proposition) et la valeur proposée (Valeur). Accepteur : Participer à la prise de décision et répondre aux propositions des Proposants. Après réception de la proposition, la proposition peut être acceptée. Si la proposition est acceptée par la majorité des accepteurs, la proposition est dite approuvée. Apprenant : ne participez pas à la prise de décision, apprenez la dernière proposition convenue (valeur) des proposants/accepteurs.
2. Algorithme Raft
**Introduction à l'algorithme :**L'algorithme Raft (Replication and Fault Tolerant) est une implémentation simplifiée de la paire d'algorithmes Paxos. Le nom Raft vient de l'acronyme "Reliable, Replicated, Redundant, And Fault-Tolerant" Redundant, Fault Tolerant"). raft fait beaucoup de belles simplifications sur Paxos avec la continuation du journal. Il garantit la cohérence du système lorsque plus de la moitié des nœuds d'un système composé de n nœuds fonctionnent normalement. Contrairement à l'algorithme Paxos, qui est directement dérivé du problème de cohérence distribuée, l'algorithme Raft est proposé du point de vue d'une machine à états multi-copies, et est utilisé pour gérer la réplication des journaux de la machine à états multi-copies. Par exemple, dans un système à 5 nœuds, 2 nœuds sont autorisés à avoir des erreurs non byzantines, telles qu'un temps d'arrêt de nœud, une partition de réseau et un retard de message.
**Cas d'utilisation : **Réplication maître-esclave de base de données, chaîne d'alliance.
Principe de l'algorithme : Il existe trois rôles dans le système Raft : leader, suiveur et candidat. Dans des circonstances normales, il n'y aura qu'un seul leader, et les autres sont des suiveurs. Et le leader sera responsable de toutes les demandes externes, si elles ne sont pas reçues par la machine du leader, la demande sera dirigée vers le leader. Habituellement, le leader enverra un message à une heure fixe, c'est-à-dire un battement de cœur (heartbeat), pour faire savoir aux suiveurs que le leader du cluster est toujours en activité. Chaque suiveur concevra un mécanisme de temporisation (timeout).Lorsque le battement de cœur n'est pas reçu pendant une certaine période de temps (généralement 150 ms ou 300 ms), le système entrera dans l'état d'élection.
À ce moment, le cluster entre dans un nouveau tour d'élection (mandat) et commence une élection. Si l'élection est réussie, le nouveau leader commencera à effectuer un travail. Sinon, le mandat sera considéré comme terminé et un nouveau mandat commencera et les prochaines élections commenceront.
Les élections sont dirigées par des candidats. Cela oblige les candidats à se nommer eux-mêmes et à solliciter des votes d'autres serveurs selon le principe du premier arrivé, premier servi lorsque le rythme cardiaque du leader s'arrête. Chaque serveur émet un seul vote par tour d'élection pour ou contre le candidat actuel. Si vous n'obtenez pas plus de la moitié des voix, vous passerez au prochain tour des élections. Les candidats restants continuent de se désigner selon le principe du premier arrivé, premier servi. jusqu'à ce qu'un chef soit élu.
**Avantages de l'algorithme Raft : **Le premier point est la simplicité. Si nous creusons profondément là où Paxos est plus complexe que Raft, Heidi Howard et Richard Mortier ont découvert que la complexité de Paxos se reflétait sous deux aspects. Tout d'abord, Raft valide les journaux de manière séquentielle, tandis que Paxos autorise la validation des journaux dans le désordre, mais nécessite un protocole supplémentaire pour combler les trous de journal qui peuvent en résulter. Deuxièmement, toutes les répliques du journal dans Raft ont le même index, terme et ordre, alors que dans Paxos, ces termes peuvent différer.
Le deuxième point est que Raft a un algorithme d'élection de leader efficace. L'algorithme d'élection donné dans l'article Paxos compare la taille de l'identifiant du serveur. Lorsque plusieurs nœuds se présentent aux élections en même temps, le nœud avec le plus grand identifiant de serveur l'emporte. Le problème est que si le chef élu de cette manière manque de journaux, il ne peut pas immédiatement effectuer l'opération d'écriture et doit d'abord copier certains journaux d'autres nœuds. Le journal Raft peut toujours sélectionner le nœud avec le journal majoritaire, il n'est donc pas nécessaire de rattraper le journal. Bien que parfois l'élection soit retentée en raison de la division des votes, il s'agit généralement d'un algorithme d'élection plus efficace.
Pour l'algorithme Paxos, si un serveur est très en retard, voire quelques jours en retard dans les logs, mais est élu leader à un moment donné, cela entraînera un certain temps de blocage. Dans l'algorithme Raft, un nœud dont le journal est derrière ne sera jamais sélectionné.
3 Preuve de travail (PoW)
Introduction à l'algorithme : Une technologie informatique qui a d'abord été utilisée pour lutter contre le spam. En 2008, Satoshi Nakamoto a proposé Bitcoin et blockchain dans le livre blanc Bitcoin "Bitcoin : A Peer-to-Peer Electronic Cash System", et a conçu de manière innovante l'algorithme PoW, qui a été appliqué à Bitcoin pour résoudre des énigmes mathématiques afin de participer au consensus. Le contenu principal de l'algorithme consiste à utiliser la puissance de calcul pour trouver une valeur nonce qui satisfait le hachage de bloc. Cependant, les gens ont rapidement découvert les problèmes de ce mécanisme de consensus, c'est-à-dire que la grande consommation d'énergie et le contrôle de la puissance de calcul par de grands pools de minage entraîneront toujours des problèmes de centralisation.
Principe de l'algorithme : La principale caractéristique du système de preuve de travail est que le client doit effectuer un travail difficile pour obtenir un résultat, mais le vérificateur peut facilement vérifier si le client a effectué le travail correspondant grâce au résultat. . Une caractéristique essentielle de ce schéma est l'asymétrie : le travail est modéré pour le demandeur et facilement vérifiable pour le vérificateur. Il diffère des captchas, qui sont conçus pour être faciles à résoudre par des humains plutôt que par des ordinateurs.
La preuve de travail (PoW) trouve un Nonce numérique par calcul, de sorte que la valeur de hachage du contenu une fois les données de transaction reconstituées respecte la limite supérieure spécifiée. Une fois que le nœud a trouvé avec succès une valeur de hachage satisfaisante, il diffusera immédiatement le bloc empaqueté à l'ensemble du réseau, et les nœuds du réseau le vérifieront immédiatement après avoir reçu le bloc empaqueté diffusé.
**Inconvénients : **Vitesse lente ; énorme consommation d'énergie, pas bon pour l'environnement ; vulnérable aux "économies d'échelle".
Avantages : Testé de manière approfondie depuis 2009 et encore largement utilisé aujourd'hui.
4 Preuve de participation (PoS)
Introduction à l'algorithme : En 2011, Quantum a été proposé sur le forum Bitcointalk. En août 2012, Peercoin, le premier projet de blockchain basé sur le consensus PoS, est né Peercoin est la première application à implémenter l'algorithme PoS. L'intérêt de Peercoin est l'âge des pièces, qui est le produit du nombre de pièces détenues par le nœud et du temps de détention. L'initiation d'une transaction consommera une certaine quantité d'âge des pièces, et chaque fois que l'âge des pièces 365 est consommé, un an taux d'intérêt de 5% sera obtenu.
Utilisateurs : Ethereum (2.0), Conflux, Peercoin.
Principe de l'algorithme : Par exemple, si quelqu'un détient 100 Dotcoins dans une transaction pour un total de 30 jours, alors l'âge de la pièce est de 3000, et un bloc PoS est trouvé plus tard, l'âge de la pièce est vidé à 0, et l'intérêt est obtenu C'est 0,05*3000/365=0,41 pièces. Au cours du processus de consensus, les nœuds obtiennent la comptabilité tout au long de l'âge des pièces consommées. Plus le nœud consomme d'âge des pièces, plus il a de chances d'obtenir le droit de comptabilité. Le principe de la chaîne principale fixée par l'algorithme est le suivant : la chaîne qui consomme le plus de monnaie est la chaîne correcte et efficace dans le système.
Avantages : Pas besoin d'équipement minier puissant et coûteux. Réduisez la consommation de ressources et réduisez la possibilité d'attaques de 51 %.
Inconvénients : Cela peut amener les riches à thésauriser les crypto-monnaies, formant l'effet Matthew, ce qui peut provoquer une inflation des crypto-monnaies.
5 Preuve d'historique (PoH)
**Introduction à l'algorithme : **La preuve de l'historique a été créée par Solana, une blockchain à haut débit qui a été lancée en 2018. La preuve de l'historique permet aux participants du réseau de parvenir à un consensus dans le temps en utilisant une fonction de délai vérifiable, évitant ainsi le "plus long règle de la chaîne.
PoH est l'horloge du réseau et TowerBFT est sa tour de guet, chargée d'empêcher les nœuds malveillants d'usurper les paramètres de temps. Tout validateur qui a voté pour un bloc doit attendre que le bloc suivant soit produit et obtenir la confirmation de la preuve de l'histoire que "le temps a passé" avant de voter à nouveau.
Solana sépare intelligemment la chaîne temporelle et l'état basés sur le hachage. Au lieu de lier les hachages de chaque bloc ensemble, le vérificateur du réseau hache le hachage lui-même dans le bloc. Ce mécanisme est PoH . PoH établit une séquence cryptographiquement vérifiable d'événements au fil du temps en utilisant une fonction de retard vérifiable (VDF) à haute fréquence. Cela signifie essentiellement que PoH est comme une horloge cryptographique qui aide le réseau à s'accorder sur l'heure et l'ordre des événements sans attendre les messages des autres nœuds. La sortie séquentielle des hachages d'état de blockchain historiquement prouvés donne une séquence vérifiable d'événements.
**Utilisateur :**Solana
Principe de l'algorithme : Leader génère un horodatage pour chaque donnée de signature (transaction à prouver), et trie directement les transactions, évitant ainsi le problème de tri du temps dans les points de vente, et chaque vérificateur de garantie peut vérifier indépendamment, ce qui raccourcit considérablement le problème de la réorganisation du temps lors de la vérification, et n'a besoin que de vérifier la preuve de la transaction.
Avantages : Frais peu élevés, seulement une fraction de centime par transaction, vitesse de transaction rapide, bonne évolutivité,
** Inconvénients : ** Problèmes de centralisation, Solana compte actuellement moins de 1200 validateurs validant les transactions sur son réseau. Moins d'applications décentralisées : souvent appelé le tueur d'Ethereum. Selon son site Web, plus de 350 Dapps ont été créés sur Solana, contre près de 3 000 sur Ethereum, et c'est là que Defi a actuellement besoin de plus de temps de développement et d'innovation.
6 Preuve d'autorité (PoA)
Introduction à l'algorithme : Il a été proposé en 2017 par Gavin Wood, le co-fondateur d'Ethereum (ETH) et de Parity Technologies. Le mécanisme PoA ne mine pas et ne nécessite pas de Token. Dans un réseau blockchain secondaire basé sur PoA, toutes les transactions et tous les blocs sont traités par des validateurs. Le coût de maintenance de la plate-forme PoA est faible, mais dans PoA, le vérificateur de la blockchain de transaction et de vérification doit être une personne qui peut réussir l'examen de fiabilité. Par conséquent, les vérificateurs de PoA doivent accorder une grande attention à leur propre réputation. La réputation est un atout très important dans le PoA. En règle générale, les validateurs divulguent leur identité réelle. À l'heure actuelle, la technologie blockchain formée par ce mécanisme de consensus est principalement appliquée aux chaînes d'alliance et aux chaînes privées présentant des caractéristiques industrielles évidentes.
Utilisateurs : PoA, Ethereum Kovantestnet, xDai, VeChain et la chaîne logistique de Walmart.
Principe de l'algorithme :
a. Choisissez un certificateur faisant autorité ;
b. Un certain nombre de vérificateurs généreront des blocs pour enregistrer les transactions et recevoir des récompenses en bloc et des frais de transaction. Dans le PoA, le vérificateur est la clé de tout le mécanisme de consensus. Le vérificateur obtient le droit de garantir le réseau en plaçant cette identité en échange de récompenses en bloc. Si le vérificateur agit de manière malveillante ou s'entend avec d'autres vérificateurs tout au long du processus, les acteurs malveillants peuvent être supprimés et remplacés via la gestion en chaîne. Les garanties légales anti-fraude existantes sont appliquées sur l'ensemble du réseau pour protéger les participants contre les actions malveillantes des validateurs.
avantage:
A. Nécessite moins de puissance de calcul, pas d'exploitation minière, d'économie d'énergie et de protection de l'environnement ;
b La vérification est rapide et prend en charge des transactions plus rapides ;
c. Les vérificateurs de l'ensemble du réseau se supervisent mutuellement et peuvent voter pour rejoindre les vérificateurs expérimentés ou éliminer les vérificateurs non qualifiés à tout moment
d. Les hard forks sont protégés par la loi et chaque validateur signe un accord légal.
défaut:
a. L'identité publique, la vie privée et l'anonymat seront réduits
b. Les validateurs sont désignés comme des nœuds d'autorité centralisés légalement soutenus
**7 Preuve de travail différée (**Preuve de travail différée, dPoW)
** **
**Introduction à l'algorithme :**Avant d'expliquer DPoW, vous devez expliquer ce qu'est PoB. PoB (Proof of Burn) est appelé le mécanisme de preuve de gravure, qui est un engagement à voter qui a la direction du réseau en brûlant les jetons entre ses propres mains. Plus le nombre de jetons brûlés est élevé, plus la probabilité d'atteindre le leadership du réseau est élevée.
Dans la blockchain basée sur dPoW, les mineurs ne sont plus des jetons récompensés pour l'exploitation minière, mais du "bois" qui peut être brûlé - brûler du bois. Les mineurs utilisent leur propre puissance de calcul pour enfin prouver leur charge de travail grâce à l'algorithme de hachage, puis obtenir le bois correspondant, qui n'est pas échangeable. Lorsque le bois s'est accumulé jusqu'à une certaine quantité, vous pouvez vous rendre sur le site de combustion pour brûler le bois.
Après calcul par un ensemble d'algorithmes, la personne qui brûle plus de bois ou de BP ou un groupe de BP peut obtenir le droit de produire un bloc dans le segment d'événement suivant, et obtenir une récompense (Token) après avoir réussi à produire un bloc. Étant donné qu'il peut y avoir beaucoup de personnes qui brûlent du bois sur une période donnée, la probabilité de génération de blocs au cours de la période suivante est déterminée par la quantité de bois brûlée par soi-même. Plus il y a de brûlés, plus la probabilité d'obtenir le droit de produire des blocs dans la prochaine période de temps est élevée.
Cela peut permettre d'atteindre un équilibre entre la puissance de calcul et les droits miniers. Les mineurs et les pools miniers dotés d'une énorme puissance de calcul ne sont pas nécessairement tenus de devenir des producteurs de blocs. Les petits mineurs ont aussi une source, tant qu'ils travaillent dur et accumulent une certaine quantité de bois, ils peuvent aussi produire des blocs. L'efficacité est garantie, tout le monde participe et le mode de participation le plus populaire garantit le concept de décentralisation, empêchant les organisations disposant d'une puissance de calcul ou de grands détenteurs de devises de dominer le réseau.
**Utilisateur :**Komodo
Principe de l'algorithme : Il existe deux types de nœuds dans le système dPoW : les nœuds notaires et les nœuds normaux. Les 64 nœuds de notaire sont élus par les parties prenantes de la blockchain dPoW pour ajouter des blocs notariés de la blockchain dPoW à la blockchain PoW attachée. Une fois qu'un bloc est ajouté, le hachage du bloc est ajouté à la transaction Bitcoin signée par les 33 nœuds notaires et crée un enregistrement de bloc dPow haché dans la blockchain Bitcoin. Le dossier a été notarié par une majorité de nœuds de notaire dans le réseau.
Afin d'éviter les guerres de minage entre nœuds notaires et de réduire l'efficacité du réseau, Komodo a conçu une méthode de minage utilisant un mécanisme de polling, qui a deux modes de fonctionnement.
En mode "No Notary", tous les nœuds du réseau sont pris en charge pour participer à l'exploitation minière, ce qui est similaire au mécanisme de consensus PoW traditionnel. En mode « Notaires actifs », les notaires du réseau minent en utilisant un taux de difficulté du réseau considérablement réduit. En mode "activation de notaire", chaque notaire est autorisé à utiliser sa difficulté actuelle pour miner un bloc, tandis que les autres nœuds de notaire doivent utiliser 10 fois la difficulté de minage, et tous les nœuds normaux utilisent 100 fois la difficulté des nœuds de notaire à miner.
**Avantages : **Économie d'énergie ; sécurité accrue ; peut ajouter de la valeur à d'autres blockchains en fournissant indirectement du Bitcoin (ou toute autre chaîne de sécurité), sans payer le prix des transactions Bitcoin (ou toute autre chaîne de sécurité).
Inconvénients : Seules les blockchains utilisant PoW ou PoS peuvent adopter cet algorithme de consensus ; en mode "Notaires actifs", les hashs des différents nœuds (notaires ou nœuds normaux) doivent être calibrés en taux, sinon la différence entre les taux de hachage exploserait.
8 PoS autorisés (DPoS, Delegated Proof-of-Stake)
Introduction à l'algorithme : Le mécanisme DPoS, également connu sous le nom de "Mécanisme de preuve d'autorisation de partage" et "Mécanisme de fiducie", a été proposé en avril 2014 par Dan Larimer (BM), le développeur en chef de Bitshares. D'un certain point de vue, le DPOS est un peu comme un système parlementaire ou un système d'assemblée populaire. Si un délégué ne remplit pas ses fonctions (ne produit pas de bloc lorsque c'est son tour), il est radié et le réseau élit un nouveau super-nœud pour le remplacer.
Pour faciliter la compréhension, un autre exemple peut être donné. Imaginez une entreprise avec un total de 1 000 employés, chacun d'eux détenant un nombre variable d'actions de l'entreprise. De temps en temps, les employés peuvent voter pour les 10 personnes qu'ils reconnaissent le plus pour diriger l'entreprise, et les droits de vote de chaque employé sont proportionnels au nombre d'actions qu'il détient. Après que tout le monde ait voté, les 10 personnes ayant obtenu le taux de vote le plus élevé deviendront les dirigeants de l'entreprise.
Si un dirigeant est incompétent ou fait quelque chose de préjudiciable à l'entreprise, l'employé peut révoquer le vote pour le dirigeant, de sorte que son taux de vote ne puisse pas entrer dans le top 10, démissionnant ainsi de la direction.
**Avantages : **Économie d'énergie ; rapide ; le site de blog à fort trafic Steemit l'utilise. Le temps de blocage d'EOS est de 0,5 seconde.
**Inconvénients : **Légèrement centralisé ; les participants à fort enjeu peuvent voter pour devenir un validateur (cela a récemment posé un problème dans EOS).
9 Tolérance aux pannes byzantine pratique (PBFT)
** **
Introduction à l'algorithme : Dans l'algorithme PBFT, un nœud sera considéré comme le nœud maître, tandis que les autres nœuds sont des nœuds de secours. Tous les nœuds du système communiqueront entre eux, et le but ultime est que chacun puisse parvenir à un consensus sur le principe de la minorité obéissant à la majorité.
Processus de consensus :
a. Le client envoie une demande au nœud maître pour effectuer une opération
b. Le nœud maître diffuse cette demande à chaque nœud de secours
c. Tous les nœuds exécutent l'opération et renvoient le résultat au client
d. Lorsque le client reçoit f+1 résultats identiques de différents nœuds, le processus se termine. f représente la valeur maximale des nœuds couchés possibles.
Utilisé par : HyperLedgerFabric, Stellar, Ripple, Dispatch
**Avantages : ** Haut débit, évolutif.
Inconvénients : Couramment utilisé dans les réseaux privés et autorisés.
10 Tolérance de panne byzantine déléguée (dBFTTolerance de panne byzantine déléguée, dBFT)
Introduction à l'algorithme : La communauté blockchain chinoise NEO (anciennement appelée Xiaoyi) a proposé un algorithme byzantin amélioré tolérant les pannes dBFT. Cet algorithme s'appuie sur l'idée de conception de points de vente sur la base de PBFT. Le comptable, puis les comptables atteignent un consensus grâce à l'algorithme byzantin tolérant aux pannes. Cet algorithme améliore le manque de cohérence finale du PoW et du PoS, rendant la blockchain adaptée aux scénarios financiers.
Également pour résoudre le problème des généraux byzantins, le mécanisme "Authorized Byzantine Fault Tolerance" est un algorithme de consensus qui garantit la tolérance aux pannes implémentée à l'intérieur de la blockchain NEO. Dans ce mécanisme, il y a deux participants, l'un est le "nœud de comptabilité" pour la comptabilité professionnelle et l'autre est un utilisateur ordinaire du système.
Les utilisateurs ordinaires votent pour déterminer les nœuds de comptabilité en fonction de la proportion de leurs avoirs. Lorsqu'un consensus doit être adopté, un porte-parole est choisi au hasard parmi ces nœuds de comptabilité pour élaborer un plan, puis d'autres nœuds de comptabilité suivent la règle byzantine tolérante aux pannes. C'est-à-dire que le principe de la minorité obéissant à la majorité fait une déclaration. Si plus de 66 % des nœuds sont d'accord avec le plan d'orateur, le consensus est atteint ; sinon, l'orateur est réélu et le processus de vote est répété.
Étant donné que tous les délégués peuvent vérifier les propositions de blocs, il est facile de comprendre si les données envoyées par l'orateur sont valides ou non. Ainsi, si l'orateur est malhonnête et envoie une proposition invalide aux deux tiers des délégués, les blocs ne correspondront pas et les propriétaires des nœuds ne les valideront pas. Un consensus est atteint par un vote à la majorité des deux tiers et un nouveau président est élu.
**Utilisateur :**Néo
Processus de consensus :
a. N'importe qui peut être un représentant pourvu qu'il remplisse les conditions requises. Tous les détenteurs de jetons NEO peuvent voter, les délégués ne sont pas anonymes et 1 000 GAS sont nécessaires pour devenir propriétaire d'un nœud.
b) Un orateur est choisi au hasard parmi les délégués.
c) Le locuteur construit un nouveau bloc à partir des transactions en attente de vérification. Le Président transmet ensuite la proposition aux élus. Ils sont censés suivre toutes les transactions et les enregistrer sur le réseau.
d) Les délégués sont libres de partager et de comparer les propositions qu'ils ont reçues pour tester l'exactitude des données ainsi que l'honnêteté des orateurs. Si plus des deux tiers des délégués parviennent à un consensus et le valident, le bloc est ajouté à la blockchain.
**Avantages : **Rapide (la génération d'un bloc prend 15 à 20 secondes) ; grand débit de transaction, pas besoin de consommer de l'énergie, évolutif et pas de fourches.
Inconvénients : Il n'y a pas d'anonymat, et une véritable identité est nécessaire pour fonctionner pour être élu. Tout le monde se bat pour être la chaîne racine. Il peut y avoir plusieurs chaînes racine.
Introduction à l'algorithme : Les principes de dBft et RPBFT sont similaires à ceux de PBFT, sauf que tous les nœuds ne participent pas au consensus, mais les nœuds sont divisés en deux types :
a. Nœud de consensus : un nœud qui exécute le processus de consensus PBFT et a le pouvoir de générer des blocs à son tour
b. Nœud de vérification : n'exécutez pas le processus de consensus, vérifiez si le nœud de consensus est légal, bloquez la vérification, après plusieurs cycles de consensus, il passera à un nœud de consensus
Dans la tolérance aux pannes byzantine à tour de rôle, les nœuds de consensus sont remplacés à leur tour par des nœuds de vérification.
**Cas d'utilisation :**Fisco-BCOS
**Avantages : **La vitesse de transmission est plus rapide que les commérages et il n'y a pas de paquet de message redondant
Diviser pour mieux régner, la bande passante sortante de chaque nœud est O(1), forte évolutivité
Inconvénients : Le nœud intermédiaire est un point unique et nécessite des stratégies supplémentaires de tolérance aux pannes
12. AptosBFT
** **
Introduction à l'algorithme : Il s'agit également d'un algorithme dérivé de PBFT. L'algorithme de consensus nommé d'après Aptos est basé sur HotStuff, lui-même basé sur PBFT. Les avantages de ce modèle d'algorithme sont comme les oignons et les poupées russes, qui doivent être épluchés couche par couche. Chaque nœud ne communique qu'avec le chef, plutôt que d'envoyer des messages au chef et à tous les autres "généraux". Le leader diffuse un message (bloc proposé) sur lequel voter ; chaque nœud envoie son vote au leader qui a collecté le message.
Cas d'utilisation : Aptos
Enfin, un résumé de cette partie est joint :
** De plus, il existe des algorithmes de consensus peu courants. **
En 2015, le professeur David Mazieres, directeur scientifique de Stellar.org, a proposé le Stellar Consensus Protocol (SCP). Le SCP a évolué sur la base de l'accord fédéral byzantin et de l'accord Ripple, et est le premier mécanisme de consensus dont la sécurité est prouvée, avec quatre propriétés clés du contrôle décentralisé, de la faible latence, de la confiance flexible et de la sécurité asymptotique.
La même année, le projet Sawtooth Lake d'Hyperledger a combiné le consensus Ripple et SCP et a proposé un algorithme de consensus de vote Quorum pour faire face aux scénarios d'application qui nécessitent une finalité de transaction instantanée.
En 2016, le lauréat du prix Turing et professeur au MIT, Sivio Micali, a proposé un algorithme de consensus byzantin tolérant aux pannes rapide appelé AlgoRand. Cet algorithme utilise la technologie de loterie cryptographique pour sélectionner le vérificateur et le leader du processus de consensus, et grâce à son BA * The Byzantine Fault Le protocole tolérant parvient à un consensus sur de nouveaux blocs. AlgoRand nécessite très peu de calculs et très peu de fourches, et est considéré comme une technologie de consensus de grand livre distribué vraiment démocratique et efficace.
En 2017, l'Université Cornell a proposé un nouvel algorithme appelé Sleepy Consensus (consensus endormi).Ce consensus vise le fait que la plupart des nœuds de consensus à grande échelle dans l'environnement Internet peuvent être hors ligne, et que seuls quelques nœuds sont en ligne La réalité de participer au processus de consensus. Cette étude prouve que l'algorithme de consensus traditionnel ne peut pas garantir la sécurité du consensus dans cet environnement.Cependant, en utilisant l'algorithme de consensus dormant, tant que le nombre de nœuds honnêtes en ligne dépasse le nombre de nœuds défectueux, la sécurité et la robustesse peuvent être garanties.
##04 Résumé
Si vous sortez du point de vue du développeur et incluez plus de façons de penser qui combinent la politique et l'économie, il peut y avoir plus d'algorithmes de consensus, comme la combinaison de méthodes de consensus similaires au concept de PPP, qui peuvent non seulement atteindre la nature de punition pour les personnes malveillantes parties, mais aussi Il peut également atteindre l'objectif d'économiser la puissance de calcul le plus efficacement possible.
En bref, le mécanisme de consensus est au cœur de la technologie blockchain.Il peut résoudre le problème de confiance dans le système distribué, assurer la cohérence et la sécurité des données entre les nœuds, et éviter l'attaque et la falsification de nœuds malveillants, assurant ainsi le bloc La stabilité et fiabilité du système de chaîne. Dans le même temps, le mécanisme de consensus peut également résoudre le problème de la "double dépense" et améliorer le débit et la vitesse de traitement du système blockchain. Mais divers algorithmes de consensus ne sont pas absolument sûrs, efficaces et décentralisés.
Il n'y a pas de meilleur algorithme, seulement l'algorithme qui vous convient le mieux. Le choix de l'algorithme de consensus est fortement lié au scénario d'application. Les environnements de confiance utilisent Paxos ou RAFT, les alliances autorisées peuvent utiliser PBFT et les chaînes non autorisées peuvent utiliser PoW, PoS, consensus Ripple, etc. **Le meilleur mécanisme de consensus est toujours celui qui convient aux besoins des utilisateurs. **
Référence :
Que sont les mécanismes de consensus dans la blockchain et la crypto-monnaie ?
La menace d'attaque à double fleur contre la blockchain
Lisez 11 algorithmes de consensus traditionnels dans un article et comprenez parfaitement ce que sont PoS, PoW, dPoW, PBFT et dBFT ?
4Comprendre les doubles dépenses et comment prévenir les attaques
5Introduction aux applications des mécanismes de consensus byzantins
6AptosBFT : tout savoir sur le consensus BFT à Aptos
Voir l'original
Le contenu est fourni à titre de référence uniquement, il ne s'agit pas d'une sollicitation ou d'une offre. Aucun conseil en investissement, fiscalité ou juridique n'est fourni. Consultez l'Avertissement pour plus de détails sur les risques.
Comprendre le mécanisme de consensus et 11 algorithmes de consensus traditionnels dans un seul article
Orateur : Uchiha Madara
EDIT : bouffées
Source :Deschool
Cet article est les notes d'étude de la troisième leçon du cours universitaire web3 de DeSchool, et le conférencier est Uchiha Madara. Le contenu est trop sec et non mélangé à de l'eau, il est recommandé de le récupérer et de le digérer lentement. De plus, afin de faciliter la compréhension, cet article comporte quelques modifications et compléments en fonction du contenu du cours.
Le contenu principal de l'article comprend:
Introduction à l'algorithme de consensus
Classification des algorithmes de consensus
Explication détaillée des algorithmes de consensus (PoW, PoS, PoH, PoA, PBFT, etc.)
01 Introduction au mécanisme de consensus
Dans la communication et l'apprentissage de la blockchain, « l'algorithme de consensus » est un vocabulaire très fréquemment évoqué, c'est précisément grâce à l'existence de l'algorithme de consensus que la crédibilité de la blockchain peut être garantie.
**1. Pourquoi avons-nous besoin d'un mécanisme de consensus ? **
Le soi-disant consensus signifie que plusieurs personnes parviennent à un accord. Nos vies sont pleines de mécanismes de consensus. Par exemple, une entreprise a besoin que les actionnaires discutent collectivement pour prendre une décision, et la partie A et la partie B doivent s'asseoir et négocier pour signer un contrat. Ce processus est le processus d'atteinte d'un consensus.
Dans le système blockchain, ce que chaque nœud doit faire est de faire concorder son registre avec les registres des autres nœuds. Si c'est dans un scénario centralisé traditionnel, ce n'est guère un problème, car il y a un serveur central, qui est la bibliothèque dite maîtresse, et d'autres bibliothèques esclaves peuvent être alignées avec la bibliothèque maîtresse.
Mais dans la gestion décentralisée, il n'y a pas de patron, alors comment prendre les décisions ? À l'heure actuelle, un ensemble d'algorithmes est nécessaire pour assurer le consensus. C'est ce dont cet article va parler - le mécanisme de consensus.
**2. Qu'est-ce que le mécanisme de consensus ? **
Le mécanisme de consensus (Consensus Mechanism) complète la vérification et la confirmation des transactions dans un laps de temps très court grâce au vote de nœuds spéciaux ; pour une transaction, si plusieurs nœuds aux intérêts non pertinents peuvent parvenir à un consensus, on peut considérer que l'ensemble du réseau Il y a aussi consensus là-dessus.
Bien que le consensus (Consensus) et la cohérence (Cohérence) soient considérés comme à peu près équivalents dans de nombreux scénarios d'application, il existe des différences subtiles dans leurs significations : la recherche de consensus se concentre sur le processus et l'algorithme des nœuds distribués atteignant un consensus, tandis que la recherche de cohérence se concentre sur le résultat final. état stable du processus de consensus des nœuds ; en outre, la plupart des recherches traditionnelles sur le consensus distribué ne tiennent pas compte du problème de tolérance aux pannes byzantines, c'est-à-dire qu'il est supposé qu'il n'y a pas de nœuds byzantins qui falsifient ou falsifient les données de manière malveillante. Après tout, dans un réseau blockchain complètement ouvert et transparent, rien ne garantit que tous les nœuds ne feront pas le mal.
**3. Quels problèmes le mécanisme de consensus peut-il résoudre ? **
Le mécanisme de consensus peut résoudre le problème de confiance dans le système distribué et assurer la cohérence et la sécurité des données entre les nœuds. Dans un système distribué traditionnel, puisqu'il n'y a pas de mécanisme de confiance entre les nœuds, il est vulnérable aux attaques et à la falsification par des nœuds malveillants, entraînant des pannes du système ou la falsification des données. De plus, avant l'émergence de la technologie de cryptage blockchain, la monnaie numérique cryptée, comme d'autres actifs, était reproductible à l'infini.Sans agence intermédiaire centralisée, les gens n'avaient aucun moyen de confirmer si une somme d'argent numérique avait été dépensée.
Pour faire simple, le mécanisme de consensus peut résoudre efficacement deux problèmes : le problème de la double dépense (une somme d'argent est dépensée deux fois) et le problème général byzantin (des nœuds malveillants falsifient les données).
4. Attaque à double dépense
**
**
Le mécanisme de consensus peut résoudre l'attaque de la double dépense dans une certaine mesure : c'est-à-dire qu'une somme d'argent est dépensée deux fois ou plus de deux fois, également appelée "double dépense". Dans le jeu du chat et de la souris, Xiao Lizi a fait une double dépense en faisant un faux chèque. Parce que la vérification du chèque prend du temps, il a utilisé les informations du même chèque pour acheter des articles plusieurs fois dans ce décalage horaire.
Comme nous le savons tous, les nœuds de blockchain considèrent toujours la chaîne la plus longue comme la bonne et continuent de travailler et de l'étendre. Si deux nœuds diffusent des versions différentes d'un nouveau bloc en même temps, le travail se fera sur la base du bloc reçu en premier, mais l'autre chaîne sera également conservée au cas où cette dernière deviendrait la chaîne la plus longue. Attendez que la prochaine preuve de travail soit trouvée et que l'une des chaînes s'avère être la plus longue, puis les nœuds travaillant sur l'autre chaîne de branche changeront de camp.
Comment se fait la double dépense ? Divisé en deux situations :
**(1) Dépense doublée avant confirmation. ** Les transactions à zéro confirmé peuvent ne pas avoir été écrites dans la blockchain à la fin. À moins que le montant ne soit faible, il est préférable d'éviter ces doubles dépenses en attendant au moins la confirmation.
**(2) Dépense doublée après confirmation. **Cela nécessite de maîtriser plus de 50% de la puissance de calcul à mettre en œuvre. C'est-à-dire, semblable à un petit fork, plaçant les transactions d'un magasin dans des blocs orphelins. Ce type de double dépense après confirmation est difficile à mettre en œuvre, mais n'est réalisable qu'en théorie.
** Il existe trois attaques à double dépense les plus courantes : l'attaque à 51 %, l'attaque de race et l'attaque Finney. **
Attaque à 51 % : Une attaque à 51 % se produit lorsqu'une personne ou un groupe prend le contrôle de 51 % de la puissance de hachage de la blockchain, ce qui signifie qu'elle a la capacité de contrôler certains aspects du projet. Sur une blockchain de preuve de travail telle que Bitcoin, cela serait réalisé en prenant le contrôle de la puissance minière du réseau. D'autre part, pour une blockchain de preuve de participation telle que Cardano, cela serait réalisé en contrôlant 51% des jetons jalonnés.
Race Attack : un utilisateur envoie deux transactions à deux marchands (ou le marchand et l'utilisateur) en même temps. Par conséquent, l'attaquant reçoit deux ensembles de marchandises ou reçoit les marchandises et récupère le coût de transaction initial.
Attaque Finney : Un mineur exploite un bloc ou une série de blocs contenant des transactions qui transfèrent de l'argent à sa propre adresse. Les blocs extraits ne sont pas publiés, mais sont conservés pendant que le mineur transfère de l'argent au marchand. Le marchand libère ensuite les marchandises que le mineur a payées avant que le mineur ne publie le bloc qu'il a creusé. Les mineurs publient alors les blocs qui ont été creusés, ce qui effacera le transfert au marchand et laissera le marchand payer de sa poche.
Cas classique d'attaque florale double :
En 2018, l'attaquant contrôlait plus de 51 % de la puissance de calcul sur le réseau BTG. Pendant la période de contrôle de la puissance de calcul, il a envoyé une certaine quantité de BTG dans son portefeuille sur l'échange. Cette branche a été nommée branche A. En même temps, envoyez ces BTG vers un autre portefeuille contrôlé par vous-même, et cette branche s'appelle la branche B. Une fois la transaction sur la branche A confirmée, l'attaquant vend immédiatement BTG pour obtenir de l'argent. Par la suite, l'attaquant mine sur la branche B. Puisqu'il contrôle plus de 51% de la puissance de calcul, la longueur de la branche B dépasse bientôt la longueur de la branche A, et la branche B deviendra la chaîne principale. annulé pour restaurer l'état précédent. Le BTG que l'attaquant a échangé contre de l'argent avant de revenir entre ses mains, et ces BTG sont la perte de l'échange. De cette manière, l'attaquant, s'appuyant sur plus de 50% du contrôle de la puissance de calcul, a réalisé la "double dépense" de la même crypto-monnaie.
5. Échecs byzantins
**
**
Le problème des généraux byzantins est un problème hypothétique posé par Leslie Lamport dans les années 1980. Byzance était la capitale de l'Empire romain d'Orient.En raison du vaste territoire de l'Empire romain byzantin à cette époque, les garnisons de chaque armée étaient éloignées les unes des autres et les généraux ne pouvaient transmettre des messages que par des messagers. En cas de guerre, les généraux doivent élaborer un plan d'action unifié.
Cependant, il y a des traîtres parmi ces généraux, qui espèrent saper le plan d'action cohérent des généraux fidèles en influençant la formulation et la diffusion du plan d'action unifié. Par conséquent, les généraux doivent avoir un accord de méthode prédéterminé, afin que tous les généraux fidèles puissent s'entendre. Et une poignée de traîtres ne peuvent pas forcer des généraux loyaux à faire de mauvais plans. En d'autres termes, l'essence du problème des généraux byzantins est de trouver un moyen de faire en sorte que les généraux établissent un consensus sur le plan de bataille dans un environnement de non-confiance avec des traîtres.
Dans les systèmes distribués, en particulier dans l'environnement de réseau blockchain, il est également similaire à l'environnement général byzantin, il existe des serveurs normaux (similaires aux généraux byzantins fidèles), il y a des serveurs défectueux et des serveurs saboteurs (semblables au général byzantin traître). Le cœur de l'algorithme de consensus est de former un consensus sur l'état du réseau parmi les nœuds normaux. S'il n'y a que 3 nœuds, le problème des généraux byzantins est insoluble. Lorsqu'il y a x nœuds du problème dans les nœuds et que les points sommés sont inférieurs à 3x+1, le problème des généraux byzantins n'a pas de solution.
L'émergence du bitcoin résout facilement ce problème en augmentant le coût de la transmission de l'information, en réduisant le taux de transmission de l'information et en ajoutant un élément aléatoire afin qu'un seul général puisse diffuser l'information dans un certain laps de temps. Le premier général à diffuser un message est le premier ordinateur à trouver un hachage valide, et tant que d'autres généraux reçoivent et vérifient ce hachage valide et les informations qui y sont attachées, ils ne peuvent les mettre à jour qu'avec la nouvelle copie d'information du grand livre, puis recalculez la valeur de hachage. Le prochain général qui calcule la valeur de hachage effective peut joindre ses informations mises à jour à la valeur de hachage effective et les diffuser à tout le monde. La course au calcul de hachage redémarre alors à partir d'un nouveau point de départ. En raison de la synchronisation continue des informations réseau, tous les ordinateurs du réseau utilisent la même version du grand livre.
02 Classification des algorithmes de consensus
1. Historique du mécanisme de consensus
Lorsque les ordinateurs et les réseaux sont devenus populaires dans les années 1980 et 1990, des bases de données partagées ont émergé afin que plusieurs utilisateurs puissent accéder aux informations qu'ils stockaient. La plupart ont une base de données centrale à laquelle les utilisateurs peuvent accéder à partir de différents sites. Cette configuration évolue vers un réseau centralisé où les administrateurs accordent des autorisations aux utilisateurs et maintiennent l'intégrité des données.
Ces bases de données partagées sont connues sous le nom de registres distribués car elles enregistrent des informations et sont mises en réseau pour permettre l'accès à de nombreux utilisateurs à différents endroits. L'un des problèmes les plus importants à résoudre est la prévention de la falsification des données et des accès non autorisés, malveillants ou non. Un moyen d'automatiser la gestion des bases de données distribuées est nécessaire pour s'assurer que les données ne sont pas modifiées.
Ce besoin a conduit à la création d'un consensus autonome distribué, où les programmes sur le réseau utilisent la cryptographie pour s'accorder sur l'état de la base de données. Le protocole est conçu pour être atteint en utilisant un algorithme cryptographique pour créer une longue chaîne de nombres alphanumériques (hachage), qui est ensuite vérifiée par un programme exécuté sur le réseau. Le hachage ne change que lorsque les informations introduites dans l'algorithme de hachage changent, de sorte que les programmes sont conçus pour comparer les hachages pour s'assurer qu'ils correspondent.
Lorsque chaque programme exécuté sur le réseau a créé une chaîne de hachage correspondante, on dit que les données ont atteint un consensus sur le réseau. Ainsi, un mécanisme de consensus a été établi, créditant généralement le créateur anonyme de Bitcoin Satoshi Nakamoto. Cependant, de nombreuses personnes ont travaillé sur le mécanisme de consensus pendant des années avant que Satoshi ne publie le livre blanc qui a rendu Bitcoin célèbre.
Des scientifiques des données et des informaticiens tels que Moni Naor, Cynthia Dwork, Adam Beck, Nick Szabo et bien d'autres ont travaillé et contribué au développement des mécanismes de consensus du réseau.
2 Classification des algorithmes de consensus
Selon les différents types de tolérance aux pannes, les algorithmes de consensus peuvent être divisés en deux catégories : l'algorithme de consensus CFT (tolérance aux pannes non byzantine, c'est-à-dire que les nœuds malveillants ne sont pas pris en compte) et l'algorithme de consensus BFT (tolérance aux pannes byzantine, qui c'est-à-dire que les nœuds malveillants sont pris en compte) .
La tolérance de Byzance indique si l'algorithme peut être appliqué aux réseaux à faible confiance. D'une manière générale, l'algorithme byzantin tolérant aux pannes doit être utilisé dans l'environnement de la chaîne publique, tandis que dans la chaîne d'alliance, il peut être sélectionné en fonction du degré de confiance entre les participants de l'alliance. Si le degré de confiance est élevé, tout le monde est un nœud de bonne foi par défaut et peut utiliser l'algorithme CFT (non-Byzantine fault-tolerant).
**En outre, il peut être divisé en deux catégories selon la cohérence : **algorithme de consensus de probabilité et algorithme de cohérence absolue. L'algorithme de consensus probabiliste signifie que parmi différents nœuds distribués, il existe une forte probabilité de garantir que les données entre les nœuds sont cohérentes, mais il existe toujours une certaine probabilité que les données entre certains nœuds soient incohérentes. Par exemple, Proof of Work (PoW), Proof of Stake (PoS) et Delegated Proof of Stake (DPoS) sont tous des algorithmes probabilistes de consensus.
L'algorithme de cohérence absolue signifie qu'à tout moment, les données entre différents nœuds distribués resteront absolument cohérentes et qu'il n'y aura pas d'incohérence de données entre différents nœuds. Par exemple, l'algorithme PAXOS et son algorithme RAFT dérivé.
Ce qui suit est une division et une introduction spécifiques selon le type de tolérance aux pannes.
Algorithme de consensus 3CFT
Crash Fault Tolerance erreur non byzantine : convient aux réseaux avec un degré élevé de confiance des nœuds. Y compris Paxos, Radeau.
Algorithme de consensus 4BFT
Vérifier si le nœud contient des erreurs byzantines malveillantes tend vers une structure décentralisée, y compris la preuve de travail (PoW), la preuve de participation (PoS), la preuve de participation déléguée (DPoS), la preuve d'autorité (PoA), etc.
03 Explication détaillée de l'algorithme de consensus
Est-ce un peu fatigué de voir ça, cliquez sur un favori, faites une pause et continuez à ronger la partie la plus dure de cet article ! Les étudiants disposant d'un temps limité peuvent commencer directement à partir du troisième algorithme PoW.
1Algorithme Paxos
**
**
Le premier protocole Basic Paxos était complexe et relativement inefficace, c'est pourquoi une version améliorée de Paxos a été proposée plus tard. Par exemple : Fast Paxos, Multi-Paxos et Byzanetine Paxos, etc.
Paxos procède à une série de cycles de négociation dans lesquels un nœud a l'état "leadership". Si le leader n'est pas en ligne, la progression s'arrêtera jusqu'à ce qu'un nouveau leader soit élu, ou si l'ancien leader revient soudainement en ligne.
Paxos divise les rôles dans le système en proposant (proposant), décideur (accepteur) et apprenant de la décision finale (apprenant) : Proposeur : proposer une proposition (proposition). Les informations sur la proposition incluent le numéro de proposition (ID de proposition) et la valeur proposée (Valeur). Accepteur : Participer à la prise de décision et répondre aux propositions des Proposants. Après réception de la proposition, la proposition peut être acceptée. Si la proposition est acceptée par la majorité des accepteurs, la proposition est dite approuvée. Apprenant : ne participez pas à la prise de décision, apprenez la dernière proposition convenue (valeur) des proposants/accepteurs.
2. Algorithme Raft
**Introduction à l'algorithme :**L'algorithme Raft (Replication and Fault Tolerant) est une implémentation simplifiée de la paire d'algorithmes Paxos. Le nom Raft vient de l'acronyme "Reliable, Replicated, Redundant, And Fault-Tolerant" Redundant, Fault Tolerant"). raft fait beaucoup de belles simplifications sur Paxos avec la continuation du journal. Il garantit la cohérence du système lorsque plus de la moitié des nœuds d'un système composé de n nœuds fonctionnent normalement. Contrairement à l'algorithme Paxos, qui est directement dérivé du problème de cohérence distribuée, l'algorithme Raft est proposé du point de vue d'une machine à états multi-copies, et est utilisé pour gérer la réplication des journaux de la machine à états multi-copies. Par exemple, dans un système à 5 nœuds, 2 nœuds sont autorisés à avoir des erreurs non byzantines, telles qu'un temps d'arrêt de nœud, une partition de réseau et un retard de message.
**Cas d'utilisation : **Réplication maître-esclave de base de données, chaîne d'alliance.
Principe de l'algorithme : Il existe trois rôles dans le système Raft : leader, suiveur et candidat. Dans des circonstances normales, il n'y aura qu'un seul leader, et les autres sont des suiveurs. Et le leader sera responsable de toutes les demandes externes, si elles ne sont pas reçues par la machine du leader, la demande sera dirigée vers le leader. Habituellement, le leader enverra un message à une heure fixe, c'est-à-dire un battement de cœur (heartbeat), pour faire savoir aux suiveurs que le leader du cluster est toujours en activité. Chaque suiveur concevra un mécanisme de temporisation (timeout).Lorsque le battement de cœur n'est pas reçu pendant une certaine période de temps (généralement 150 ms ou 300 ms), le système entrera dans l'état d'élection.
À ce moment, le cluster entre dans un nouveau tour d'élection (mandat) et commence une élection. Si l'élection est réussie, le nouveau leader commencera à effectuer un travail. Sinon, le mandat sera considéré comme terminé et un nouveau mandat commencera et les prochaines élections commenceront.
Les élections sont dirigées par des candidats. Cela oblige les candidats à se nommer eux-mêmes et à solliciter des votes d'autres serveurs selon le principe du premier arrivé, premier servi lorsque le rythme cardiaque du leader s'arrête. Chaque serveur émet un seul vote par tour d'élection pour ou contre le candidat actuel. Si vous n'obtenez pas plus de la moitié des voix, vous passerez au prochain tour des élections. Les candidats restants continuent de se désigner selon le principe du premier arrivé, premier servi. jusqu'à ce qu'un chef soit élu.
**Avantages de l'algorithme Raft : **Le premier point est la simplicité. Si nous creusons profondément là où Paxos est plus complexe que Raft, Heidi Howard et Richard Mortier ont découvert que la complexité de Paxos se reflétait sous deux aspects. Tout d'abord, Raft valide les journaux de manière séquentielle, tandis que Paxos autorise la validation des journaux dans le désordre, mais nécessite un protocole supplémentaire pour combler les trous de journal qui peuvent en résulter. Deuxièmement, toutes les répliques du journal dans Raft ont le même index, terme et ordre, alors que dans Paxos, ces termes peuvent différer.
Le deuxième point est que Raft a un algorithme d'élection de leader efficace. L'algorithme d'élection donné dans l'article Paxos compare la taille de l'identifiant du serveur. Lorsque plusieurs nœuds se présentent aux élections en même temps, le nœud avec le plus grand identifiant de serveur l'emporte. Le problème est que si le chef élu de cette manière manque de journaux, il ne peut pas immédiatement effectuer l'opération d'écriture et doit d'abord copier certains journaux d'autres nœuds. Le journal Raft peut toujours sélectionner le nœud avec le journal majoritaire, il n'est donc pas nécessaire de rattraper le journal. Bien que parfois l'élection soit retentée en raison de la division des votes, il s'agit généralement d'un algorithme d'élection plus efficace.
Pour l'algorithme Paxos, si un serveur est très en retard, voire quelques jours en retard dans les logs, mais est élu leader à un moment donné, cela entraînera un certain temps de blocage. Dans l'algorithme Raft, un nœud dont le journal est derrière ne sera jamais sélectionné.
3 Preuve de travail (PoW)
Introduction à l'algorithme : Une technologie informatique qui a d'abord été utilisée pour lutter contre le spam. En 2008, Satoshi Nakamoto a proposé Bitcoin et blockchain dans le livre blanc Bitcoin "Bitcoin : A Peer-to-Peer Electronic Cash System", et a conçu de manière innovante l'algorithme PoW, qui a été appliqué à Bitcoin pour résoudre des énigmes mathématiques afin de participer au consensus. Le contenu principal de l'algorithme consiste à utiliser la puissance de calcul pour trouver une valeur nonce qui satisfait le hachage de bloc. Cependant, les gens ont rapidement découvert les problèmes de ce mécanisme de consensus, c'est-à-dire que la grande consommation d'énergie et le contrôle de la puissance de calcul par de grands pools de minage entraîneront toujours des problèmes de centralisation.
**Cas d'utilisation :**Bitcoin, ETH1.0, Litecoin, Conflux, Dogecoin.
Principe de l'algorithme : La principale caractéristique du système de preuve de travail est que le client doit effectuer un travail difficile pour obtenir un résultat, mais le vérificateur peut facilement vérifier si le client a effectué le travail correspondant grâce au résultat. . Une caractéristique essentielle de ce schéma est l'asymétrie : le travail est modéré pour le demandeur et facilement vérifiable pour le vérificateur. Il diffère des captchas, qui sont conçus pour être faciles à résoudre par des humains plutôt que par des ordinateurs.
La preuve de travail (PoW) trouve un Nonce numérique par calcul, de sorte que la valeur de hachage du contenu une fois les données de transaction reconstituées respecte la limite supérieure spécifiée. Une fois que le nœud a trouvé avec succès une valeur de hachage satisfaisante, il diffusera immédiatement le bloc empaqueté à l'ensemble du réseau, et les nœuds du réseau le vérifieront immédiatement après avoir reçu le bloc empaqueté diffusé.
**Inconvénients : **Vitesse lente ; énorme consommation d'énergie, pas bon pour l'environnement ; vulnérable aux "économies d'échelle".
Avantages : Testé de manière approfondie depuis 2009 et encore largement utilisé aujourd'hui.
4 Preuve de participation (PoS)
Introduction à l'algorithme : En 2011, Quantum a été proposé sur le forum Bitcointalk. En août 2012, Peercoin, le premier projet de blockchain basé sur le consensus PoS, est né Peercoin est la première application à implémenter l'algorithme PoS. L'intérêt de Peercoin est l'âge des pièces, qui est le produit du nombre de pièces détenues par le nœud et du temps de détention. L'initiation d'une transaction consommera une certaine quantité d'âge des pièces, et chaque fois que l'âge des pièces 365 est consommé, un an taux d'intérêt de 5% sera obtenu.
Utilisateurs : Ethereum (2.0), Conflux, Peercoin.
Principe de l'algorithme : Par exemple, si quelqu'un détient 100 Dotcoins dans une transaction pour un total de 30 jours, alors l'âge de la pièce est de 3000, et un bloc PoS est trouvé plus tard, l'âge de la pièce est vidé à 0, et l'intérêt est obtenu C'est 0,05*3000/365=0,41 pièces. Au cours du processus de consensus, les nœuds obtiennent la comptabilité tout au long de l'âge des pièces consommées. Plus le nœud consomme d'âge des pièces, plus il a de chances d'obtenir le droit de comptabilité. Le principe de la chaîne principale fixée par l'algorithme est le suivant : la chaîne qui consomme le plus de monnaie est la chaîne correcte et efficace dans le système.
Avantages : Pas besoin d'équipement minier puissant et coûteux. Réduisez la consommation de ressources et réduisez la possibilité d'attaques de 51 %.
Inconvénients : Cela peut amener les riches à thésauriser les crypto-monnaies, formant l'effet Matthew, ce qui peut provoquer une inflation des crypto-monnaies.
5 Preuve d'historique (PoH)
**Introduction à l'algorithme : **La preuve de l'historique a été créée par Solana, une blockchain à haut débit qui a été lancée en 2018. La preuve de l'historique permet aux participants du réseau de parvenir à un consensus dans le temps en utilisant une fonction de délai vérifiable, évitant ainsi le "plus long règle de la chaîne.
PoH est l'horloge du réseau et TowerBFT est sa tour de guet, chargée d'empêcher les nœuds malveillants d'usurper les paramètres de temps. Tout validateur qui a voté pour un bloc doit attendre que le bloc suivant soit produit et obtenir la confirmation de la preuve de l'histoire que "le temps a passé" avant de voter à nouveau.
Solana sépare intelligemment la chaîne temporelle et l'état basés sur le hachage. Au lieu de lier les hachages de chaque bloc ensemble, le vérificateur du réseau hache le hachage lui-même dans le bloc. Ce mécanisme est PoH . PoH établit une séquence cryptographiquement vérifiable d'événements au fil du temps en utilisant une fonction de retard vérifiable (VDF) à haute fréquence. Cela signifie essentiellement que PoH est comme une horloge cryptographique qui aide le réseau à s'accorder sur l'heure et l'ordre des événements sans attendre les messages des autres nœuds. La sortie séquentielle des hachages d'état de blockchain historiquement prouvés donne une séquence vérifiable d'événements.
**Utilisateur :**Solana
Principe de l'algorithme : Leader génère un horodatage pour chaque donnée de signature (transaction à prouver), et trie directement les transactions, évitant ainsi le problème de tri du temps dans les points de vente, et chaque vérificateur de garantie peut vérifier indépendamment, ce qui raccourcit considérablement le problème de la réorganisation du temps lors de la vérification, et n'a besoin que de vérifier la preuve de la transaction.
Avantages : Frais peu élevés, seulement une fraction de centime par transaction, vitesse de transaction rapide, bonne évolutivité,
** Inconvénients : ** Problèmes de centralisation, Solana compte actuellement moins de 1200 validateurs validant les transactions sur son réseau. Moins d'applications décentralisées : souvent appelé le tueur d'Ethereum. Selon son site Web, plus de 350 Dapps ont été créés sur Solana, contre près de 3 000 sur Ethereum, et c'est là que Defi a actuellement besoin de plus de temps de développement et d'innovation.
6 Preuve d'autorité (PoA)
Introduction à l'algorithme : Il a été proposé en 2017 par Gavin Wood, le co-fondateur d'Ethereum (ETH) et de Parity Technologies. Le mécanisme PoA ne mine pas et ne nécessite pas de Token. Dans un réseau blockchain secondaire basé sur PoA, toutes les transactions et tous les blocs sont traités par des validateurs. Le coût de maintenance de la plate-forme PoA est faible, mais dans PoA, le vérificateur de la blockchain de transaction et de vérification doit être une personne qui peut réussir l'examen de fiabilité. Par conséquent, les vérificateurs de PoA doivent accorder une grande attention à leur propre réputation. La réputation est un atout très important dans le PoA. En règle générale, les validateurs divulguent leur identité réelle. À l'heure actuelle, la technologie blockchain formée par ce mécanisme de consensus est principalement appliquée aux chaînes d'alliance et aux chaînes privées présentant des caractéristiques industrielles évidentes.
Utilisateurs : PoA, Ethereum Kovantestnet, xDai, VeChain et la chaîne logistique de Walmart.
Principe de l'algorithme :
a. Choisissez un certificateur faisant autorité ;
b. Un certain nombre de vérificateurs généreront des blocs pour enregistrer les transactions et recevoir des récompenses en bloc et des frais de transaction. Dans le PoA, le vérificateur est la clé de tout le mécanisme de consensus. Le vérificateur obtient le droit de garantir le réseau en plaçant cette identité en échange de récompenses en bloc. Si le vérificateur agit de manière malveillante ou s'entend avec d'autres vérificateurs tout au long du processus, les acteurs malveillants peuvent être supprimés et remplacés via la gestion en chaîne. Les garanties légales anti-fraude existantes sont appliquées sur l'ensemble du réseau pour protéger les participants contre les actions malveillantes des validateurs.
avantage:
A. Nécessite moins de puissance de calcul, pas d'exploitation minière, d'économie d'énergie et de protection de l'environnement ;
b La vérification est rapide et prend en charge des transactions plus rapides ;
c. Les vérificateurs de l'ensemble du réseau se supervisent mutuellement et peuvent voter pour rejoindre les vérificateurs expérimentés ou éliminer les vérificateurs non qualifiés à tout moment
d. Les hard forks sont protégés par la loi et chaque validateur signe un accord légal.
défaut:
a. L'identité publique, la vie privée et l'anonymat seront réduits
b. Les validateurs sont désignés comme des nœuds d'autorité centralisés légalement soutenus
**7 Preuve de travail différée (**Preuve de travail différée, dPoW)
**
**
**Introduction à l'algorithme :**Avant d'expliquer DPoW, vous devez expliquer ce qu'est PoB. PoB (Proof of Burn) est appelé le mécanisme de preuve de gravure, qui est un engagement à voter qui a la direction du réseau en brûlant les jetons entre ses propres mains. Plus le nombre de jetons brûlés est élevé, plus la probabilité d'atteindre le leadership du réseau est élevée.
Dans la blockchain basée sur dPoW, les mineurs ne sont plus des jetons récompensés pour l'exploitation minière, mais du "bois" qui peut être brûlé - brûler du bois. Les mineurs utilisent leur propre puissance de calcul pour enfin prouver leur charge de travail grâce à l'algorithme de hachage, puis obtenir le bois correspondant, qui n'est pas échangeable. Lorsque le bois s'est accumulé jusqu'à une certaine quantité, vous pouvez vous rendre sur le site de combustion pour brûler le bois.
Après calcul par un ensemble d'algorithmes, la personne qui brûle plus de bois ou de BP ou un groupe de BP peut obtenir le droit de produire un bloc dans le segment d'événement suivant, et obtenir une récompense (Token) après avoir réussi à produire un bloc. Étant donné qu'il peut y avoir beaucoup de personnes qui brûlent du bois sur une période donnée, la probabilité de génération de blocs au cours de la période suivante est déterminée par la quantité de bois brûlée par soi-même. Plus il y a de brûlés, plus la probabilité d'obtenir le droit de produire des blocs dans la prochaine période de temps est élevée.
Cela peut permettre d'atteindre un équilibre entre la puissance de calcul et les droits miniers. Les mineurs et les pools miniers dotés d'une énorme puissance de calcul ne sont pas nécessairement tenus de devenir des producteurs de blocs. Les petits mineurs ont aussi une source, tant qu'ils travaillent dur et accumulent une certaine quantité de bois, ils peuvent aussi produire des blocs. L'efficacité est garantie, tout le monde participe et le mode de participation le plus populaire garantit le concept de décentralisation, empêchant les organisations disposant d'une puissance de calcul ou de grands détenteurs de devises de dominer le réseau.
**Utilisateur :**Komodo
Principe de l'algorithme : Il existe deux types de nœuds dans le système dPoW : les nœuds notaires et les nœuds normaux. Les 64 nœuds de notaire sont élus par les parties prenantes de la blockchain dPoW pour ajouter des blocs notariés de la blockchain dPoW à la blockchain PoW attachée. Une fois qu'un bloc est ajouté, le hachage du bloc est ajouté à la transaction Bitcoin signée par les 33 nœuds notaires et crée un enregistrement de bloc dPow haché dans la blockchain Bitcoin. Le dossier a été notarié par une majorité de nœuds de notaire dans le réseau.
Afin d'éviter les guerres de minage entre nœuds notaires et de réduire l'efficacité du réseau, Komodo a conçu une méthode de minage utilisant un mécanisme de polling, qui a deux modes de fonctionnement.
En mode "No Notary", tous les nœuds du réseau sont pris en charge pour participer à l'exploitation minière, ce qui est similaire au mécanisme de consensus PoW traditionnel. En mode « Notaires actifs », les notaires du réseau minent en utilisant un taux de difficulté du réseau considérablement réduit. En mode "activation de notaire", chaque notaire est autorisé à utiliser sa difficulté actuelle pour miner un bloc, tandis que les autres nœuds de notaire doivent utiliser 10 fois la difficulté de minage, et tous les nœuds normaux utilisent 100 fois la difficulté des nœuds de notaire à miner.
**Avantages : **Économie d'énergie ; sécurité accrue ; peut ajouter de la valeur à d'autres blockchains en fournissant indirectement du Bitcoin (ou toute autre chaîne de sécurité), sans payer le prix des transactions Bitcoin (ou toute autre chaîne de sécurité).
Inconvénients : Seules les blockchains utilisant PoW ou PoS peuvent adopter cet algorithme de consensus ; en mode "Notaires actifs", les hashs des différents nœuds (notaires ou nœuds normaux) doivent être calibrés en taux, sinon la différence entre les taux de hachage exploserait.
8 PoS autorisés (DPoS, Delegated Proof-of-Stake)
Introduction à l'algorithme : Le mécanisme DPoS, également connu sous le nom de "Mécanisme de preuve d'autorisation de partage" et "Mécanisme de fiducie", a été proposé en avril 2014 par Dan Larimer (BM), le développeur en chef de Bitshares. D'un certain point de vue, le DPOS est un peu comme un système parlementaire ou un système d'assemblée populaire. Si un délégué ne remplit pas ses fonctions (ne produit pas de bloc lorsque c'est son tour), il est radié et le réseau élit un nouveau super-nœud pour le remplacer.
Pour faciliter la compréhension, un autre exemple peut être donné. Imaginez une entreprise avec un total de 1 000 employés, chacun d'eux détenant un nombre variable d'actions de l'entreprise. De temps en temps, les employés peuvent voter pour les 10 personnes qu'ils reconnaissent le plus pour diriger l'entreprise, et les droits de vote de chaque employé sont proportionnels au nombre d'actions qu'il détient. Après que tout le monde ait voté, les 10 personnes ayant obtenu le taux de vote le plus élevé deviendront les dirigeants de l'entreprise.
Si un dirigeant est incompétent ou fait quelque chose de préjudiciable à l'entreprise, l'employé peut révoquer le vote pour le dirigeant, de sorte que son taux de vote ne puisse pas entrer dans le top 10, démissionnant ainsi de la direction.
Utilisateurs : BitShares, Steemit, EOS, Lisk, Ark.
**Avantages : **Économie d'énergie ; rapide ; le site de blog à fort trafic Steemit l'utilise. Le temps de blocage d'EOS est de 0,5 seconde.
**Inconvénients : **Légèrement centralisé ; les participants à fort enjeu peuvent voter pour devenir un validateur (cela a récemment posé un problème dans EOS).
9 Tolérance aux pannes byzantine pratique (PBFT)
**
**
Introduction à l'algorithme : Dans l'algorithme PBFT, un nœud sera considéré comme le nœud maître, tandis que les autres nœuds sont des nœuds de secours. Tous les nœuds du système communiqueront entre eux, et le but ultime est que chacun puisse parvenir à un consensus sur le principe de la minorité obéissant à la majorité.
Processus de consensus :
a. Le client envoie une demande au nœud maître pour effectuer une opération
b. Le nœud maître diffuse cette demande à chaque nœud de secours
c. Tous les nœuds exécutent l'opération et renvoient le résultat au client
d. Lorsque le client reçoit f+1 résultats identiques de différents nœuds, le processus se termine. f représente la valeur maximale des nœuds couchés possibles.
Utilisé par : HyperLedgerFabric, Stellar, Ripple, Dispatch
**Avantages : ** Haut débit, évolutif.
Inconvénients : Couramment utilisé dans les réseaux privés et autorisés.
10 Tolérance de panne byzantine déléguée (dBFTTolerance de panne byzantine déléguée, dBFT)
Introduction à l'algorithme : La communauté blockchain chinoise NEO (anciennement appelée Xiaoyi) a proposé un algorithme byzantin amélioré tolérant les pannes dBFT. Cet algorithme s'appuie sur l'idée de conception de points de vente sur la base de PBFT. Le comptable, puis les comptables atteignent un consensus grâce à l'algorithme byzantin tolérant aux pannes. Cet algorithme améliore le manque de cohérence finale du PoW et du PoS, rendant la blockchain adaptée aux scénarios financiers.
Également pour résoudre le problème des généraux byzantins, le mécanisme "Authorized Byzantine Fault Tolerance" est un algorithme de consensus qui garantit la tolérance aux pannes implémentée à l'intérieur de la blockchain NEO. Dans ce mécanisme, il y a deux participants, l'un est le "nœud de comptabilité" pour la comptabilité professionnelle et l'autre est un utilisateur ordinaire du système.
Les utilisateurs ordinaires votent pour déterminer les nœuds de comptabilité en fonction de la proportion de leurs avoirs. Lorsqu'un consensus doit être adopté, un porte-parole est choisi au hasard parmi ces nœuds de comptabilité pour élaborer un plan, puis d'autres nœuds de comptabilité suivent la règle byzantine tolérante aux pannes. C'est-à-dire que le principe de la minorité obéissant à la majorité fait une déclaration. Si plus de 66 % des nœuds sont d'accord avec le plan d'orateur, le consensus est atteint ; sinon, l'orateur est réélu et le processus de vote est répété.
Étant donné que tous les délégués peuvent vérifier les propositions de blocs, il est facile de comprendre si les données envoyées par l'orateur sont valides ou non. Ainsi, si l'orateur est malhonnête et envoie une proposition invalide aux deux tiers des délégués, les blocs ne correspondront pas et les propriétaires des nœuds ne les valideront pas. Un consensus est atteint par un vote à la majorité des deux tiers et un nouveau président est élu.
**Utilisateur :**Néo
Processus de consensus :
a. N'importe qui peut être un représentant pourvu qu'il remplisse les conditions requises. Tous les détenteurs de jetons NEO peuvent voter, les délégués ne sont pas anonymes et 1 000 GAS sont nécessaires pour devenir propriétaire d'un nœud.
b) Un orateur est choisi au hasard parmi les délégués.
c) Le locuteur construit un nouveau bloc à partir des transactions en attente de vérification. Le Président transmet ensuite la proposition aux élus. Ils sont censés suivre toutes les transactions et les enregistrer sur le réseau.
d) Les délégués sont libres de partager et de comparer les propositions qu'ils ont reçues pour tester l'exactitude des données ainsi que l'honnêteté des orateurs. Si plus des deux tiers des délégués parviennent à un consensus et le valident, le bloc est ajouté à la blockchain.
**Avantages : **Rapide (la génération d'un bloc prend 15 à 20 secondes) ; grand débit de transaction, pas besoin de consommer de l'énergie, évolutif et pas de fourches.
Inconvénients : Il n'y a pas d'anonymat, et une véritable identité est nécessaire pour fonctionner pour être élu. Tout le monde se bat pour être la chaîne racine. Il peut y avoir plusieurs chaînes racine.
11. Rotation Pratique Byzantine Fault Tolerance (RBPFT)
Introduction à l'algorithme : Les principes de dBft et RPBFT sont similaires à ceux de PBFT, sauf que tous les nœuds ne participent pas au consensus, mais les nœuds sont divisés en deux types :
a. Nœud de consensus : un nœud qui exécute le processus de consensus PBFT et a le pouvoir de générer des blocs à son tour
b. Nœud de vérification : n'exécutez pas le processus de consensus, vérifiez si le nœud de consensus est légal, bloquez la vérification, après plusieurs cycles de consensus, il passera à un nœud de consensus
Dans la tolérance aux pannes byzantine à tour de rôle, les nœuds de consensus sont remplacés à leur tour par des nœuds de vérification.
**Cas d'utilisation :**Fisco-BCOS
**Avantages : **La vitesse de transmission est plus rapide que les commérages et il n'y a pas de paquet de message redondant
Diviser pour mieux régner, la bande passante sortante de chaque nœud est O(1), forte évolutivité
Inconvénients : Le nœud intermédiaire est un point unique et nécessite des stratégies supplémentaires de tolérance aux pannes
12. AptosBFT
**
**
Introduction à l'algorithme : Il s'agit également d'un algorithme dérivé de PBFT. L'algorithme de consensus nommé d'après Aptos est basé sur HotStuff, lui-même basé sur PBFT. Les avantages de ce modèle d'algorithme sont comme les oignons et les poupées russes, qui doivent être épluchés couche par couche. Chaque nœud ne communique qu'avec le chef, plutôt que d'envoyer des messages au chef et à tous les autres "généraux". Le leader diffuse un message (bloc proposé) sur lequel voter ; chaque nœud envoie son vote au leader qui a collecté le message.
Cas d'utilisation : Aptos
Enfin, un résumé de cette partie est joint :
** De plus, il existe des algorithmes de consensus peu courants. **
En 2015, le professeur David Mazieres, directeur scientifique de Stellar.org, a proposé le Stellar Consensus Protocol (SCP). Le SCP a évolué sur la base de l'accord fédéral byzantin et de l'accord Ripple, et est le premier mécanisme de consensus dont la sécurité est prouvée, avec quatre propriétés clés du contrôle décentralisé, de la faible latence, de la confiance flexible et de la sécurité asymptotique.
La même année, le projet Sawtooth Lake d'Hyperledger a combiné le consensus Ripple et SCP et a proposé un algorithme de consensus de vote Quorum pour faire face aux scénarios d'application qui nécessitent une finalité de transaction instantanée.
En 2016, le lauréat du prix Turing et professeur au MIT, Sivio Micali, a proposé un algorithme de consensus byzantin tolérant aux pannes rapide appelé AlgoRand. Cet algorithme utilise la technologie de loterie cryptographique pour sélectionner le vérificateur et le leader du processus de consensus, et grâce à son BA * The Byzantine Fault Le protocole tolérant parvient à un consensus sur de nouveaux blocs. AlgoRand nécessite très peu de calculs et très peu de fourches, et est considéré comme une technologie de consensus de grand livre distribué vraiment démocratique et efficace.
En 2017, l'Université Cornell a proposé un nouvel algorithme appelé Sleepy Consensus (consensus endormi).Ce consensus vise le fait que la plupart des nœuds de consensus à grande échelle dans l'environnement Internet peuvent être hors ligne, et que seuls quelques nœuds sont en ligne La réalité de participer au processus de consensus. Cette étude prouve que l'algorithme de consensus traditionnel ne peut pas garantir la sécurité du consensus dans cet environnement.Cependant, en utilisant l'algorithme de consensus dormant, tant que le nombre de nœuds honnêtes en ligne dépasse le nombre de nœuds défectueux, la sécurité et la robustesse peuvent être garanties.
##04 Résumé
Si vous sortez du point de vue du développeur et incluez plus de façons de penser qui combinent la politique et l'économie, il peut y avoir plus d'algorithmes de consensus, comme la combinaison de méthodes de consensus similaires au concept de PPP, qui peuvent non seulement atteindre la nature de punition pour les personnes malveillantes parties, mais aussi Il peut également atteindre l'objectif d'économiser la puissance de calcul le plus efficacement possible.
En bref, le mécanisme de consensus est au cœur de la technologie blockchain.Il peut résoudre le problème de confiance dans le système distribué, assurer la cohérence et la sécurité des données entre les nœuds, et éviter l'attaque et la falsification de nœuds malveillants, assurant ainsi le bloc La stabilité et fiabilité du système de chaîne. Dans le même temps, le mécanisme de consensus peut également résoudre le problème de la "double dépense" et améliorer le débit et la vitesse de traitement du système blockchain. Mais divers algorithmes de consensus ne sont pas absolument sûrs, efficaces et décentralisés.
Il n'y a pas de meilleur algorithme, seulement l'algorithme qui vous convient le mieux. Le choix de l'algorithme de consensus est fortement lié au scénario d'application. Les environnements de confiance utilisent Paxos ou RAFT, les alliances autorisées peuvent utiliser PBFT et les chaînes non autorisées peuvent utiliser PoW, PoS, consensus Ripple, etc. **Le meilleur mécanisme de consensus est toujours celui qui convient aux besoins des utilisateurs. **