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

in ULille blockchain2 years ago

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

Sort:  

Merci pour cette lecture extremement intéressante et facilement compréhensible 👍 Maintenant je sais pourquoi j'ai toujours bien aimé le Stellar (en plus de ses frais plutot intéressant pour effectuer des transactions)

Vive les blockchains sans frais, vive HIVE :)

Vote tardif, on avait pas vu votre article.
Merci à @mintrawa de l'avoir repéré ;)

!PGM
!PIZZA


ItharaGaian
Principauté du Bastion (@hive-143869 Community)
Curation Manuelle

BlasonPrincipautéBastionTransparentSmall.png

Sent 0.1 PGM - 0.1 LVL- 1 STARBITS - 0.05 DEC - 15 SBT - 0.1 THG - tokens to @itharagaian

remaining commands 3

BUY AND STAKE THE PGM TO SEND A LOT OF TOKENS!

The tokens that the command sends are: 0.1 PGM-0.1 LVL-0.1 THGAMING-0.05 DEC-15 SBT-1 STARBITS-[0.00000001 BTC (SWAP.BTC) only if you have 2500 PGM in stake or more ]

5000 PGM IN STAKE = 2x rewards!

image.png
Discord image.png

Support the curation account @ pgm-curator with a delegation 10 HP - 50 HP - 100 HP - 500 HP - 1000 HP

Get potential votes from @ pgm-curator by paying in PGM, here is a guide

I'm a bot, if you want a hand ask @ zottone444


🍕 PIZZA !

I gifted $PIZZA slices here:
@itharagaian(2/5) tipped @benjil (x1)

Join us in Discord!



✒️ Pour vous encourager dans vos études, nous vous offrons 💝50 points-fr💝, un reblogue, un mini-upvote
🎁 Recevez en plus un bonus de 3 points-fr pour votre sélection et ce pourboire : !LUV !GIF algorithm
💰 Plus de Tokens de 2eme couches vous attendent dans les posts de sélections et de récompenses

Cumulez facilement les points-fr
Récompense Multi-engagements des Francophones



Thanks for your contribution to the STEMsocial community. Feel free to join us on discord to get to know the rest of us!

Please consider delegating to the @stemsocial account (85% of the curation rewards are returned).

You may also include @stemsocial as a beneficiary of the rewards of this post to get a stronger support. 
 

Congratulations @benjil! You have completed the following achievement on the Hive blockchain And have been rewarded with New badge(s)

You distributed more than 10 upvotes.
Your next target is to reach 50 upvotes.
You received more than 300 upvotes.
Your next target is to reach 400 upvotes.
You received more than 10 HP as payout for your posts, comments and curation.
Your next payout target is 50 HP.
The unit is Hive Power equivalent because post and comment rewards can be split into HP and HBD

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Check out the last post from @hivebuzz:

HiveBuzz World Cup Contest - Recap of Day 9
Hive Power Up Day - December 1st 2022
HiveBuzz World Cup Contest - Check your ranking
Support the HiveBuzz project. Vote for our proposal!

Bonjour !

En tant que membre francophone de Hive, vous avez été ajouté à l'auto-vote de @laruche.

La puissance de vote de base est de 25%, deux votes par tranche de 24h et 7 max par semaine.
Vous pouvez augmenter la puissance de vote en déléguant à la Ruche si vous le souhaitez. Voici notre serveur Discord si vous avez des questions ou juste pour discuter avec d'autres francophones de Hive !

https://discord.gg/46gdrud

Bienvenue dans la Ruche !