L'état de développement et la perspective de l'algorithme de consensus blockchain

Résumé L'algorithme de consensus est l'élément central de la technologie blockchain, et c'est aussi le point chaud de la recherche sur les systèmes distribués ces dernières années.Cet article trie et discute systématiquement 32 algorithmes de consensus importants dans le développement de la blockchain, et introduit le consensus distribué traditionnel et des conclusions dans le domaine de l'algorithme et du consensus distribué sont proposées, un modèle de base et une méthode de classification de l'algorithme de consensus blockchain sont proposés, et le contexte de développement et plusieurs indicateurs de performance des algorithmes de consensus existants sont résumés, en vue du futur consensus. référence pour l'innovation d'algorithme et le développement de la technologie blockchain.

Mots clés blockchain, algorithme de consensus, système distribué, tolérance aux pannes byzantines

Format de citation Yuan Yong, Ni Xiaochun, Zeng Shuai, Wang Feiyue. État de développement et perspectives des algorithmes de consensus Blockchain. Journal of Automation, DOI10.16383/j.aas.2018.c180268

Le problème du consensus est un problème classique dans des domaines tels que les sciences sociales et l'informatique, et a une longue histoire de recherche. La littérature actuellement documentée remonte au moins à 1959, lorsque la RAND Corporation et Edmund Eisenberg de l'Université Brown ( Edmund Eisenberg et David Gale a publié "Consensus des probabilités subjectives : la méthode du pari mutuel", qui étudie principalement pour un espace de probabilité spécifique, lorsqu'un groupe d'individus a sa propre distribution de probabilité subjective, Le problème de savoir comment former une distribution de probabilité consensuelle. Par la suite, le problème du consensus a progressivement suscité de vastes intérêts de recherche dans diverses disciplines telles que la sociologie, la gestion, l'économie et surtout l'informatique.

Les premières recherches consensuelles dans le domaine de l'informatique se sont généralement concentrées sur la cohérence distribuée, c'est-à-dire comment s'assurer que tous les nuds d'un cluster de systèmes distribués ont exactement les mêmes données et peuvent s'entendre sur une proposition, ce qui est l'un des problèmes fondamentaux de la distribution distribuée. Bien que Consensus et Cohérence soient considérés comme approximativement équivalents et utilisés de manière interchangeable dans de nombreuses littératures et scénarios d'application, il existe des différences subtiles dans leurs significations : La recherche de consensus se concentre sur les nuds distribués atteignant un consensus. considérer la tolérance aux pannes byzantines, c'est-à-dire qu'il est supposé qu'il n'y a pas de nuds byzantins qui falsifient et falsifient les données de manière malveillante. Par conséquent, pendant longtemps, les scénarios d'application des algorithmes de consensus distribués traditionnels sont principalement des environnements de bases de données distribuées avec un nombre limité de nuds et Dans un environnement Internet complexe, ouvert et sans confiance, il y a plus de nuds et il peut y avoir des nuds byzantins malveillants. Par conséquent, même de nombreux algorithmes de consensus distribués tels que la réplication Viewstamped ( ci-après dénommé VR) et Paxos ont été proposés dès les années 1980, mais comment combler le fossé de la tolérance aux pannes byzantine et concevoir un algorithme de consensus distribué simple et facile est toujours l'un des problèmes difficiles dans le domaine de l'informatique distribuée.

Le 31 octobre 2008, un chercheur sous le pseudonyme "Satoshi Nakamoto" a publié l'article révolutionnaire de Bitcoin "Bitcoin : un système de paiement électronique peer-to-peer" dans le groupe de messagerie de cryptographie, basé sur la recherche Consensus sur les blockchains (en particulier les blockchains publiques) Du point de vue de l'informatique distribuée et du consensus, la contribution fondamentale de Bitcoin est la première réalisation et vérification d'une classe d'algorithmes pratiques de tolérance aux pannes byzantines à l'échelle d'Internet, ouvrant ainsi la porte à une nouvelle ère de blockchain.

D'une manière générale, les nuds du système blockchain ont les caractéristiques d'être distribués, autonomes, ouverts et libres d'entrée et de sortie, de sorte que la plupart d'entre eux utilisent un réseau peer-to-peer (réseau P2P) pour organiser la vérification globale des données de participation. et nuds de comptabilité. Chaque nud du réseau P2P a le même statut et est connecté et interagit les uns avec les autres dans une topologie plate. Il n'y a pas de nud spécial centralisé ni de structure hiérarchique, et chaque nud sera responsable du routage et de la vérification du réseau. données, diffuser des blocs de données, découvrir de nouveaux nuds et d'autres fonctions. Le système blockchain adopte un mécanisme d'incitation économique spécifique pour s'assurer que tous les nuds du système distribué sont motivés à participer au processus de génération et de vérification des blocs de données, qui sont complétés selon le nud réel La charge de travail distribue la crypto-monnaie numérique générée par le processus de consensus et sélectionne des nuds spécifiques pour ajouter de nouveaux blocs à la blockchain via l'algorithme de consensus Le développement vigoureux d'une série d'applications de blockchain représentées par Bitcoin met en évidence le domaine de L'importance et la valeur d'application de la technologie blockchain et le consensus des systèmes blockchain sont également devenus un nouveau point chaud de la recherche.

Jusqu'à présent, les chercheurs ont effectué de nombreux travaux de recherche dans des domaines liés au consensus, et l'orientation des chercheurs dans différents domaines est également différente. L'informatique est généralement appelée algorithme de consensus ou protocole de consensus, et la gestion et l'économie sont généralement appelées mécanisme de consensus. En y regardant de plus près, il existe des différences subtiles entre ces formulations : un algorithme est généralement un ensemble de jeux d'instructions sensibles à l'ordre avec des entrées et des sorties définies ; tandis que les protocoles et les mécanismes sont principalement un ensemble de jeux de règles insensibles à l'ordre. , cet article estime que Bitcoin et Ethereum peuvent être considérés comme les protocoles ou mécanismes sous-jacents, qui spécifient en détail les règles d'interaction des nuds, les règles de routage et de transfert des données, les règles de construction de blocs, les règles de vérification des transactions et la maintenance du grand livre au sein du système ou de la plate-forme. Un ensemble de règles, etc. ; Proof-of-Work (PoW), Proof-of-Stake (PoS), etc. sont des algorithmes commutables de manière flexible basés sur des protocoles ou des mécanismes spécifiques, qui stipulent la détection des transactions. ensembles d'instructions, tels que l'écoute et le conditionnement, les blocs de construction, l'élection du comptable, la propagation et la vérification des blocs, la sélection et la mise à jour de la chaîne principale, etc. Par conséquent, les descriptions suivantes de cet article adoptent toutes la formulation de l'algorithme de consensus.

Le problème de consensus étudié dans la littérature existante peut en fait être divisé en deux branches : le consensus d'algorithme et le consensus de décision. Le premier est dédié à l'étude de la manière d'assurer la cohérence dans un réseau distribué qui manque de contrôle central et de coordination sous la prémisse d'un modèle de réseau spécifique. L'essence est une sorte de "consensus machine" ; ce dernier est plus étendu pour étudier le problème de savoir comment parvenir à un consensus sur la décision optimale dans la prise de décision de groupe non centrée, comme le problème du système Bitcoin expansion et bifurcation. L'essence de la discussion communautaire et de la sélection de l'itinéraire est le "consensus humain". La différence entre les deux est que le premier est un consensus déterministe entre les machines, se concentrant sur la complexité de l'ingénierie ; le second est basé sur "l'humain dans la boucle" (Human -in-theloop) "Le système complexe est caractérisé par un consensus d'incertitude, principalement basé sur la complexité sociale. La recherche d'algorithmes de consensus sur la blockchain devrait appartenir à un sous-ensemble de branches de consensus d'algorithmes, tandis que le consensus de décision se trouve principalement dans l'intelligence artificielle distribuée, des domaines de recherche tels que comme multi-agent.

Le problème des généraux byzantins est la base du consensus distribué et la racine des deux branches de recherche mentionnées ci-dessus. Le problème des généraux byzantins a deux conditions de cohérence interactives, à savoir la cohérence et l'exactitude. Puisque la plupart du temps, l'exactitude implique la subjectivité humaine. Il est difficile de appliquer des jugements de valeur aux nuds distribués, de sorte que le consensus de l'algorithme adopte une "exactitude dégradée", c'est-à-dire que le "contenu exprimé est correct" est rétrogradé à "correctement exprimé", ce qui conduit à Le consensus byzantin de la blockchain est en fait un consensus machine, ce qui équivaut à cohérence distribuée + expression correcte (sans falsification des messages).En revanche, le consensus décisionnel peut être considéré comme un consensus humain, ne nécessitant pas seulement de la cohérence, et oblige tous les nuds à croire que "le contenu exprimé est correct" , de sorte que le consensus de décision nécessite non seulement la cohérence objective du contenu, mais également l'exactitude subjective entre les nuds de consensus. On peut voir que le consensus de l'algorithme traite du consensus binaire objectif, à savoir le droit (le seul grand livre correct) et le faux (tout faux grand livre), tandis que le consensus décisionnel traite du consensus multivalué subjectif, à savoir l'opinion 1 (et son groupe), l'opinion 2 (et son groupe) ), ..., l'opinion N (et le groupe auquel elle appartient) , chaque nud converge finalement vers une opinion unique (consensus) à travers le processus de coordination et de coopération entre les groupes, et ce processus peut échouer (ne pas converger).

Cet article est consacré au tri et à la discussion des algorithmes de consensus dans le développement de la blockchain par ordre chronologique, afin de fournir une référence pour l'innovation des algorithmes de consensus et le développement de la technologie de la blockchain à l'avenir. comme suit : Premièrement, une brève introduction au consensus distribué Recherche et conclusions importantes dans le domaine, y compris le problème des deux armées, le problème byzantin et le théorème d'impossibilité FLP, et a introduit l'algorithme de consensus distribué traditionnel ; puis a proposé un modèle de base et méthode de classification de l'algorithme de consensus de la blockchain et analyse les algorithmes de consensus actuels de la blockchain ; enfin, résume les tendances de développement et de recherche des algorithmes de consensus de la blockchain.

1 Algorithme de consensus distribué traditionnel

En 1975, E. A. Akkoyunlu, K. Ekanadham et R. V. Huber de l'Université d'État de New York à Stony Brook ont écrit dans l'article "Quelques contraintes et compromis dans la conception des communications réseau Le problème des deux armées dans le domaine informatique et sa preuve insoluble ont été proposés pour la première fois dans ", et le célèbre expert en bases de données Jim Gray a officiellement nommé le problème "le problème des deux armées". Le problème des deux armées montre que sur un lien de communication peu fiable, il est impossible d'essayer de parvenir à un consensus par la communication, ce qui est considéré comme le premier problème de la recherche en communication informatique qui s'avère insoluble. Le problème des deux armées a eu un impact important sur la recherche en communication informatique, et le protocole TCP/IP le plus important à l'ère d'Internet est le "trois- prise de contact" dans le protocole est une "solution d'ingénierie" simple, facile et à coût contrôlable, née pour résoudre le problème entre les deux armées sans solution théorique.

Le problème de consensus dans le domaine de l'informatique distribuée a été proposé en 1980 par Marshall Pease, Robert Shostak et Leslie Lamport, qui a été principalement étudié dans un En 1982, l'auteur a officiellement nommé le problème "Byzantine Generals Problem" dans un autre article en 1982 , proposé deux algorithmes basés sur des messages parlés et basés sur des messages signés pour résoudre le problème. L'hypothèse byzantine est une modélisation du monde réel, soulignant qu'en raison d'erreurs matérielles, d'encombrement ou de déconnexion du réseau et d'attaques malveillantes, des ordinateurs et des réseaux Un comportement imprévisible qui peut Après cela, les algorithmes de consensus distribués peuvent être divisés en deux catégories, à savoir le consensus byzantin tolérant aux pannes et le consensus non byzantin tolérant aux pannes.Les premiers algorithmes de consensus sont généralement des algorithmes non byzantins tolérants aux pannes, tels que VR et Paxos, actuellement principalement utilisé dans les chaînes d'alliance et les chaînes privées ; fin 2008, après la naissance de chaînes publiques telles que Bitcoin, les algorithmes de consensus byzantins tolérants aux pannes ont progressivement trouvé une application pratique. Il convient de noter que le problème général byzantin est l'idée centrale de Technologie Blockchain La cause fondamentale affecte directement la conception et la mise en uvre de l'algorithme de consensus du système blockchain, elle est donc d'une grande importance dans le système technologique blockchain.

En 1985, Michael Fisher, Nancy Lynch et Michael Paterson ont publié l'article "Impossibilité d'un consensus distribué avec un processus défectueux". Cet article Preuve : Dans un système asynchrone avec plusieurs processus déterministes, tant qu'un processus peut échouer, il n'y a pas protocole qui garantit que tous les processus peuvent parvenir à un accord dans un temps fini. Après les initiales du nom de famille de l'auteur, le théorème est nommé Le théorème d'impossibilité FLP est l'une des conclusions classiques dans le domaine des systèmes distribués, et a remporté le prix Dijkstra pour Le théorème d'impossibilité FLP souligne également que le problème de consensus d'un système asynchrone avec des processus défectueux n'a pas de solution théorique en temps fini, il doit donc être trouvé sa "solution d'ingénierie" réalisable. À cette fin, les chercheurs ne peuvent qu'éviter le Théorème d'impossibilité FLP en ajustant le modèle de problème, tel que sacrifier la certitude, augmenter le temps, etc.; Synchronisation) et les hypothèses de temps pour éviter l'impossibilité de FLP, telles que les nuds de réseau peuvent se synchroniser rapidement, et les mineurs investissent un temps et des ressources limités sur l'optimum chaîne, etc...

Les premiers algorithmes de consensus sont aussi généralement appelés algorithmes de consensus distribués.Par rapport aux algorithmes de consensus de blockchain traditionnels actuels, les algorithmes de consensus distribués sont principalement orientés vers les opérations de base de données distribuées, et la plupart d'entre eux ne tiennent pas compte de la tolérance aux pannes byzantines, c'est-à-dire en supposant des nuds système. , Brian M. Oki et Barbara Riscoff du Massachusetts Institute of Technology (MIT) Barbara H. Liskov, une célèbre experte en informatique et lauréate du prix Turing en 2008) ont proposé l'algorithme de consensus VR, qui adopte le mode de sauvegarde primaire, qui stipule que toutes les opérations sur les données doivent être effectuées via l'hôte, puis copiées sur chaque machine de sauvegarde afin d'assurer la cohérence.En 1989, Leslie Lamport a proposé l'algorithme Paxos dans le document de travail "Le parlement à temps partiel", car le papier utilisé un style de narration et le contenu était trop difficile et obscur, jusqu'à ce qu'il ne passe l'examen qu'en 1998 et soit publié dans la revue ACM transactions on computer systems.Paxos est un algorithme de consensus basé sur la transmission de messages, qui résout principalement le problème de la distribution Les systèmes peuvent s'accorder sur une valeur spécifique.Avec l'approfondissement de la recherche sur le consensus distribué, l'algorithme Paxos a été largement reconnu par le milieu universitaire et l'industrie, et des variantes dérivées telles que les paxos abstraits, les paxos classiques, les paxos byzantins et les paxos de disque, devenant la famille la plus importante de algorithmes pour résoudre le problème de consensus des systèmes asynchrones. En fait, Liskove et al. L'algorithme VR est essentiellement un type d'algorithme Paxos. Il convient de noter que les algorithmes VR et Paxos supposent qu'il n'y a pas de nuds de défaut byzantins dans le système, ce sont donc des algorithmes de consensus tolérants aux pannes non byzantins.Les premiers algorithmes de consensus incluent également l'algorithme de validation en deux phases, l'algorithme de validation en trois phases, Zab, Zyzzyva, Kafka, etc., qui ne sont pas décrits en détail dans cet article en raison de l'espace limites.

2 Algorithmes de consensus de blockchain grand public

En 1993, Cynthia Dwork, une informaticienne américaine et professeure à l'université de Harvard, a proposé pour la première fois l'idée d'une preuve de travail pour résoudre le problème du spam. Elle effectue un certain niveau de travail informatique, augmentant ainsi le coût pour spammers. Egalement proposé indépendamment par le cryptographe britannique Adam Back en 1997 et publié officiellement en 2002 pour le mécanisme de preuve de travail de hachage cash (Hash cash). Hash cash est également dédié à la résolution du problème du spam. Le problème mathématique consiste à trouver le Valeur de hachage SHA-1 de données spécifiques, y compris l'adresse du destinataire de l'e-mail et la date actuelle, ce qui en fait au moins Contient 20 zéros non significatifs. En 1999, Markus Jakobsson a officiellement proposé le concept de "preuve de travail". la base du mécanisme de consensus de Bitcoin conçu par Satoshi Nakamoto plus tard.

En 1999, Barbara Liskov et d'autres ont proposé un algorithme de tolérance aux pannes byzantine pratique (PBFT), qui a résolu le problème de la faible efficacité de l'algorithme de tolérance aux pannes byzantine original et réduit la complexité de l'algorithme d'un niveau exponentiel à un niveau polynomial. réalisable dans les applications système pratiques. PBFT est en fait une variante de l'algorithme Paxos. En améliorant l'algorithme Paxos pour permettre de traiter les erreurs byzantines, il est également appelé algorithme paxos byzantin, qui peut garantir la vivacité et la sécurité. Fournit (n- 1)/3 tolérance aux pannes selon le principe, où n est le nombre total de nuds.

En 2000, le professeur Eric Brewer de l'Université de Californie a avancé une conjecture dans le rapport invité du symposium ACM sur les principes de l'informatique distribuée : Les systèmes distribués ne peuvent pas simultanément satisfaire la cohérence, la cohérence, la disponibilité et la tolérance de partition ne peuvent satisfaire qu'au plus deux d'entre eux. En même temps. Parmi eux, la cohérence signifie que toutes les sauvegardes de données dans un système distribué conservent la même valeur en même temps ; la disponibilité signifie qu'une partie de la Lorsqu'un nud tombe en panne, si le cluster dans son ensemble peut toujours gérer les demandes de mise à jour des clients ; la tolérance de partition indique si les partitions de données sont autorisées et les nuds de cluster dans différentes partitions ne peuvent pas communiquer entre eux. En 2002, Seth Gilbert (Seth Gilbert) ) et Nancy Lynch ont prouvé cette conjecture dans le modèle de réseau asynchrone, ce qui en fait le théorème CAP ou le théorème de Brewer.Ce théorème libère les chercheurs en réseaux distribués de la poursuite de la perfection qui satisfait simultanément les trois propriétés de conception, mais a dû faire des compromis entre eux, ce qui a également apporté une influence et des limites à la conception ultérieure de l'architecture de la blockchain.

En octobre 2008, le document de création Bitcoin publié par Satoshi Nakamoto a donné naissance à la recherche sur les algorithmes de consensus basés sur la blockchain. La plupart des algorithmes de consensus distribués traditionnels mentionnés ci-dessus sont utilisés dans des chaînes d'alliance et des chaînes privées relativement crédibles. Pour les environnements de chaîne publique tels que Bitcoin et Ethereum, une série de nouveaux algorithmes de consensus byzantins tolérants aux pannes tels que PoW et PoS sont nés.

Bitcoin adopte l'algorithme de consensus PoW pour assurer la cohérence de la comptabilité distribuée du réseau Bitcoin, qui est également l'algorithme de consensus de chaîne publique le plus ancien, le plus sûr et le plus fiable à ce jour.L'idée centrale de PoW est de garantir que la puissance de calcul de les nuds distribués sont en concurrence Cohérence des données et sécurité du consensus Chaque nud du système Bitcoin (c'est-à-dire les mineurs) est en concurrence les uns avec les autres en fonction de leur puissance de calcul informatique respective pour résoudre conjointement un problème mathématique SHA256 complexe mais facile à vérifier (c'est-à-dire l'exploitation minière), le plus rapide solution Les nuds de ce puzzle obtiendront les droits de comptabilité du bloc suivant et les récompenses Bitcoin générées automatiquement par le système.L'application du consensus PoW dans Bitcoin est d'une grande importance, qui intègre presque parfaitement l'émission de devises, la circulation et l'échange de marché et d'autres fonctions, et assurer la sécurité et la décentralisation du système.Cependant, le consensus PoW a également des défauts importants, et le gaspillage de ressources (principalement la consommation d'énergie) causé par sa puissante puissance de calcul a toujours été critiqué par les gens, et il a longtemps été Les temps de confirmation des transactions allant jusqu'à 10 minutes le rendent relativement inadapté aux applications commerciales de petites transactions.

En juillet 2011, un passionné de monnaie numérique nommé Quantum Mechanic a proposé pour la première fois l'algorithme de consensus PoS de preuve de participation sur le forum Bitcoin (www.bitcointalk.org).Par la suite, Sunny King a publié Peercoin en août 2012 (Peercoin, PPC) pour le PoS est obtenu par le nud avec la plus grande équité dans le système plutôt que par la plus grande puissance de calcul, et l'équité se reflète dans la propriété par le nud d'une quantité spécifique de monnaie, appelée âge des pièces ou jours des pièces (Coin days ) .PPC combine les deux algorithmes de consensus de PoW et PoS. Dans la phase initiale, la méthode de minage PoW est adoptée afin que les jetons soient relativement équitablement distribués aux mineurs. Plus tard, à mesure que la difficulté de minage augmente, le système sera principalement maintenu par l'algorithme de consensus PoS PoS dans une certaine mesure Il résout le problème du gaspillage de puissance de calcul PoW et peut raccourcir le temps nécessaire pour parvenir à un consensus, tant d'altcoins après Bitcoin utilisent l'algorithme de consensus PoS.

En février 2013, Vitalik Buterin, le fondateur d'Ethereum, a présenté l'idée de Ripple (Ripple) et son processus de consensus en détail sur le site Web de Bitcoin Magazine. Le projet Ripple est en fait antérieur à Bitcoin et a été fondé par Ryan Fogel en 2004. ( Ryan Fugger), dont l'intention initiale était de créer un système monétaire décentralisé capable d'aider efficacement les individus et les communautés à émettre leur propre monnaie ; en 2014, David Schwartz et d'autres ont proposé l'algorithme de consensus du protocole Ripple (Ripple Protocol Consensus Algorithm, RPCA), ce L'algorithme de consensus résout le problème de la latence élevée dans la communication asynchrone des nuds de réseau, en utilisant des sous-réseaux de confiance collective, dans un environnement réseau qui n'a besoin que de minimiser la confiance et une connectivité minimale. Un algorithme de consensus byzantin à faible latence et très robuste est réalisé. À l'heure actuelle, Ripple est devenu un réseau mondial de règlement financier basé sur la technologie blockchain.

En août 2013, le projet Bitshares a proposé un nouvel algorithme de consensus, le Delegated Proof-of-Stake (DPoS).L'idée de base du consensus DPoS est similaire à la "décision du conseil", c'est-à-dire le système Chaque nud peut accorder son partager les droits en tant que vote à un représentant, et les N nuds supérieurs qui ont le plus de votes et sont prêts à devenir des représentants entreront dans le "conseil d'administration", et les transactions seront emballées et réglées à tour de rôle selon le calendrier établi, et signés (c'est-à-dire la production) de nouveaux blocs. Si le consensus PoW et PoS sont respectivement les méthodes comptables "la puissance de calcul est reine" et "l'équité est reine", le DPoS peut être considéré comme une méthode comptable "démocratique centralisée", qui ne seulement Cela peut bien résoudre le problème que le PoW gaspille de l'énergie et l'exploitation minière combinée constitue une menace pour la décentralisation du système, et peut également compenser les lacunes du PoS que les participants ayant des droits de comptabilité peuvent ne pas vouloir participer à la comptabilité. l'algorithme de consensus le plus efficace, le plus décentralisé et le plus flexible.

En 2013, Diego Ongaro et John Ousterhout de l'Université de Stanford ont proposé l'algorithme de consensus Raft.Comme indiqué dans leur article intitulé "À la recherche d'un algorithme de consensus compréhensible", l'intention initiale de Raft est de concevoir un algorithme de consensus plus facile à comprendre et à comprendre. Il faut savoir que les papiers de Paxos étant rarement compris, Lamport a écrit un article "Paxos made simple" en 2001, essayant de simplifier la description L'algorithme de Paxos n'est pas efficace, ce qui a directement conduit à la proposition de Raft. , Raft a été implémenté dans de nombreux langages open source courants.

3 Modèle et classification des algorithmes de consensus

Avec la popularisation de Bitcoin et le développement de la technologie blockchain, de plus en plus de nouveaux algorithmes de consensus ont été proposés.Afin de permettre aux lecteurs d'avoir une compréhension plus approfondie des différents algorithmes de consensus, cette section présente un courant dominant du processus de consensus blockchain.Modèle. Il convient de noter que ce modèle n'est pas un modèle général et peut ne pas couvrir tous les types de processus de consensus, mais il peut refléter les idées fondamentales de la plupart des algorithmes de consensus traditionnels.

Le système de blockchain est construit sur le réseau P2P, et l'ensemble de tous les nuds peut être enregistré comme P, qui est généralement divisé en nuds ordinaires qui produisent des données ou des transactions, et ceux chargés de vérifier, de conditionner et de mettre à jour les données ou les transactions générées. Pour l'ensemble des nuds "mineurs" (notés M) pour les opérations minières, les deux types de nuds peuvent avoir une intersection ; généralement, tous les nuds mineurs participeront au processus de concurrence consensuelle, et des nuds représentatifs spécifiques seront également élus dans des algorithmes spécifiques pour les remplacer. Participer au processus de consensus et concourir pour les droits comptables, l'ensemble de ces nuds représentatifs est noté D ; les nuds comptables sélectionnés par le processus de consensus sont notés A. Le processus de consensus est répété selon rondes, et chaque ronde de processus de consensus resélectionne généralement le nud comptable.

Le cur du processus de consensus est "l'élection du leader" et la "comptabilité". Dans le processus d'opération spécifique, chaque tour peut être divisé en élection du leader, génération de blocs, validation des données et en chaîne (mise à jour de la chaîne, à savoir la comptabilité) en quatre étapes. Comme le montre la figure 1, l'entrée du processus de consensus est la transaction ou les données générées et vérifiées par le nud de données, et la sortie est le bloc de données empaqueté et la blockchain mise à jour.. Les quatre étapes sont exécutées de manière cyclique, et chaque cycle d'exécution générera un nouveau bloc.

La première étape : l'élection du maître. La sélection du maître est au cur du processus de consensus, c'est-à-dire le processus de sélection du nud comptable A dans l'ensemble M de tous les mineurs : nous pouvons utiliser la formule f(M) ! A pour représenter le processus de sélection maître, où la fonction f représente l'implémentation spécifique de l'algorithme de consensus. De manière générale, jAj = 1, c'est-à-dire que le seul nud mineur est finalement sélectionné pour la comptabilité.

La deuxième étape : la création de blocs. Les nuds comptables sélectionnés lors de la première étape regroupent les transactions ou les données générées par tous les nuds P au cours de la période actuelle dans un bloc selon une stratégie spécifique, et diffusent le nouveau bloc généré à tous les mineurs. Nud M ou son nud représentatif D. Ces transactions ou données sont généralement triées de manière exhaustive en fonction de divers facteurs tels que la capacité des blocs, les frais de transaction, le temps d'attente des transactions, etc., puis regroupées dans de nouveaux blocs en séquence. à la performance du système blockchain C'est aussi une manifestation concentrée des comportements stratégiques des mineurs tels que l'emballage de transactions gourmandes et l'exploitation minière égoïste.

Phase 3 : Vérification. Une fois que le nud mineur M ou le nud représentatif D reçoit la nouvelle diffusion de bloc, ils vérifient l'exactitude et la rationalité de la transaction ou des données encapsulées dans le bloc. S'il est approuvé, le bloc sera mis à jour dans la blockchain comme le prochain bloquer.

Étape 4 : En chaîne. Le nud de comptabilité ajoute le nouveau bloc à la chaîne principale, formant une chaîne complète et plus longue du bloc de genèse au dernier bloc. S'il y a plusieurs chaînes fourchues dans la chaîne principale, il est nécessaire d'accorder au critère de chaîne principale spécifié par l'algorithme de consensus, l'une des branches appropriées est sélectionnée comme chaîne principale.

Les algorithmes de consensus de la blockchain peuvent être classés selon plusieurs dimensions telles que leur type de tolérance aux pannes, leur méthode de déploiement et leur degré de cohérence.Par exemple, selon le type de tolérance aux pannes, les algorithmes de consensus de la blockchain peuvent être divisés en tolérance aux pannes byzantine et tolérance aux pannes non byzantine. ; selon le déploiement L'algorithme de consensus de la blockchain peut être divisé en trois catégories : consensus de la chaîne publique, consensus de la chaîne d'alliance et consensus de la chaîne privée ; selon le degré de cohérence, l'algorithme de consensus de la blockchain peut également être divisé en consensus de consensus fort et faible ( final) consensus Cet article propose une nouvelle méthode de classification de la stratégie de sélection des leaders selon le processus de consensus. Son avantage réside dans le fait qu'il est commode de décrire le mécanisme de base de l'algorithme de consensus. Les algorithmes de consensus Blockchain sont divisés en cinq types : élection, preuve, aléatoire, alliance et hybride :

Consensus de type électoral : c'est-à-dire que les nuds mineurs élisent le tour actuel des nuds de comptabilité par le biais d'une "élection par vote" à chaque tour du processus de consensus, et les nuds mineurs qui obtiennent en premier plus de la moitié des votes obtiendront la bonne comptabilité ; plus commun dans les algorithmes de consensus de distribution traditionnels, tels que Paxos et Raft.

Consensus de type preuve : il peut également être appelé consensus de type "preuve de X", c'est-à-dire que les nuds mineurs doivent prouver qu'ils ont une certaine capacité à chaque tour de processus de consensus. Pour la tâche de vérification, le nud mineur qui remporte la compétition obtenir le droit comptable ; par exemple, les algorithmes de consensus tels que PoW et PoS sont basés sur la puissance de calcul ou les droits des mineurs pour effectuer la tâche de recherche de nombres aléatoires, afin de concourir pour le droit comptable.

Consensus aléatoire : c'est-à-dire que le nud mineur détermine directement le nud de facturation de chaque tour selon une méthode aléatoire, comme les algorithmes de consensus Algorand et PoET mentionnés ci-dessous. Consensus d'alliance : c'est-à-dire que le nud mineur est d'abord élu sur la base d'un méthode Un groupe de nuds représentatifs, puis les nuds représentatifs obtiennent les droits comptables à tour de rôle ou par élection. Il s'agit d'un algorithme de consensus caractérisé par un "système représentatif", tel que DPoS, etc.

Consensus hybride : c'est-à-dire que le nud mineur adopte un mélange de divers algorithmes de consensus pour sélectionner le nud comptable, tels que le consensus hybride PoW+PoS, le consensus DPoS+BFT, etc.

4 nouveaux développements des algorithmes de consensus Blockchain

Depuis 2014, avec l'entrée rapide de la technologie Bitcoin et blockchain dans l'il du public, de nombreux chercheurs ont commencé à prêter attention à la technologie blockchain et à l'étudier, et l'algorithme de consensus est donc entré dans une période de développement et d'épanouissement rapides. Il s'agit soit de simples variantes de l'algorithme original, soit de micro-innovations apportées pour améliorer les performances d'un certain aspect, soit de nouveaux algorithmes qui ont apporté des améliorations majeures pour s'adapter à de nouveaux scénarios et de nouvelles exigences. Nécessité d'être expliqué Cependant, la plupart de ces algorithmes de consensus n'ont pas été vérifiés de manière convaincante par la pratique en raison de leur proposition tardive, et certains ne sont même que des idées de recherche scientifique ; mais ces algorithmes ont des innovations évidentes et ont certaines perspectives d'application à grande échelle, donc nous écrivons Come out pour les lecteurs et nous nous réjouissons d'inspirer la recherche innovante de suivi.

4.1 Ligne principale 1 : La combinaison organique des algorithmes PoW et PoS

Basés sur la combinaison organique des algorithmes PoW et PoS, les chercheurs ont successivement proposé des algorithmes de consensus Proof of Stake Velocity (PoSV), Proof of Burn (PoB), Proof of Activity (PoA) et two-hop (2-hop), dédiés à apprendre des forces et des faiblesses de chacun, résoudre la consommation d'énergie et les risques de sécurité des PoW et des PoS En avril 2014, Larry Ren (Larry Ren) a proposé l'algorithme de consensus PoSV dans le livre blanc Reddcoin, Pour améliorer le problème que l'âge des pièces dans PoS est une fonction linéaire du temps, nous nous engageons à éliminer le phénomène des détenteurs de pièces. L'algorithme PoSV utilise PoW pour réaliser la distribution de jetons à un stade précoce, et utilise PoSV pour maintenir la sécurité à long terme du réseau plus tard. étape. La fonction linéaire de l'âge et du temps est modifiée en une fonction de décroissance exponentielle, c'est-à-dire que le taux de croissance de l'âge de la pièce diminue avec le temps et tend finalement vers zéro. Par conséquent, l'âge de la nouvelle pièce augmente plus rapidement que l'ancienne pièce jusqu'à ce qu'il atteigne le seuil supérieur, ce qui atténue dans une certaine mesure le phénomène des détenteurs de pièces.Slimcoin émis en mai 2014 s'inspire de la conception de Bitcoin et Peercoin, et propose d'abord un algorithme de consensus PoB basé sur PoW et PoS. eux, le consensus PoW est utilisé pour générer l'approvisionnement en pièces de monnaie de génération initiale, lorsque le réseau blockchain accumule suffisamment de jetons au fil du temps, le système s'appuiera sur le consensus PoB et PoS pour se maintenir ensemble.La caractéristique du consensus PoB est que les mineurs envoient leur Slimcoin à un spécifique inachevé L'adresse retournée (gravure) est utilisée pour concourir pour le droit de comptabilité du nouveau bloc. Plus il y a de pièces brûlées, plus la probabilité d'exploiter un nouveau bloc est élevée. Le consensus PoA proposé en décembre 2014 est également basé sur PoW et PoS, qui sont exploités par PoW. Certains jetons sont distribués à tous les nuds actifs par loterie, et les droits et intérêts des nuds sont proportionnels au nombre de billets de loterie, c'est-à-dire à la probabilité de gagner. Le consensus à deux sauts était proposé en avril 2017, et sa conception originale était de résoudre le potentiel 51 de PoW.La solution au problème de % attaque de puissance de calcul est d'introduire des droits PoS sur la base de la puissance de calcul PoW, de sorte que la sécurité de la blockchain soit basée sur le fait que les nuds honnêtes occupent l'essentiel des ressources communes (puissance de calcul + droits et intérêts).Autrement dit, les nuds byzantins Il faut contrôler plus de 51% de la puissance de calcul et plus de 51% des fonds propres au niveau en même temps afin de réussir à mettre en place une attaque à 51%, ce qui améliore sans aucun doute grandement la sécurité de la blockchain.

4.2 Axe 2 : Amélioration de l'algorithme PoS natif

L'objectif d'amélioration de l'algorithme de consensus PoS natif est principalement de résoudre son problème inhérent "Rien en jeu", formant Tendermint et ses nouveaux algorithmes de consensus dérivés tels que Casper, Ouroboros, Tezos et Honeybadger. Le consensus PoS natif est généralement On suppose que les nuds homologues du système sont tous statiques et stables à long terme, ce qui n'est pas réaliste dans l'environnement de la blockchain.La percée majeure de Tendermint proposée en 2014 est l'utilisation de blocs, de liens de hachage, d'ensembles de validateurs dynamiques et de l'élection du chef par tourniquet , a implémenté le premier algorithme de consensus PoS basé sur PBFT. Pour résoudre le problème de l'absence d'enjeu, les nuds Tendermint doivent payer un acompte, et s'ils font le mal, l'acompte sera confisqué. Tendermint est un algorithme de consensus byzantin tolérant aux pannes, qui résiste aux attaques robustes à double dépense et peut résister aux attaques d'un tiers des perturbateurs du réseau.

Casper proposé en 2015 est l'algorithme de consensus qu'Ethereum envisage d'adopter dans la quatrième phase de sa feuille de route appelée Serenity. Casper the Friendly Ghost (CTFG) dirigé par Vitalik Buterin et Casper Friendly Finality Gadget (CFFG) dirigé par Vitalik Buterin. un consensus PoS clair, tandis que ce dernier est une combinaison organique de consensus PoW et PoS. Dans le même temps, les deux consensus PoS Les principes fondamentaux sont le PoS basé sur la chaîne et le PoS byzantin tolérant aux pannes. Tendermint est un PoS byzantin tolérant aux pannes. En revanche, CTFG est une conception de point de vente basée sur une chaîne, et CFFG est une combinaison des deux.

Le consensus HoneyBadger proposé en 2016 est le premier protocole pratique de consensus asynchrone byzantin tolérant aux pannes, qui peut garantir la vivacité du système de blockchain sans aucune hypothèse de temps de réseau Le consensus est basé sur un atomique qui peut atteindre une validité progressive Un protocole de diffusion qui peut traiter des dizaines de milliers de transactions par seconde sur des centaines de nuds dans un réseau étendu. Le consensus Ouroboros proposé en août 2017 est le premier protocole de blockchain basé sur PoS avec des garanties de sécurité strictes. Un nouveau mécanisme de récompense pilote le processus de consensus PoS, de sorte que le comportement des nuds honnêtes constitue un équilibre de Nash approximatif, qui peut résister efficacement aux attaques de sécurité telles que l'interception de blocs et l'exploitation minière égoïste en raison du comportement stratégique des mineurs.

4.3 Axe principal 3 : Amélioration de l'algorithme de consensus PoW natif

L'objectif d'amélioration de l'algorithme de consensus PoW natif est principalement de réaliser l'expansion de Bitcoin ou de réduire sa consommation d'énergie.En mars 2016, Ittay Eyal de l'Université Cornell et d'autres ont proposé un nouvel algorithme de consensus BitcoinNG, qui divise le temps en différentes périodes. leader est responsable de la génération de blocs et de l'emballage des transactions à chaque période. Le protocole introduit deux types de blocs différents : les blocs clés pour l'élection des leaders et les micro-blocs contenant des données de transaction. Domaines clés Les blocs sont générés à l'aide de l'algorithme de consensus Bitcoin PoW, puis le leader est autorisé à générer des microblocs à un taux inférieur à un seuil prédéfini (par exemple 10 secondes). BitcoinNG peut générer plus de microblocs en élisant le leader sans changer la taille du bloc. L'algorithme de consensus ByzCoin proposé en août de la même année s'appuie sur la conception idée de Bitcoin-NG, qui est indépendant de l'élection du leader et de la vérification des transactions, et est un nouveau type d'algorithme byzantin tolérant aux pannes évolutif, qui peut permettre au système de blockchain d'atteindre des performances élevées et un faible délai de confirmation au-delà du débit Paypal tout en maintenant cohérence forte. Le mécanisme de consensus Elastico proposé en 2016 améliore l'évolutivité de la blockchain grâce à la technologie de sharding. Il s'agit d'isoler le réseau de minage en plusieurs shards (shards) d'une manière dont la sécurité est prouvée, et ces shards traitent en parallèle des ensembles disjoints de transactions. Elastico est le premier protocole byzantin de partitionnement sécurisé tolérant aux pannes. En 2017, OmniLedger s'appuie en outre sur le consensus ByzCoin et Elastico pour concevoir et proposer un protocole byzantin tolérant aux pannes nommé ByzCoinX. OmniLedger optimise les performances de la blockchain grâce au traitement parallèle des transactions inter-fragments, et est le le premier qui peut fournir une évolutivité horizontale sans sacrifier la sécurité et la décentralisation à long terme Architecture centralisée des registres distribués.

Afin d'améliorer l'efficacité (consommation d'énergie) et l'équité de l'algorithme de consensus PoW, les chercheurs ont successivement proposé la preuve du temps écoulé (PoET) et la preuve de la chance (PoL).Tous les deux PoET et PoL sont basés sur un algorithme de consensus aléatoire spécifique pour Trusted Environnements d'exécution (TEE, tels que CPU basés sur la technologie Intel SGX). PoET est l'algorithme de consensus adopté par le projet Sawtooth d'HyperLedger. L'idée de base est que chaque nud de blockchain Un nombre aléatoire est généré selon une distribution de probabilité prédéfinie pour déterminer le temps d'attente jusqu'à la prochaine fois qu'il obtient le droit comptable. Chaque fois qu'un nouveau bloc est soumis au système blockchain, SGX peut aider le nud à créer un bloc et à générer le temps d'attente. La preuve du temps, et cette preuve est facile à être vérifié par d'autres nuds SGX L'importance du consensus PoET est que le système de blockchain n'a pas à consommer une puissance de calcul coûteuse pour l'exploitation minière, améliorant ainsi l'efficacité et réalisant également vraiment "un processeur, un vote" De même, le consensus PoL utilise également le générateur de nombres aléatoires de la plate-forme TEE pour sélectionner le chef (comptable) de chaque tour de consensus, ce qui peut réduire le temps de retard de vérification des transactions et le temps de confirmation des transactions, et atteindre une consommation d'énergie négligeable et une exploitation minière distribuée vraiment équitable.

La preuve d'espace (PoSp) proposée en 2014 et la preuve de travail utile (PoUW) proposée en 2017 sont également des algorithmes de consensus proposés pour résoudre le problème de consommation d'énergie du PoW. Le consensus PoSp oblige les mineurs à émettre une certaine quantité d'espace disque (pas de puissance de calcul) à exploiter, et PoUW transforme l'opération de hachage SHA256 dénuée de sens dans le consensus PoW en opérations difficiles et précieuses dans des scénarios pratiques, tels que le calcul de problèmes vectoriels orthogonaux, le problème 3SUM, le problème du chemin le plus court, etc.

4.4 Axe 4 : Amélioration des algorithmes de cohérence distribuée traditionnels et autres

La plupart des algorithmes de consensus distribués traditionnels ne sont pas tolérants aux pannes byzantines, il est donc difficile de les appliquer aux scénarios de blockchain (en particulier les chaînes publiques).Un algorithme Tangaroa byzantin tolérant aux pannes est proposé.Tangaroa hérite des avantages de la simplicité et de la à comprendre, tout en maintenant la sécurité, la tolérance aux pannes et la vivacité dans l'environnement de pannes byzantine Inspiré par le consensus de Tangaroa, le projet Juno sur la plate-forme Github a proposé en 2016 un algorithme The Byzantine Fault Tolerant Raft, qui a depuis évolué en un algorithme spécialisé Protocole byzantin Fault Tolerant appelé ScalableBFT, capable d'atteindre de meilleures performances que Tangaroa et Juno.

En 2015, le professeur David Mazieres, le directeur scientifique de Stellar.org, a proposé le Stellar Consensus Protocol (SCP).SCP a évolué à partir de l'accord byzantin fédéré et de l'accord Ripple, et est le premier mécanisme de consensus sécurisé avec quatre attributs clés de contrôle décentralisé, faible latence, confiance flexible et sécurité progressive. La même année, le projet Sawtooth Lake d'Hyperledger a combiné le consensus Ripple et SCP pour proposer un algorithme de consensus de vote de quorum pour faire face aux scénarios d'application qui nécessitent une finalité de transaction instantanée. En 2016, les Chinois La communauté blockchain NEO (anciennement connue sous le nom de Xiaoyi) a proposé un algorithme byzantin tolérant aux pannes amélioré dBFT, qui s'appuie sur l'idée de conception de PoS sur la base de PBFT. Les comptables sont sélectionnés en fonction de leurs droits et intérêts, puis les comptables parviennent à un consensus grâce à un algorithme byzantin tolérant aux pannes.Cet algorithme améliore le problème du manque de cohérence éventuel dans PoW et PoS, rendant la blockchain adaptée aux scénarios financiers.

En 2016, Sivio Micali, lauréat du prix Turing et professeur au MIT, a proposé un algorithme de consensus byzantin tolérant aux pannes rapide appelé AlgoRand. L'algorithme utilise la technologie de loterie cryptographique pour sélectionner les validateurs et les leaders du processus de consensus, et à travers ses protocoles BA* byzantins tolérants aux pannes. atteindre un consensus sur de nouveaux blocs. AlgoRand nécessite un calcul minimal et 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.Ce consensus vise le fait que la plupart des nuds de consensus à grande échelle dans l'environnement Internet peuvent être hors ligne et que seuls quelques nuds sont en ligne. dans le processus de consensus. La recherche prouve que l'algorithme de consensus traditionnel ne peut garantir la sécurité du consensus dans cet environnement. Avec l'algorithme de consensus dormant, tant que le nombre de nuds honnêtes en ligne dépasse le nombre de nuds défectueux, la sécurité et la sûreté peuvent être garantie robustesse.

Pour résumer, l'historique de l'évolution de l'algorithme de consensus de la blockchain est illustré à la figure 2, et le tableau 1 donne le temps proposé, les performances de tolérance aux pannes byzantines, l'algorithme de base et les systèmes ou plates-formes d'application représentatifs de chaque algorithme de consensus.

5 Résumé et perspectives

L'algorithme de consensus est l'un des éléments clés du système de blockchain et est devenu un nouveau point chaud de recherche dans le domaine de l'information actuelle.Cet article trie et analyse systématiquement les 32 algorithmes de consensus de blockchain traditionnels qui ont été proposés jusqu'à présent.Cependant, en raison de le développement rapide de la recherche sur les algorithmes de consensus au cours des dernières années, l'algorithme de consensus discuté dans cet article n'est peut-être qu'un sous-ensemble de l'algorithme de consensus réel, et il existe encore des algorithmes de consensus émergents ou de niche qui n'ont pas été discutés. phase d'essais et d'erreurs et d'optimisation.Le travail de cet article devrait fournir une inspiration et une référence utiles pour les recherches et applications ultérieures.

Sur la base de l'état actuel de la recherche, la future tendance de recherche de l'algorithme de consensus de la blockchain se concentrera principalement sur l'évaluation des performances de l'algorithme de consensus de la blockchain, l'adaptation et l'optimisation du mécanisme d'incitation à l'algorithme de consensus et l'innovation consensuelle sous l'aspect de la nouvelle structure de la blockchain.

Tout d'abord, après une période d'exploration et d'innovation, l'algorithme de consensus blockchain aura inévitablement tendance à converger vers les recherches sur l'évaluation des performances et la normalisation de nouveaux algorithmes de consensus.A l'heure actuelle, les indicateurs d'évaluation des algorithmes de consensus sont différents, mais se concentrent généralement sur l'équité et la décentralisation d'un point de vue sociologique, la consommation d'énergie, la compatibilité des coûts et des incitations des participants d'un point de vue économique, et l'évolutivité d'un point de vue informatique (débit de transaction, évolutivité des nuds, etc.), la tolérance aux pannes et la sécurité, etc. réaliser la conception de mécanismes de consensus et l'optimisation d'algorithmes pour des objectifs d'évaluation de performances spécifiques en combinaison avec des exigences spécifiques et des scénarios d'application sera l'un des points chauds de la recherche future.

Deuxièmement, l'algorithme de consensus et le mécanisme d'incitation de la blockchain sont étroitement couplés et inséparables dans leur ensemble, et en même temps, les deux ont un intérêt mutuel : l'algorithme de consensus stipule que les mineurs doivent respecter la sécurité, la cohérence et l'activité de la blockchain. Code de conduite et ordre des actions ; le mécanisme d'incitation spécifie les droits et intérêts économiques émis dans le processus de consensus pour encourager les mineurs à vérifier fidèlement et efficacement les données du registre de la blockchain, comprenant généralement un mécanisme d'émission de jetons, un mécanisme de distribution de jetons et un mécanisme de tarification des frais de transaction Etc. Du point de vue de la recherche, si le processus de fonctionnement du système blockchain est modélisé comme un processus de jeu de grand groupe de mineurs et de pools miniers, alors l'algorithme de consensus déterminera la structure et la forme de son arbre de jeu , et le mécanisme d'incitation déterminera la taille des mineurs et des pools de minage.Le revenu de chaque nud feuille du pool dans l'arborescence du jeu. Par conséquent, l'algorithme de consensus de la blockchain et le mécanisme d'incitation ont non seulement la nécessité d'une optimisation indépendante, mais plus important encore , l'optimisation conjointe du mécanisme de couplage binaire consensus-incitation et la réalisation du consensus L'"adaptation" avec les incitations est un problème clé pour résoudre les comportements stratégiques tels que les attaques par rétention de blocs et le minage égoïste qui émergent dans le système blockchain, et assurer le fonctionnement sain et stable du système blockchain.

Enfin, avec le développement de la technologie de la blockchain, en particulier l'innovation continue de la technologie de la couche de données et de la topologie sous-jacente, plusieurs structures de données émergentes de la "chaîne" de la blockchain ont vu le jour, telles que le graphe acyclique dirigé (Directed acyclic graph) et le HashGraph, etc. Ces nouvelles les structures de données étendent la portée de la technologie blockchain basée sur une chaîne unique à une "chaîne" de blocs ou un registre distribué basé sur une structure graphique. Par exemple, il convient aux scénarios de paiement IoT La monnaie numérique IOTA adopte une topologie DAG appelée "Tangle" . Son processus de consensus est basé sur des transactions (plutôt que sur des blocs), et chaque transaction cite la légitimité des deux autres transactions pour former un réseau DAG. Gossip of gossip protocol et vote virtuel, avec transaction comme granularité, pour parvenir à un consensus byzantin juste et rapide tolérant aux pannes sur une structure DAG spécifique.Ces La nouvelle structure de topologie de blocs et son algorithme de consensus sont l'une des tendances de développement futures, et le consensus L'algorithme basé sur ces nouvelles structures de données mérite également une étude approfondie.

peinture paysanne Jinshan et « la vie d'or » dans les produits culturels et créatifs superbe expo début
Précédent
combattant aperçu du projet F-35
Prochain
Dans la « nouvelle vague » dans Bo rencontré Pudong face « vieux »
Les troupes américaines effectuent « évaluation opérationnelle commune 2019 » évaluation approfondie des concepts opérationnels multi-domaines et des capacités
Trop absurde! L'équipage fait illégale à bord de l'atterrissage « bateau »
Air bulletin et dynamique de défense antimissile
La montée de la technologie micro-puce implantée sous la peau vous prêt à mourir encore
Arian reposent sur un seul levier des mains de SpaceX
Comment entrer dans la Foire de la ville? Ciel dans la terre, ces trois installations de proximité super-pratique
« Dans » bonne chose | « ou la tête voiture du réfrigérateur, la « valeur Yen est élevé, le prix est délicat
leçon de sang! Les troupes vietnamiennes ont capturé dégroupées, tout à coup pris chef d'escouade pistolet feu sacrifice shot
« Dans le » Expo | Ricoh: à partir de la technologie d'impression 3D biologique, zone d'exposition élargie à 4 fois
Chiang jurent: Je dis des mensonges, de sortir en cas de Wu Tiger! Wu Chef de la Nouvelle Quatrième Armée Wal comment
Service en vrac F-20, parmi les « trois clubs, » comment les progrès du moteur domestique?