Protocole de consensus stellaire

Le protocole de consensus stellaire (SCP) est l’algorithme de consensus sous-jacent du réseau stellaire qui fonctionne comme une construction prouvée sûre de l’accord byzantin fédéré (FBA). Le réseau de Stellar met en œuvre de nombreux mécanismes similaires pour la tolérance aux pannes distribuée sur un réseau financier comme d’autres crypto-monnaies avec quelques variations distinctes.

Protocole de consensus stellaire

Le SCP est dérivé du concept des accords byzantins (BA) et conçu pour un réseau décentralisé et sans permission utilisant des quorums et des tranches de quorum. Comprendre le SCP nécessite un bref historique des BA et comment ils se comparent aux FBA, suivi d’une description des quorums et des tranches de quorum, du modèle de vote fédéré et enfin du système de vote de validation / abandon du protocole SCP lui-même.

Accords byzantins et accords byzantins fédérés

L’accord byzantin est Tolérance aux pannes byzantine des systèmes informatiques distribués qui leur permettent de parvenir à un consensus malgré le comportement arbitraire d’une fraction des nœuds du réseau. Le consensus BA ne fait aucune hypothèse sur le comportement des nœuds dans le système. La tolérance aux pannes byzantine pratique (pBFT) est le modèle prototypique de l’accord byzantin, et elle peut atteindre un consensus rapidement et efficacement tout en dissociant simultanément le consensus des ressources (c’est-à-dire, participation financière dans PoS ou électricité dans PoW).

Tolérance aux pannes byzantine pratique

Lire: Qu’est-ce que la tolérance aux pannes byzantine pratique?

Cependant, BA (pBFT) ne s’adapte pas bien et nécessite une surcharge de communication importante entre tous les nœuds participants. En outre, le système a besoin d’un accord unanime sur l’appartenance au réseau pour atténuer Attaques Sybil.

L’Accord byzantin fédéré a été introduit par le Livre blanc SCP et aborde explicitement les limites de la BA en favorisant un protocole de consensus qui garantit ce qui suit:

  • Contrôle décentralisé
  • Confiance flexible
  • Faible latence
  • Sécurité asymptotique

L’une des principales conséquences de FBA par rapport à BA est qu’un système FBA est ouvert aux nœuds se joignant dans un cadre sans autorisation plutôt que via une liste de membres fermée (autorisée)..

FBA conclut un accord sur les mises à jour de l’état en utilisant un fente où les dépendances de mise à jour entre les nœuds sont déduites. Les nœuds doivent s’entendre sur la mise à jour du slot à chaque tour de consensus. Cependant, puisque le système est ouvert aux nœuds rejoignant et quittant le réseau à volonté, un mécanisme de consensus de quorum basé sur la majorité ne fonctionnera pas. Au lieu de cela, le FBA du SCP emploie tranches de quorum qui sont des sous-ensembles de quorums capables de convaincre des nœuds particuliers d’un accord.

Selon le Stellar Blog:

«La principale différence entre un système d’accord byzantin et un système d’accord byzantin fédéré (FBAS) est que dans FBA, chaque nœud choisit ses propres tranches de quorum.»

Les quorums et les tranches de quorum seront abordés plus en détail ci-dessous, mais le principal à retenir ici est que les nœuds individuels peuvent indépendamment décider à quels autres nœuds (participants) ils font confiance pour obtenir des informations. Par conséquent, SCP est le premier protocole BA à donner à chaque participant une liberté maximale pour choisir à qui faire confiance.

Quorums et tranches de quorum

UNE quorum est défini comme un ensemble de nœuds nécessaires pour parvenir à un accord dans un système distribué. Lorsque les nœuds tentent de parvenir à un accord, ils communiquent entre eux (sous l’hypothèse qu’aucun message n’est contrefait – la cryptographie entre ici) et conviennent qu’une mise à jour de l’état est valide une fois qu’un seuil spécifique de nœuds en accord est atteint.

Tranches de quorum sont les sous-ensembles d’un quorum qui sont capables de convaincre des nœuds particuliers d’un accord, ce qui signifie qu’un nœud peut s’appuyer sur plusieurs ensembles de nœuds affirmant des déclarations. Un nœud peut dépendre de nombreuses tranches pour obtenir des informations, et cette confiance peut être basée sur des informations provenant de l’extérieur du système. Notamment, la confiance s’installe dans le nœud config fichier, permettant la formation dynamique de tranches de quorum et la décentralisation ultérieure.

Par exemple:

Le nœud A peut déterminer qu’il ne fait pas confiance aux banques, ce qui nécessite une autre tranche de quorum à laquelle le nœud A fait confiance pour parvenir à un accord avec les banques. Une fois qu’un accord est conclu, un quorum est formé. Le graphique ci-dessous est excellent pour mieux comprendre cet exemple. Le nœud 7 (et 8) représenterait le nœud A qui ne fait pas confiance aux banques.

Crédit d’image – David Mazieres Présentation chez Google

La BA traditionnelle exige que tous les nœuds acceptent les mêmes tranches, plutôt que de discerner des sources d’informations fiables pour eux-mêmes. En tant que tel, il n’y a aucun moyen de distinguer les tranches et les quorums, nécessitant un accès membre fermé et autorisé au réseau.

Le modèle FBA repose sur des nœuds individuels pour choisir leurs propres ensembles de tranches de quorum, permettant ainsi la formation organique et plus décentralisée de quorums reposant sur des décisions individuelles, d’où le nom «fédéré». En discutant sécurité et vivacité dans le protocole FBA, nous devons évaluer intersection du quorum et quorums disjoints.

Selon le livre blanc SCP:

«Un protocole ne peut garantir l’accord que si les tranches de quorum représentées par la fonction Q satisfont une propriété de validité que nous appelons l’intersection de quorum.»

Les quorums se croisent s’ils partagent un nœud. Les bons quorums partagent des nœuds et conduisent à des quorums qui se chevauchent. Les nœuds doivent s’assurer que leur sélection de tranches de quorum ne viole pas l’intersection de quorum et exige généralement que les nœuds sélectionnent des tranches qui sont conservatrices et conduisent à de grands quorums.

Lorsque les quorums ne se croisent pas, ils sont appelés quorums disjoints. Les quorums disjoints sont de mauvais quorums qui peuvent conduire à des déclarations contradictoires qui sapent le consensus. Pour garantir un processus de sélection de tranche approprié, les nœuds doivent équilibrer sécurité et vivacité.

Les nœuds manquent de sécurité lorsqu’ils externalisent des valeurs qui contredisent d’autres nœuds. Les nœuds manquent de vivacité lorsqu’ils sont bloqués sur le chemin de l’accord. Le modèle de vote fédéré joue un rôle essentiel dans la conclusion par les nœuds d’un accord sur une déclaration.

Vote fédéré

Le vote fédéré est la méthode par laquelle le SCP s’accorde sur les déclarations des participants. Dans l’ensemble, il existe deux ensembles de messages échangés entre les nœuds, et les deux cycles de messages peuvent être subdivisés en états d’accord de inconnu, accepté, et confirmé. Notamment, le vote dans un environnement fédéré doit permettre une adhésion ouverte, ce qui rend le processus plus compliqué qu’un système fermé.

Le processus de vote fédéré comprend 4 phases:

  1. Vote initial
  2. Acceptation
  3. Ratification
  4. Confirmation

Vote initial C’est là que les nœuds votent pour une déclaration spécifique qu’ils déclarent valide et qu’ils ne voteront pas pour des déclarations contradictoires. Cependant, cela laisse toujours ouverte la possibilité au nœud de changer son vote si suffisamment des autres nœuds participants – auxquels un nœud fait confiance – votent pour un autre message valide. Les votes à ce stade sont techniquement des votes préliminaires.

Acceptation est le stade où un nœud accepte une déclaration selon que ce nœud spécifique a accepté ou non une déclaration contradictoire ou une blocage v L’ensemble de nœuds qui sont dans des tranches de quorum avec ce nœud (intersection de quorum) accepte une instruction. Si le nœud n’a pas accepté une déclaration contradictoire ou un ensemble de nœuds v-blocking votent pour accepter une déclaration, alors la déclaration est acceptée par le nœud.

Ratification c’est là que tous les membres d’un quorum votent pour accepter une déclaration. Si c’est le cas, la déclaration est ratifiée par les nœuds. Pour en revenir au nœud A qui ne fait pas confiance aux banques, si les nœuds avec lesquels le nœud A partage une tranche de quorum en plus des autres nœuds auxquels il fait confiance votent pour accepter une déclaration, alors il est ratifié par le nœud A.

Confirmation est un accord à l’échelle du système sur une déclaration. Le système accepte une déclaration particulière une fois qu’un seuil suffisant de messages est traité sur le réseau. Les nœuds propagent les messages d’acceptation sur le réseau à partir des nœuds de leur quorum. Ces messages peuvent influencer d’autres nœuds pour qu’ils acceptent le message même s’ils avaient accepté un message initial différent. Enfin, un tour de messages de confirmation est diffusé pour confirmer le message, clôturant le tour de scrutin.

Le mécanisme de vote est compliqué, mais Stellar offre d’excellentes ressources sur la façon de le cartographier plus efficacement. Ils fournissent un “Consensus Galactique“Graphique pour une vue d’ensemble plus large ainsi qu’un article de blog utile utilisant le Exemple de midi. Pour une plongée technique approfondie, vous pouvez lire la section Vote fédéré du Papier SCP.

Le protocole de consensus stellaire

Le SCP est la mise en œuvre du protocole d’accord fédéré byzantin conçu pour minimiser les cas d’accord bloqué et pour les neutraliser par un système de vote. Le protocole SCP comprend 2 sous-protocoles principaux, le protocole de nomination et le protocole de vote.

Pour chaque créneau de consensus, le protocole de nomination produit des valeurs candidates. Finalement, chaque nœud peut générer de manière déterministe une valeur de convergence pour chaque slot. Cependant, ils ne peuvent pas savoir lorsque la convergence se produit et que les nœuds malveillants peuvent être en mesure de réinitialiser le processus de nomination.

Le protocole de vote est exécuté une fois que les nœuds conviennent que le protocole de nomination a convergé. Dans le protocole de vote, un bulletin de vote est lié à la valeur du candidat et un nœud doit s’engager ou avorter la valeur liée à ce bulletin. Pour éviter le blocage des accords, les nœuds peuvent annuler certains votes et passer à un autre. À l’inverse, les nœuds peuvent voter pour commettre un bulletin de vote, ce qui externalise la valeur associée à ce bulletin dans la case de consensus.

À un niveau élevé, la manière dont le SCP traite chaque emplacement indépendamment est similaire au consensus sur un emplacement unique en Paxos, juste avec de nombreuses instances séparées.

Il n’y a pas d’états bloqués dans le SCP avec intersection de quorum. Les nœuds encrassés – des nœuds qui dépendent fortement de mauvais nœuds – peuvent même être contournés via un mécanisme d’ensemble inutile où les bons nœuds peuvent ratifier des déclarations sans la coopération de nœuds encrassés. Les nœuds souillés ne peuvent pas non plus saper le consensus.

Le protocole de nomination et le protocole de vote contiennent tous deux des détails très complexes pour des scénarios spécifiques tels que les votes par division. Ces détails sont également disponibles dans le document SCP.

L’une des limites du SCP est qu’il ne peut garantir la sécurité que si les nœuds choisissent des tranches de quorum adéquates. En outre, les problèmes de sécurité dans les systèmes fédérés tels que les nœuds largement approuvés qui tirent parti de leurs positions pour des avantages contraires à l’éthique sont une possibilité. Par exemple, si les banques sont utilisées par une vaste gamme de nœuds, elles peuvent avoir un avantage informationnel non disponible pour les autres nœuds du réseau..

Conclusion

Dans l’ensemble, le SCP est le premier protocole de consensus dont la sécurité est prouvée qui peut fournir un contrôle décentralisé, une faible latence, une confiance flexible et une sécurité asymptotique. Différentes formes de consensus viennent toutes avec leurs compromis, mais le SCP maintient un haut niveau d’efficacité pour parvenir rapidement à un consensus dans un réseau distribué et sans permission sans sacrifier la sécurité..

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me