Stellar Consensus Protocol (SCP) : le consensus des étoiles 🚀

Stellar est un réseau blockchain open source qui permet aux développeurs de créer des applications financières. Le Stellar Consensus Protocol (SCP) est un algorithme de consensus distribué qui permet à Stellar de gérer les transactions et de maintenir la sécurité du réseau.

L'algorithme Stellar Consensus Protocol, publié en 2015, appartient aux algorithmes de type Federated Byzantine Agreement (FBA), il décrit un moyen pour un ensemble de nœud de s'entendre sur un état commun. Il est utilisé par la blockchain Stellar pour déterminer l'état de la blockchain.

Le réseau Stellar est un réseau décentralisé public, tout le monde peut participer et maintenir un ou plusieurs nœuds du réseau.

Une des caractéristiques du réseau Stellar est sa faible latence, en comparaison avec d'autres algorithmes de consensus SCP traite les transactions plus rapidement.

Concepts

Quorum

Un quorum est un ensemble de nœuds suffisant pour pouvoir arriver à un accord, une fois qu'un quorum a pris une décision concernant une transaction, il est capable de convaincre le reste du réseau de cette décision.

Quorum slice

Un quorum slice est un ensemble de nœuds suffisant pour convaincre un autre nœud de la validité d'une information. Si un nœud trouve un quorum slice à qui il fait confiance, il va accepter toutes les décisions que le quorum slice a prises.

Exemple de deux quorums, les quorums slices sont représentés par les flèches

Node Blocking sets

Un nœud peut être stoppé dans sa prise de décision par un ensemble de nœuds qui le bloquent, un blocking set est un ensemble de nœuds dans un quorum qui empêchent ce quorum de trouver un accord.
Par exemple : N'importe quelle combinaison de deux nœuds est un blocking set pour un nœud si dans un quorum de quatre nœuds trois sont requis pour convaincre ce nœud.

Fonctionnement

L'algorithme utilise un système de vote fédéré pour garantir la sécurité et la disponibilité de l'information. Le vote est dit fédéré, car il n'y a pas de nœud qui fonctionne comme une autorité centrale organisant le vote. Chaque nœud prend une décision en fonction des informations qu'il reçoit des nœuds voisins.

Lors d'un vote un nœud peut effectuer trois actions, nous avons dans l'ordre :

  • le vote
  • l'acceptation
  • la confirmation

Le vote commence par la phase de nomination où les nœuds envoient des candidats à la prochaine valeur de la blockchain. Les nœuds qui reçoivent les candidats les envoient à leurs voisins.

La phase de vote commence lorsque le nœud a reçu des candidats de la part de suffisamment de nœuds. Il envoie alors un vote pour un candidat. Les nœuds qui reçoivent le vote le transmettent à leurs voisins.

Concernant une proposition A un nœud peut avoir quatre états :

  • le nÅ“ud ne sait rien de la proposition A (aucun de ses voisins ne lui a donné d'information sur A)
  • le nÅ“ud vote pour A, il considère A comme valide, mais ne sait pas si c'est la bonne décision
  • le nÅ“ud accepte A, car suffisamment de nÅ“uds sont d'accord avec A, mais il n'est toujours pas sûr de sa décision.
  • le nÅ“ud confirme A, même si tout le quorum auquel il appartient n'a pas encore accepté A, il est sûr que A est la bonne décision.

Pour passer du vote pour une proposition à la confirmation de cette même proposition, il faut qu'au moins une des deux conditions suivantes soient remplies :

  • que tous les nÅ“uds du quorum slice aient votés ou acceptés la proposition
  • que le blocking set ait accepté la proposition

Pour passer de l'acceptation à la confirmation, il faut que tous les nœuds du quorum slice aient accepté la proposition A.

Conclusion

Utiliser un registre utilisant l'accord Byzantin fédéré (FBA) permet de garantir la sécurité et la cohérence de l'information. Le tout de manière extrêmement rapide puisque n'ayant pas besoin de l'accord de tous les nœuds du réseau, mais seulement d'une partie d'entre eux via la notion de quorum.

Une partie du quorum (le quorum slice) est capable de convaincre un autre nœud de la validité d'une information, tandis qu'un quorum peut ensuite convaincre tout le réseau de la validité de cette information.

Sources

H2
H3
H4
Upload from PC
Video gallery
3 columns
2 columns
1 column
11 Comments