BitShares French ConneXion  

Delegated Proof-of-Stake Consensus


Un protocole de consensus robuste et flexible

Le Delegated Proof of Stake (DPOS) est le modèle de consensus le plus rapide, flexible et décentralisé disponible à l’heure actuelle. Le DPOS maximise le pouvoir de vote des actionnaires pour résoudre les problèmes de consensus de manière équitable et démocratique. Tous les paramètres du réseau, depuis les frais de réseau jusqu’à l'intervalle de temps entre les blocs ainsi que la taille des transactions, tout peut être modifié par les Délégués. La sélection déterministe des producteurs de blocs permet de confirmer les transactions en moyenne avec un temps d’attente de 1 seconde. Peut-être le plus important, le protocole de consensus est conçu de façon à protéger tous les participants contre d’éventuelles ingérences législatives non désirées.


BitShares est d'abord et avant tout une base de données distribuée à l'échelle mondiale qui est utilisé comme un grand livre de compte pour suivre la propriété des actifs numériques. Toutes les mises à jour de comptabilité doivent être validées et appliquées dans le bon ordre afin de permettre à la base de données de rester cohérente et universellement admise. Parvenir à un consensus sur l'ordre dans lequel les mises à jour doivent être appliquées à la base de données est le but du Delegated Proof of Stake (DPOS).


Vue d’ensemble

Les questions auxquelles un processus de consensus doit répondre incluent, mais ne sont pas limités à:

1. Qui devrait produire le prochain bloc de mises à jour à être appliquer à la base de données?
2. Quand doit être produit le prochain bloc?
3. Quelles transactions doivent être inclues dans le bloc?
4. Comment sont appliqués les changements au protocole?
5. Comment les historiques de transactions conflictuels doivent être résolus?

L'objectif est de trouver les réponses à ces questions qui assurent que le processus de consensus est robuste contre un attaquant qui souhaite prendre le contrôle du réseau. Dans la pratique, la prise de contrôle signifie l'acquisition de la capacité à censurer unilatéralement les transactions. Le processus doit également être robuste contre un attaquant souhaitant profiter d'une incohérence temporaire dans l'état actuel de la base de données distribuée.


La production des blocs par les Witness

Le terme Witness (Témoin) a été choisi parce qu'il est un mot légalement neutre qui n’est pas soumis à réglementation. Les contrats traditionnels ont souvent une place prévue pour la signature des témoins. Pour les contrats extrêmement importants, un notaire public est parfois utilisé. Ni les témoins ni les notaires ne font parties du contrat, mais ils jouent un rôle très important qui est de certifier que le contrat a été signé par les personnes spécifiées à l'heure indiquée. Dans BitShares, les Witness jouent un rôle similaire de validation des signatures et d'horodatage des transactions en les incluant dans des blocs.

Sous DPOS, les actionnaires peuvent élire un certain nombre de Witness pour générer des blocs. Un bloc est un groupe de transactions qui mettent à jour l'état de la base de données. Chaque compte a droit à un vote par BTS par Witness, un processus connu sous le nom de vote d'approbation. Les N premiers Witness avec le plus d’approbation sont sélectionnés. Le nombre (N) de Witness est la décentralisation jugée nécessaire par au moins 50% des actionnaires ayant voté. Lorsque les intervenants expriment le nombre de Witness qu’ils désirent, ils doivent aussi voter pour au moins ce nombre de Witness. Un actionnaire ne peut pas voter pour une plus grande décentralisation des Witness s’il ne vote pas pour plus de Witness.

Chaque fois que les Witness produisent un bloc, ils sont payés pour leurs services. Leur taux de rémunération est fixé par les actionnaires via leurs Délégués élus (à discuter plus tard). Si un Witness ne parvient pas à produire un bloc, alors il n’est pas payé, et peut être voté hors de son poste dans l'avenir.

La liste des Witness actifs est mis à jour à chaque intervalle d'entretien (1 jour), lorsque les votes sont comptés. Les Witness sont ensuite mélangés et chaque Witness se voit attribuer un tour pour produire un bloc à un rythme fixe d'un bloc toutes les 2 secondes. Après que tous les Witness aient eu leur tour, ils sont à nouveau mélangés. Si un Witness ne produit pas de bloc dans son intervalle de temps, alors cet intervalle de temps est ignoré, et le prochain Witness produit le bloc suivant.

Chaque utilisateur peut surveiller la santé du réseau en observant le taux de participation des Witness. Historiquement, BitShares a maintenu la participation des Witness à 99%. A tout moment, si la participation des Witness descend en dessous d’un certain seuil, les utilisateurs du réseau peuvent allouer plus de temps à la confirmation des transactions, et être beaucoup plus attentif à la connectivité du réseau. Cette propriété donne à BitShares l'avantage unique d'être en mesure d'alerter ses utilisateurs des problèmes potentiels moins de 1 minute après l’apparition de l’anomalie.


Changement des paramètres par les Délégués

Les Délégués (Delegates) sont élus d'une manière similaire aux Witness. Un Délégué devient un co-signataire sur un compte spécial qui a le privilège de proposer des modifications aux paramètres du réseau. Ce compte est connu comme le compte de la Genèse (Genesis account). Ces paramètres incluent les frais de transaction, la taille des blocs, la rémunération des Witness ainsi que les intervalles de temps entre les blocs. Après que la majorité des Délégués ait approuvé une proposition de modification, les actionnaires se voient accordés une période de réflexion de deux semaines au cours de laquelle ils peuvent voter contre certains Délégués afin de nullifier les changements proposés.

Ce modèle a été choisi pour s’assurer que les Délégués n’ont aucun pouvoir direct et que, techniquement, toutes les modifications des paramètres du réseau sont finalement approuvées par les actionnaires. Ceci est fait dans le but de protéger les Délégués contre d’éventuelle réglementations qui peuvent s’appliquer aux gestionnaires ou administrateurs de crypto-monnaies. Sous DPOS, nous pouvons vraiment dire que l'autorité administrative est sous le contrôle des utilisateurs, plutôt que sous le contrôle des Délégués ou des Witness.

Contrairement aux Witness, les postes de Délégués ne sont pas rémuneré. Quoi qu’il en soit, ces paramètres ne devraient pas changer souvent.

Le compte Genesis peut techniquement exécuter les mêmes actions que tous les autres comptes, ce qui signifie qu’il est possible d’envoyer des fonds au compte Genesis ainsi que de se servir du compte Genesis comme tiers de confiance. Le compte Genesis peut aussi servir à produire de nouveaux actifs. Il n’y a pas de limite au nombre d’application possible dans le cadre de tâches demandant un haut niveau de confiance et d’accomptabilité entre Délégués et actionnaires.


Changement des règles (Hard Forks)

De temps à autres, il est nécessaire d’améliorer le réseau afin d’y ajouter de nouvelles fonctionnailités. Sous DPOS, tout changement doit être déclenché par un vote d'approbation des actionnaires. Bien qu’il soit possible pour les les Witness de comploter et de changer leur logiciel de façon unilatérale, il n’est pas dans leur intérêt de le faire. Les Witness sont élus sur la base de leur engagement à rester neutre face aux pratiques de la blockchain. Le fait de rester neutre protège les Witness contre les allégations visant à les faire endosser le rôle d’administrateur, de manageur, de propriétaire ou d’opérateur du réseau. Un Witness est, au mieux, un employé des actionnaires.

Les développeurs peuvent mettre en oeuvre tout changement qu’ils jugent appropriés pour autant que ces changements soit préalablement soumis à un vote d’approbation par les actionnaires. Cette politique protège les développeurs autant que les actionnaires en assurant qu’aucun individu n’a un contrôle unilatéral sur le développement du réseau.

Le seuil à dépasser pour changer les règles est le même que le seuil pour remplacer 51% des Witness élus. Plus il y a d’actionnaires qui participent à l’éléction des Witness, plus il est difficile de changer les règles.

En fin de compte, le changement des règles dépend du software utilisé par tout le réseau, aucun protocole au niveau de la blockchain ne peut forcer l’application des changements de règles. Cela signifie que les Hard Forks qui ont pour but de réparer un bug du software peuvent être décidées et appliquées sans nécéssiter l’approbation préalable des actionnaires, pour autant que ces changements ne modifie pas le comportement universellement attendu du réseau.

En pratique, seuls les changements éminement nécéssaire à la sécurité du réseau devraient être appliqué de cette manière. Les développeurs et les Witness devrait attendre l’approbation des actionnaires pour tout changement, aussi mineur soit-il.


Attaque par double dépense

Une attaque par double dépense peut se produire à tout moment où une réorganisation de la blockchain exclu une transaction qui était précédement inclue. Cela signifie que les Witness ont eu une coupure des communications dûe a des perturbations dans l’infrastructure d’internet. Sous DPOS, la probabilité qu’une telle coupure puissent permettre une attaque par double dépense est très faible.

Le réseau est capable de surveiller sa propre activité et peut instantanément détecter toute perte relative à la communication qui se traduit par des Witness incapable de produire leur bloc dans les temps. Quand cela survient, il peut être nécéssaire d’attendre qu’au moins la moitier des Witness aient confirmé leurs transactions, cela peut prendre de 1 à 2 minutes.


Transactions avec Proof of Stake

Toute transaction sur le réseau peut éventuellement inclure le Hash d’un bloc récent. Si c’est le cas, le signataire de la transaction peut être sûr que cette transaction ne sera pas inclue dans une blockchain ne contenant pas le bloc à l’origine du Hash. Un effet secondaire de ce processus est que, sur le long terme, les actionnaires finissent par être les garant de l’intégrité de l’historique des transactions.


Réorganisations de la blockchain

Puisque tous les Witness sont élus publiquement, fortement surveillés, et qu’ils n’ont qu’une plage horaire limitées pendant laquelle ils peuvent produire des blocs, il n’y a que dans des cas très rare que deux blockchains concurrentes peuvent exister simultanément. De temps à autre, les latences du réseau peuvent empêcher un Witness de recevoir le bloc qui lui est attribué dans les temps. Si cela arrive, le Witness suivant résoudra le problème en continuant de construire l’historique des transactions à partir du bloc raté. Avec une participation des Witness de 99%, une transaction a 99% de chance d’être confirmée après un seul Witness.

Bien que le système soit robuste en cas de réorganisation naturelle de la blockchain, il reste une possibilité qu’il y ait un bug dans le software, une interruption de la connexion réseau ou encore un Witness incompétent ou malveillant permettant l’existence simultannée de plusieurs blocs de transactions concurrents, séparant l’historique de transaction en 2 blockchains concurrente. Le software séléctionne toujours la blockchain ayant la plus grande participation de Witness. Un Witness opérant seul ne pourra produire qu’un bloc par round et sera toujours à un niveau de participation inférieur à la majorité. Il n’y a rien qu’un Witness (ou un groupe minoritaire de Witness) puisse faire pour obtenir un plus grand taux de participation. Le taux de participation est calculé en comparant le nombre prévu de bloc produit avec le nombre réel de bloc produit.


Un maximum de Décentralisation

Sous DPOS, chaque actionnaires a une influence directement proportionnelle à son nombre de BTS, rien ne peut empêcher un actionnaire de recourir à cette influence. Tous les autres processus de consensus actuellement sur le marché empêche la majorité des actionnaires de participer. Il y existe de nombreuse façons d'exclure les actionnaires des postes décisifs. Certains utilise des systèmes qui nécéssite une invitation. D’autres font en sorte que cela coûte plus que ça ne rapporte de participer. Il en existe aussi où tout le monde peut techniquement participer mais où le contrôle est en fait dans les mains des quelques plus gros producteurs de blocs. Seul DPOS assure que la production des blocs est équitablement distribuée au plus grand nombre de gens possible et permet d’avoir un modèle économiquement viable d’influencer qui sont sont ces gens.