Toutes les blockchains sont fondamentalement des rĂ©seaux dĂ©terministes actualisĂ©s par des transactions. Le consensus est le processus qui permet de statuer sur un ordre dĂ©terminĂ© des transactions et filtrer les transactions invalides. Il existe de nombreux algorithmes qui peuvent produire des ordres de transactions Ă©quivalentes. Cependant, la DPoS (Deleguate Proof of Stake) ou la preuve dâenjeu dĂ©lĂ©guĂ©e sâest montrĂ©e particuliĂšrement robuste, sĂ©curisĂ©e, et efficiente ces derniĂšres annĂ©es Ă travers son usage dans de multiples blockchains.
Une autogestion de la communauté
Comme pour tous les autres consensus, la plus grande menace que peuvent prĂ©senter un tiers malveillant est la censure. Tous les blocs doivent ĂȘtre validĂ©s en accord avec un ordre logique dĂ©terminĂ© par lâalgorithme.
Le consensus DPoS est divisĂ© en deux parties : choisir un groupe de producteurs de blocs et programmer leur production dans le temps. Le processus dâĂ©lection par vote permet dâassurer que les parties prenantes (dĂ©tenteurs) de la monnaie soient en dĂ©finitive au pouvoir car ce sont eux qui seront en perte si le rĂ©seau perd en fluiditĂ© et en efficacitĂ©. En effet les validateurs sont choisis par vote au prorata du nombre de jetons que chaque membre dĂ©tient. Ainsi si jâai 1 jeton jâaurais par exemple 10 votes, lâutilisateur ayant 10 jetons en auraient 100. La maniĂšre dont les validateurs sont Ă©lus Ă un petit impact sur comment le consensus performe chaque minute. On sâintĂ©resse ici Ă comment le consensus est atteint sur le rĂ©seau aprĂšs que les producteurs de blocs aient Ă©tĂ© dĂ©terminĂ©s. Lors de la production de nouveaux blocs on parle de forgeage.
Par le biais dâexemples, nous allons dĂ©terminer comment la DPoS fonctionne sous plusieurs conformations du rĂ©seau. Ces exemples servent Ă illustrer en quoi la DPoS est robuste et difficile Ă briser malgrĂ© les forks qui peuvent survenir.
Opération normale
Pendant un fonctionnement normal, les producteurs de blocs produisent tour Ă tour un bloc toutes les 3 secondes. ConsidĂ©rant quâaucun ne rate son tour, ils vont ainsi fournir la chaĂźne la plus longue possible. Si les producteurs Ă©chouent Ă produire un bloc durant lâintervalle de temps qui leur est consacrĂ©, tout autre bloc fournit en dehors de cet intervalle sera invalidĂ©.
Fork minoritaire
JusquâĂ 1/3 des nĆuds peuvent ĂȘtre malicieux ou dysfonctionnĂ©s crĂ©ant ainsi un fork (bifurcation) minoritaire. Dans ce cas, le fork minoritaire produira seulement un bloc toutes les 9 secondes alors que le fork majoritaire produira 2 blocs toutes les 9 secondes. Une fois de plus, les 2/3 des nĆuds, Ă savoir les nĆuds honnĂȘtes, aura toujours la chaĂźne la plus longue donc la chaine majoritaire.
Double production par des chaines minoritaires
La minoritĂ© peut tenter de produire un nombre illimitĂ© de forks, mais tous ces forks seront plus courts que la chaine majoritaire car la minoritĂ© est limitĂ© dans lâagrandissement de la chaine minoritaire.
Fragmentation du réseau
Il est tout Ă fait possible que le rĂ©seau soit fragmentĂ©/dĂ©connectĂ© et dans ce cas, aucun fork nâaura une majoritĂ© de producteurs de blocs (supĂ©rieur Ă 2 personnes dans cet exemple). Dans ce cas, la chaine la plus longue sera alors la chaine de la plus grande minoritĂ©. Quand la connexion au rĂ©seau est restaurĂ©e, les plus petites minoritĂ©s vont naturellement adopter la chaine la plus longue et lâambiguĂŻtĂ© du consensus sera levĂ©e.
Il est possible dans ce cas quâil y ait 3 forks avec des chaĂźnes les plus longues de tailles similaires. Dans ce cas, les producteurs du troisiĂšme (plus petit fork) vont briser lâindĂ©cision quand ils se reconnecteront au rĂ©seau. Il y a un nombre impair de producteurs de blocs donc il est impossible de maintenir durablement une indĂ©cision (il nây aura jamais de 50/50).
Plus tard nous verrons que le shuffling (brassage) des producteurs de bloc qui permet de rendre pseudo-alĂ©atoire lâordre de passage des producteurs assure le tie breaking mĂȘme si deux forks disposent du mĂȘme nombre de producteurs de blocs. En effet, les forks grandiront avec des vitesses diffĂ©rentes permettant ainsi Ă un fork de prendre le dessus sur lâautre.
Le dernier bloc irréversible
Dans le cadre dâune fragmentation / dĂ©connexion du rĂ©seau, il est possible pour de multiples forks de continuer Ă grandir pour une pĂ©riode de temps prolongĂ©. Dans la durĂ©e, la chaĂźne la plus longue gagnera, mais les observateurs requiĂšrent un moyen de savoir avec certitude quand un bloc fait absolument parti de la chaĂźne grandissant le plus vite. Cela peut ĂȘtre dĂ©terminĂ© par confirmation de 2/3 + 1 des producteurs de bloc.
Dans le diagramme ci-dessous, le bloc B a Ă©tĂ© confirmĂ© par C et par A qui reprĂ©sente 2/3+1 des producteurs, nous pouvons ainsi en dĂ©duire quâaucune autre chaine ne seraient possiblement plus longue si au moins 2/3 des producteurs sont honnĂȘtes.
Cette rĂšgle est similaire Ă la rĂšgle des 6 blocs de confirmation pour le Bitcoin (BTC). Des individus intelligents peuvent provoquer une sĂ©quence dâĂ©vĂ©nements ou deux nĆuds auraient deux blocs irrĂ©versibles terminaux diffĂ©rents. Ce cas de figure nĂ©cessite que lâattaquant dispose dâun contrĂŽle total du dĂ©lai de communication entre nĆuds et dâutiliser ce contrĂŽle pas une fois, mais avec deux minutes de diffĂ©rences. Les chances quâune attaque se produise sur un rĂ©seau de DPoS sont proches de 0 et les consĂ©quences Ă©conomiques insignifiantes.
Absence de Quorum chez les producteurs
Dans le cas rare oĂč le quorum (nombre de producteurs exigĂ©s) de producteurs ne serait pas satisfait, il est possible pour la minoritĂ© de continuer Ă produire des blocs. Dans ces blocs, les partis prenants peuvent inclure des transactions pour changer leurs votes. Ces votes peuvent dĂ©signer un nouveau set de producteurs et restaurer la participation Ă la production de blocs Ă 100%. Quand cela arrive, la chaĂźne de la minoritĂ© peut Ă©ventuellement prendre le dessus sur toutes les autres chaĂźnes opĂ©rant avec moins de 100% de participation.
Durant tout ce processus, tous les observateurs auront connaissance que lâĂ©tat du rĂ©seau est en train dâĂ©voluer avant quâune nouvelle chaĂźne Ă©merge avec 67% de participation. Ceux qui choisissent dâeffectuer une transaction sous ces conditions, et ainsi changer leurs votes, encourent un risque similaire Ă ceux qui acceptent avec moins de 6 confirmations. Ils agissent ainsi en connaissance de cause et savent quâil demeure une faible probabilitĂ© que le consensus puisse ultimement opter pour un fork diffĂ©rent. En pratique, cette situation est beaucoup plus sĂ©curisante que dâaccepter des blocs avec moins de 3 Bitcoin confirmations.
Corruption de la majorité des producteurs
Si la majoritĂ© des producteurs de blocs deviennent corrompus, ils peuvent ainsi produire un nombre illimitĂ© de forks. Chacun de ces forks sembleront progresser avec la confirmation de la majoritĂ© 2/3. Dans ce cas, lâalgorithme du dernier bloc inaltĂ©rable reviendra Ă lâalgorithme de la chaine la plus longue. La chaine la plus longue sera celle approuvĂ© par la majoritĂ© la plus large qui sera dĂ©cidĂ© par la minoritĂ© des nĆuds honnĂȘtes restants.
Ce genre de comportement ne pourrait pas durer car les stakeholders remplaceraient rapidement leur vote vers ces producteurs honnĂȘtes.
TaPoS (Transaction as Proof of Stake), transaction Ă la place de la preuve dâenjeu
Quand des utilisateurs signent une transaction, ils le font avec une certaine supposition de lâĂ©tat de la blockchain. Cette hypothĂšse est basĂ©e Ă partir de leur perception des blocs rĂ©cents. Si le consensus de la chaine la plus longue change la chaĂźne majoritaire, cela pourrait Ă©ventuellement invalider lâhypothĂšse faite par le signeur lorsquâil a consenti Ă la transaction.
Avec le TaPoS, toutes les transactions incluent un hash dâun block rĂ©cent et sont ainsi considĂ©rĂ©es comme invalide si ce block nâexiste pas dans lâhistorique de la chaine. Tous ceux qui signent une transaction sur un fork orphelin verront leur transaction invalide et incapable de migrer sur la chaĂźne principale.
Un effet secondaire de ce processus est la sĂ©curitĂ© avec les attaques longues distances qui tentent de gĂ©nĂ©rer une chaĂźne alternative. Les stakeholders en cause confirment directement la blockchain Ă chaque fois quâils rĂ©alisent une transaction. Au fil du temps tous les blocs sont confirmĂ©s par les stakeholders et ceci est quelque chose qui ne peut ĂȘtre reproduit dans une chaine forgĂ©e.
Le brassage de producteurs déterminé
Dans tous les exemples que nous avons illustrĂ©s, nous avons montrĂ© une planification alĂ©atoire des producteurs de blocs. En rĂ©alitĂ©, lâordre de production est brassĂ© tous les N blocs oĂč N est le nombre de producteurs de blocs. Cette randomisation assure que le producteur B nâignore pas toujours le producteur A et quâĂ chaque instant il nây ait pas de multiples forks avec le mĂȘme nombre de producteurs et ainsi permettre la prise de dĂ©cision par tie breaking.
La DPoS, la solution parfaite ?
La DPoS est robuste sous toutes les formes de perturbations du rĂ©seau et dâautant plus sĂ©curisĂ© face aux tentatives de corruption dâune large minoritĂ© des producteurs. Contrairement Ă des consensus compĂ©titifs, DPoS peut continuer Ă fonctionner malgrĂ© quâune majoritĂ© de producteurs Ă©chouent. Durant ce processus, la communautĂ© peut voter pour remplacer les producteurs dĂ©faillants jusquâĂ retrouver une participation de 100%. Ainsi, la DPoS est trĂšs robuste face Ă lâĂ©chec.
Finalement, DPoS obtient une sĂ©curitĂ© grĂące Ă lâalgorithme choisit pour dĂ©terminer les producteurs de blocs et vĂ©rifier que les nĆuds sont de hautes qualitĂ©s et des personnes uniques. En utilisant le processus dâapprobation par vote, le rĂ©seau assure que mĂȘme quelquâun disposant de 50% dans la quantitĂ© actuelle du pouvoir de vote est incapable de choisir un producteur unique par lui-mĂȘme. DPoS est conçue pour optimiser la performance de la condition nominale des 100% de participation des nĆuds honnĂȘtes avec une bonne connexion. Cela concĂšde Ă la DPoS le pouvoir de confirmer les transactions avec 99,9% de certitude en une moyenne de 1,5 secondes. Tant dâarguments qui font de la DPoS, un des consensus les plus performants de lâĂ©cosystĂšme blockchain.
The post La DPoS le consensus qui semble mettre tous le monde dâaccord appeared first on TheCoinTribune.