Aller au contenu
GovChain

Comment une décision passe de l'idée à l'action

Ce que font les contrats, dans l'ordre où une proposition le vit.

1. La vie d'une proposition

  1. 1

    Publiée

    Modèle, durée, quorum, seuil et action sont figés.

  2. 2

    Vote en cours

    Le décompte est public et en direct.

  3. 3

    Clôturée

    Le contrat calcule le résultat à l'échéance.

  4. 4

    Adoptée ou rejetée

    Quorum atteint et assez de « pour » : adoptée.

  5. 5

    Exécutée

    N'importe qui déclenche l'action, telle qu'écrite.

L'auteur ou un admin peut annuler avant la clôture. Elle n'est alors jamais exécutée.

2. Quorum et seuil

Quorum : assez de participation ? Seuil : assez de « pour » ?

Exemple chiffré

38 350 tGOV de pouvoir de vote, quorum de 20 % : 7 670 tGOV doivent voter.

  1. 17 950 tGOV votent, pour 7 670 requis : quorum atteint.
  2. 25 050 pour ÷ 6 850 exprimés = 73,7 % : adoptée.
  3. 3Sans le dernier bulletin de 1 250 tGOV : pas de quorum, rejet.
Pour 5 050 tGOVContre 1 800 tGOV
73,7 % pourIl faut plus de 50 % de « pour »
Quorum atteintParticipation : 7 950 tGOV sur 38 350 tGOV

Quorum 20 %

3. Trois modèles de vote, les mêmes bulletins

Les bulletins du vote sur la salle du demo day, comptés de trois façons.

ModèlePourContreRésultat
Un portefeuille, une voix9 portefeuilles11 portefeuillesRejetée
Pondéré par jetons27 750 tGOV10 600 tGOVAdoptée
Pondéré par jetons, avec délégation31 650 tGOV6 700 tGOVAdoptée

Aucun modèle n'est neutre : choisissez-le par proposition, et écrivez-le.

4. La délégation

Confiez votre pouvoir de vote, gardez vos jetons, reprenez-le quand vous voulez.

  • Un seul délégué à la fois, jamais en cascade.
  • Les délégués affichent leur présentation et leur participation.
  • Seules les propositions avec délégation en tiennent compte.

5. Rôles et permissions

Le contrat les applique ; l'interface explique chaque verrou.

ActionAdminProposantVotant
Voter et déléguerOuiOuiOui
Publier une propositionOuiOuiAvec 2 000 tGOV
Annuler une proposition en coursToutesLes siennesNon
Exécuter une proposition adoptéeOuiOuiOui

6. Votes on-chain ou off-chain

  • On-chain

    Chaque bulletin est une transaction : vérifiable, mais payant (gas). La démo simule ce mode.

  • Off-chain, signé

    Chaque bulletin est un message signé gratuit ; l'exécution passe par un relais.

7. Pour les développeurs

La couche de données de la démo reproduit un contrat Governor avec un jeton ERC20Votes.

Voir les appels de contrat
Les appels de contrat que simule la démo
  • propose(targets, values, calldatas, description)createProposal()
  • castVoteWithReason(proposalId, support, reason)castVote()
  • delegate(delegatee)setDelegate()
  • execute(targets, values, calldatas, descriptionHash)executeProposal()
  • cancel(…)cancelProposal()
  • state(proposalId), proposalVotes(proposalId)statusOf(), tally()
Lire le code source sur GitHub

Voyez-le avec de vrais bulletins

Lancer la démo