Le processus d’amendement répond à une fonctionnalité phare de Tezos. Il permet à tous les participants, d’inscrire formellement leurs propositions de modifications au protocole. Les propositions seront alors soumises au vote pour être sélectionnées, puis testées dans un environnement spécifique, avant d’être activées. De cette manière, le consensus peut s’exprimer et choisir les évolutions du protocole.

Cette fonctionnalité a pour objectif d’améliorer la gouvernance du protocole, au sein d’un marché où les modifications majeures amènent à un Fork. Ainsi la peur du Fork, ou même d’une prise de décision centralisée du côté des développeurs, inhibent généralement l’évolution nécessaire d’un protocole. Toute tentative d’innovation du protocole est alors contestée et rejetée. Dès lors, en l’absence de processus formel, la coordination d’un système décentralisé est difficilement possible.

C’est pourquoi, dans cet article, nous allons détailler concrètement le processus d’amendement, qui donne à Tezos sa qualité de registre décentralisé auto-modifiable.

Pour comprendre cet article, vous devez connaître les principales notions de Tezos, à savoir le Baking et les Cycles. Une synthèse du processus est présente à la fin de l’article.

Cet article est une traduction adaptée pour Tezos France. Vous pourrez retrouver l’article original, rédigé par Jacob Arluck ici.


Comprendre le processus d’amendement

Le processus d’amendement peut-être divisé en 4 phases :

  • La phase de propositions
  • La phase d’exploration des votes
  • La phase de tests des propositions
  • La phase de promotion des votes

Chacune de ces phases dure au moins 8 Cycles. C’est-à-dire 32 768 blocks, soit environ 22 jours et 18 heures. Correspondant à une durée totale de 3 mois entre la proposition et son activation au sein du protocole.

En cas d’échec lors du passage d’une phase à la phase suivante, le réseau retourne directement à la phase de propositions. Autrement dit, ne pas passer à la phase suivante redémarre tout le processus d’amendement depuis le début. C’est d’ailleurs ce qu’il s’est passé depuis que le Genesis block a été publié par la communauté en Juin. En effet, en l’absence de propositions, une nouvelle phase de propositions a redémarré tous les 8 cycles depuis le block 1.

Comment ça fonctionne ?

1 – La phase de propositions

Le processus d’amendement commence avec la phase de propositions. Durant cette phase, les Bakers peuvent soumettre leurs propositions « on-chain ». Les propositions prennent 3 paramètres :

  • une « source » : correspond au Baker soumettant l’opération de propositions.
  • une « période » : correspond à la période spécifique pendant laquelle la proposition a été soumise
  • un « hash de propositions » : est le hash des fichiers sources .ml/.mli concaténés

Les Bakers peuvent soumettre jusqu’à 20 propositions au cours de chaque phase de propositions. Lorsqu’un Baker soumet un proposition, il soumet aussi un vote pour cette propositions. Ce vote équivaut au nombre de Rolls présent dans son solde au début de la phase de propositions.

Il est possible de suivre les nouvelles propositions sur les explorateurs blockchain comme Tzscan.io.

Les autres Bakers peuvent ensuite voter sur les propositions en soumettant leurs propres opérations. Comme décrit dans le White Paper, le vote pendant la phase de propositions se fait par vote d’approbation. Cela signifie que chaque Baker peut voter une fois sur un maximum de 20 propositions.

A la fin de la phase de propositions, le réseau comptabilise les votes. La proposition la plus votée passe à la phase d’exploration. Si aucune proposition n’a été soumise, ou s’il existe un lien entre les propositions, une nouvelle phase de propositions commence.

2 – La phase d’exploration des votes

Pendant la phase d’exploration des votes (aussi connue sous le nom de « tests des votes » dans le protocole actuel), les Bakers peuvent voter sur la proposition la mieux classée pendant la phase de propositions.

Le vote s’effectue « on-chain » via l’opération du bulletin de votes. Ce bulletin prend les paramètres suivants :

  • Source : correspond au Baker
  • Période : la période spécifique pendant laquelle la proposition a été soumise
  • Proposition : correspond à la proposition
  • Bulletin : spécifie le vote du Baker, à savoir : « Oui« , « Non » ou « S’abstenir« 

Comme pour la phase de propositions, le vote d’un Baker est basé sur le nombre de Rolls présent dans son solde au début de la phase d’exploration des votes. Chaque Baker ne peut envoyer un bulletin de vote qu’une seule fois pendant la période de vote.

À la fin des 8 cycles, le réseau comptabilise les votes. Si la participation aux votes (le total de « Oui« , « Non » et « S’abstenir« )  atteint le quorum (explications ci-dessous) et qu’une supermajorité de 80% de Bakers non abstentionnistes l’approuvent, la proposition passe à la phase de tests.

Si le quorum ou la supermajorité de 80% ne sont pas atteints, le processus d’amendement retourne au début de la phase de propositions.

Une différence est à noter par rapport à la phase de proposition : Après la phase d’exploration des votes, le quorum est mis à jour de la manière suivante, où Q_t est le quorum précédent et q_t la participation totale :

Cela ajuste le quorum pour correspondre à une moyenne mobile exponentielle du taux de participation passé. Dans le Genesis block, le quorum a débuté à 80% et restera à 80% jusqu’à la fin de la première période de vote d’exploration.

3 – La phase de tests des propositions

Si la proposition est approuvée par une supermajorité durant la phase d’exploration des votes, la phase de tests (8 cycles) commence avec la création d’un Testnet qui fonctionne en parallèle du Mainnet Tezos. Ce Testnet fonctionnera 48h avant de se fermer. Cette constante de 48h a été définie de façon très prudente, dans le but de réduire le risque que le réseau perçoit le Testnet comme la chaîne principale.

Comme décrit dans le White Paper de 2014, les propositions ont accès à une petite bibliothèque standard, mais sont en mode bac à sable et ne peuvent effectuer aucun appel système.

L’objectif de cette phase de tests est d’évaluer si une proposition est un amendement valable au protocole.

Le Testnet, garantie que la mise à niveau ne corrompe pas le contexte et que, si la mise à niveau était adoptée, le réseau continuerait à effectuer des « transitions d’état valides ». Cependant, 48h de test sont trop courtes pour déterminer si une proposition constituerait un amendement valable et sûr. En particulier, s’il peut rester actif plus de 48h et qu’il ne contient pas de failles de sécurité. En conséquence, un réseau de test, correspondant à la proposition de modification, ne fonctionnera probablement pas en chaîne pendant les quelques 7,3 cycles restants de période de test. Après 48h, ce Testnet fonctionnera « Off-chain ». Ce qui permet aux parties prenantes d’évaluer et de discuter de l’amendement afin de mieux connaître ses propriétés.

4 – La phase de promotion des votes

La phase de promotion commence à la fin de la phase de tests. Pendant cette période, le réseau décide d’adopter ou non l’amendement, selon son comportement pendant la période de tests et les discussions off-chain.

Comme pour la période d’exploration des votes, les Bakers soumettent leurs votes en utilisant le bulletin de votes. Leurs votes sont pondérés proportionnellement au nombre de Rolls présents dans leur solde au début de la période de promotion. Enfin, chaque Baker ne peut envoyer qu’un seul bulletin de vote au cours de cette période.

A la fin de la phase de promotion, le réseau comptabilise le nombre de votes. Si le taux de participation atteint le quorum minimum et que 80% des Bakers non-abstentionnistes votent « Oui« , alors la proposition est activée en tant que nouveau réseau principal. Le Testnet devient alors le Mainnet.

Sinon, le processus retourne une fois de plus à la phase de proposition. Le quorum minimum est mis à jour en fonction du taux de participation, en utilisant la même formule que celle utilisée à la fin de la phase d’exploration des votes, tel que :

Une fois que l’amendement au protocole est activé, le processus d’amendement recommence par une nouvelle phase de propositions.

Conclusion

En synthèse, voici le déroulement du processus d’amendement au sein de Tezos :

A noter :

  • Le quorum est réajustée à la fin de chaque période de vote (exploration et promotion), à partir de la participation passée.
  • Le bulletin de vote, dans la version actuel de Tezos, est associé aux Bakers, à partir du nombre de Rolls en leur possession, tel que 1 Roll = 1 vote, au début de chaque période de vote.

Sources :

Medium/Jacob Arluck


Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *