La blockchain peut jouer un rôle au-delà des transactions monétaires et financières. L’une de ces applications non financières est que la blockchain peut grandement améliorer les domaines du vote et de la gouvernance. Dans cet article, nous explorons des approches permettant de créer une infrastructure blockchain à usage spécifique conçue pour faciliter les activités de vote basées sur MACI. Cette infrastructure devrait inclure une blockchain légère qui agit comme un serveur d'horodatage et héberge la logique, ainsi que les outils nécessaires pour réduire les coûts d'utilisation/maximiser l'expérience utilisateur. Il devrait donc devenir la nouvelle plateforme de base pour une nouvelle génération de technologies de vote. Avant d’entrer dans les détails, examinons d’abord l’histoire de la technologie de vote et la façon dont le vote a évolué au sein de la communauté blockchain.

L'évolution de la technologie de vote La technologie de vote du grec ancien Kleroterion [1] aux machines de vote électroniques modernes.

La technologie de vote a une longue histoire [2]. Elle est très importante pour la société humaine, mais elle se développe très lentement. Le Royaume-Uni s'est toujours appuyé sur des bulletins de vote manuscrits lors des élections générales de 2019[3], et d'autres États-nations ont utilisé des machines à voter électroniques de source fermée[4], ce qui pourrait facilement susciter des contestations sur les résultats de la gouvernance[5].

L’adoption de technologies de vote modernes a accru l’efficacité mais n’a pas eu beaucoup de succès en matière de transparence et de vérifiabilité.

Il ne fait aucun doute que l’intégrité du vote est très importante pour le transfert de pouvoir, la prise de décision sur des questions importantes ou l’allocation des ressources. Si les citoyens ne parviennent pas à s’entendre sur le résultat du vote sur les décisions de gouvernance, ils ne peuvent pas coopérer les uns avec les autres et les frictions augmentent. Les frictions peuvent causer des problèmes, allant des conflits à la guerre.

Même si la technologie du vote évolue lentement, la transparence ne s’est pas améliorée depuis longtemps. Du Kleroterion aux bulletins de vote papier en passant par les machines à voter électroniques et optiques, la vérification repose toujours sur des personnes et des organismes d'audit dignes de confiance. La confirmation et la vérification des résultats du vote peuvent être extrêmement coûteuses[6]. Il y a clairement place à amélioration.

Alors, quelle est la technologie de vote idéale ? En fait, ce n’est pas une question difficile. Nous pouvons facilement créer une « liste de souhaits » :

(1) Infrastructure open source ;

(2) Héberger des programmes open source pour la logique de vote ;

(3) Tenir un registre permanent de tous les votes exprimés dans l'ordre ;

(4) Capable de vérifier cryptographiquement les résultats ;

(5) Résister à la collusion ;

(6) Protéger la vie privée ;

(7) Le coût du vote est faible.

Si nous parvenons à construire un système open source pouvant être continuellement amélioré, nous atteindrons progressivement les objectifs ci-dessus. Les améliorations et la réduction des coûts de la technologie de vote peuvent permettre aux petites organisations et communautés de bénéficier de l’utilisation d’une technologie qui leur était auparavant inaccessible, ajoutant ainsi d’importantes externalités positives.

Vote et gouvernance au sein de la communauté blockchain

Le vote et la gouvernance ne sont pas nouveaux pour la communauté blockchain, car de nombreuses communautés blockchain sont distribuées et doivent s'appuyer sur la gouvernance pour promouvoir le développement des affaires.

La blockchain elle-même peut enregistrer les votes de manière transparente et vérifier les résultats du vote. Ces propriétés ont été utilisées par la communauté blockchain pour la gouvernance, comme les événements de vote de jetons Snapshot [7] et de vote de proposition de gouvernance Cosmos [8]. En conséquence, la communauté blockchain peut voter sur des propositions et décider de questions de gouvernance importantes sans passer par un proxy centralisé ou des réunions en face à face.

Une proposition en cours[10] de KlaytnSquare[9] appelle les validateurs à voter en chaîne. La proposition vise à approuver le plan de dépenses budgétaires trimestriel [11].

L'exemple précédent utilise une règle simple et directe : 1 jeton, 1 vote : le nombre de droits de vote dont vous disposez dépend de votre participation dans le réseau ou le protocole. On peut évidemment créer une autre logique de vote à condition qu’elle ait du sens. La programmabilité de la blockchain rend plus facile et pratique la mise en œuvre d’une logique de vote non traditionnelle.

Un exemple est le vote quadratique [12] (QV), un système de vote de plus en plus populaire dans la communauté blockchain. Lors du tour QV, un utilisateur peut exprimer ses préférences en dépensant des crédits vocaux sur un sujet spécifique. Mais si un électeur souhaite voter plus d’une fois sur le même sujet, le coût des crédits de vote augmente à chaque vote. Par conséquent, le coût total du vote augmente quadratiquement, décourageant les préférences extrêmes des utilisateurs disposant d’un pouvoir de vote trop important.

Financement quadratique [13] tours de vote sur la blockchain Aptos. Les résultats du vote sont enregistrés sur la chaîne et la logique du vote est vérifiable.

De nombreux paramètres doivent être pris en compte lors du choix d’une méthode de vote spécifique. Par exemple, un compromis consiste à choisir entre le vote en chaîne ou le vote hors chaîne. La logique de vote en chaîne peut être plus vérifiable et transparente, mais les frais de transaction peuvent constituer un fardeau important. À l’inverse, la logique de vote hors chaîne peut être moins coûteuse mais en même temps moins transparente et vérifiable. Cependant, le vote en chaîne et hors chaîne n'est pas une relation soit l'un soit l'autre. Nous pouvons facilement concevoir cela comme un système hybride où une partie du processus se déroule en chaîne et le reste se fait hors chaîne.

Outre le coût, il existe des problèmes de confidentialité. La confidentialité est importante pour deux raisons. Premièrement, dans de nombreux cas, les utilisateurs auront moins de soucis concernant le vote s’ils peuvent voter de manière anonyme (confidentialité entre les utilisateurs et les organisateurs). En outre, la confidentialité entre les utilisateurs peut contribuer à prévenir la corruption électorale et à lutter efficacement contre la collusion.

Une façon de minimiser le calcul en chaîne tout en renforçant l'intégrité hors chaîne consiste à utiliser des preuves sans connaissance [14]. Une idée simple est que si le calcul hors chaîne peut être vérifié avec des preuves de connaissance nulle, nous pouvons déplacer la plupart des calculs hors chaîne. Si les messages sont davantage cryptés, nous pouvons améliorer la confidentialité. MACI [15] est le cadre minimal pour atteindre cet objectif.

Les tours de scrutin MACI déplacent le décompte des votes hors chaîne. Enfin, la validité des résultats est vérifiée grâce à une chaîne de preuve à connaissance nulle.

Lors d'un tour de vote MACI, les votes sont encapsulés dans un message crypté par clé publique généré par l'administrateur du tour (opérateur) et soumis au contrat intelligent. Par conséquent, tous les messages sont « horodatés » par la blockchain, créant ainsi une chaîne de messages contenant des informations de vote.

À la fin du tour de vote, l'administrateur télécharge tous les messages, les décrypte et compte les votes dans l'ordre inverse. Les résultats sont ensuite publiés avec une preuve de connaissance nulle vérifiable sur un contrat intelligent (ou par toute autre personne), signalant ainsi la validité des résultats publiés et l'exactitude du traitement du message.

L'ensemble du processus maintient un minimum de calcul en chaîne tout en garantissant l'intégrité des résultats publiés. Il assure également la confidentialité et la résistance à la collusion entre les utilisateurs.

Comment MACI fonctionne-t-il dans les produits réels ?

MACI est désormais utilisé par diverses communautés de hackathon sur DoraHacks[16] pour voter pour leurs projets de hackathon préférés. Prenons donc le cycle DoraHacks MACI comme exemple.

OpenSea et Replit Hackathon utilisent MACI pour le vote des juges en 2022

Après la soumission du projet de hackathon (BUIDL), l'organisateur a sélectionné 12 équipes BUIDL parmi toutes les œuvres soumises. Dix juges ont été invités à voter pour les 12 équipes BUIDL et à distribuer 25 000 $ en prix. 10 juges ont été inscrits sur la liste blanche et inscrits pour participer au tour de vote, et ils ont envoyé un total de 39 messages au contrat intelligent MACI déployé sur Polygon.

Une fois le vote terminé, l'administrateur (DoraHacks) compte les votes et publie les résultats finaux dans le classement, puis fournit une preuve de connaissance nulle pour vérifier le classement.

Classement des résultats du vote du hackathon OpenSea x Replit. Une preuve sans connaissance qui vérifie les résultats affichés dans le classement.

En tant que cadre général, MACI peut être utilisé pour des cas d'utilisation du vote au-delà du vote des juges du hackathon et du vote de la communauté open source. Cependant, l’adoption de MACI dans davantage de cas d’utilisation de vote est étonnamment rare. Plus largement, le vote blockchain lui-même n’a pas encore été adopté dans le monde réel.

Les avantages de l’utilisation de la blockchain pour améliorer la technologie de vote sont clairs, mais pourquoi le monde réel n’avance-t-il pas ? Même au sein de la communauté blockchain, les avantages de MACI sont évidents. Pourquoi MACI n'est-il pas généralement adopté par la communauté décentralisée ?

L’une des principales raisons de la lenteur de l’adoption des technologies de vote avancées n’est pas la faible demande mais la difficulté d’utiliser cette technologie. En d’autres termes, nous devons améliorer la technologie pour offrir une meilleure UX/UI aux produits de vote modernes et réduire le coût d’utilisation pour les utilisateurs.

expérience utilisateur

En plus de la gouvernance communautaire open source, nous devons également créer davantage d'interfaces permettant aux utilisateurs d'utiliser les nouvelles technologies de vote. DoraHacks finance l'écosystème Web3 et la communauté des hackathons en fournissant les meilleurs produits actuellement disponibles dans l'industrie. Bien que les interfaces de DoraHacks.io elles-mêmes aient des cas d'utilisation spécifiques, elles peuvent être simplifiées puis généralisées pour créer davantage d'interfaces pour davantage de cas d'utilisation.

La stratégie front-end spécifique n’a pas encore été déterminée. Cependant, une bonne expérience utilisateur est cruciale pour l’adoption de la technologie, même au sein de la communauté blockchain – ce qui est important pour les développeurs de Dora Factory.

frais de vote

Une blockchain universelle doit être aussi décentralisée que possible et fournir une infrastructure unique pour tous les types d'applications. Ces blockchains ne sont pas conçues pour être optimisées pour un type spécifique d’application, notamment les applications non monétaires ou non financières. Dans le même temps, les frais de transaction peuvent fluctuer lorsqu’un grand nombre d’applications sont en concurrence pour le même ensemble de ressources informatiques. L'imprévisibilité des coûts peut créer des problèmes pour le vote.

À cette fin, Dora Factory a récemment testé un nouveau produit appelé Vota[17]. L'idée de Vota est d'expérimenter des blockchains spécialisées et de les utiliser pour optimiser en permanence la technologie de vote et l'expérience utilisateur. Actuellement, Vota en est encore à ses balbutiements. Cependant, on peut imaginer plusieurs formes différentes de Vota.

Contrat intelligent temporaire

C'est ainsi que les tours de vote sont actuellement pris en charge sur DoraHacks.io. Chaque tour de vote est déployé sous la forme d'un contrat intelligent distinct sur une blockchain spécifique. Dans la plupart des cas, Ethereum ne peut généralement pas prendre en charge directement la plupart des scénarios de vote (c'est pourquoi Snapshot est le produit par défaut utilisé par la communauté Ethereum). Actuellement, Polygon et BNBChain sont les choix populaires pour la plupart des organisateurs de subventions et des organisateurs de hackathons sur DoraHacks.

Un smart contract temporaire sur la blockchain L1, tous les messages de vote sont envoyés à L1.

Utiliser des contrats intelligents temporaires n’est pas entièrement une mauvaise chose. Il est flexible et peut être déployé partout selon les besoins. Pour les utilisateurs de DoraHacks, les résultats actuels sont bons, mais ils ne répondent pas de la même manière à tous les besoins de vote.

Vote L2

Si nous créons une infrastructure de couche 2 (L2) spécifiquement pour le vote, nous pouvons réduire considérablement les coûts des frais de gaz et potentiellement permettre un vote à faible coût sur Ethereum. Les contrats L2 ne doivent pas nécessairement être tous déployés sur Ethereum, ils peuvent être moins chers en soumettant simplement des transactions L1 de temps en temps pour vérifier toute l'activité L2.

Nous pouvons optimiser davantage ce modèle. Universal L2 doit être fréquemment engagé sur Ethereum. Vota n'a besoin de soumettre qu'une seule transaction à Ethereum par tour, c'est-à-dire qu'il ne nécessite que le coût des frais de gaz d'au plus une transaction par tour. Si plusieurs tours se terminent en même temps, ils peuvent partager une transaction pour réduire davantage les coûts du gaz, rendant ainsi le vote L2 plus réaliste et réalisable.

Les messages sont envoyés directement au contrat L2. Une seule transaction est envoyée à la blockchain L1 à la fin de chaque tour. L3 Vota (applicable à L(n)Vota, où n>=3)

L3 Vota n’a pas complètement de sens. Avec L2 établi, L3 Vota peut réduire davantage les frais de gaz d'un ordre de grandeur. Bien que les transactions L3 soient finalement enregistrées et vérifiées sur Ethereum, le compromis consiste à faire confiance au L2 choisi.

Bien sûr, nous pouvons étendre cela davantage à L(n) Vota, puisque L(2)…L(n-1) soumettra des transactions à Ethereum (ou autre L1). Mais évidemment, une chaîne de confiance complique les choses. À en juger par la situation actuelle, de nombreux L2 bien connus s'appuient encore sur un seul séquenceur (Sequencer) ; il est peut-être trop tôt pour parler de L(4) ;

Chaîne d'applications Vota

Les développeurs de Dora Factory ont créé un simple « Hack » qui permet aux contrats CosmWasm de vérifier les preuves de connaissance nulle générées par SnarkJS en utilisant [18] Bellman [19]. En intégrant Bellman dans le contrat CosmWasm, n'importe quelle chaîne d'applications Cosmos peut rapidement prendre en charge les applications zk.

Avec la possibilité d'exécuter des applications zk, les blockchains indépendantes peuvent utiliser une architecture logicielle comme Tendermint pour créer une chaîne. Le consensus de ces blockchains est similaire à celui de BFT, ou plus simple, et elles peuvent généralement prendre en charge jusqu'à une centaine de validateurs. En sélectionnant soigneusement des validateurs ayant des intérêts mal alignés, les blockchains indépendantes peuvent être suffisamment sécurisées et neutres.

Alors que DoraHacks accueille davantage d'applications Cosmos, un cas d'utilisation évident de Vota basé sur une chaîne d'applications est le vote sur les résultats du hackathon. En plus de DoraHacks, Vota basé sur la chaîne d'applications Cosmos fait bien plus qu'un hackathon pour juger le vote.

Chaîne d'applications Vota dispose d'un petit nombre de validateurs, mais des validateurs soigneusement sélectionnés peuvent fournir une infrastructure fiable.

Il convient de noter que ces solutions ne sont pas exclusives. À mesure que Vota évolue, différentes solutions peuvent se croiser. Par exemple, si nous disposons d'une version de chaîne d'applications autonome de Vota comme infrastructure principale, pour les cas d'utilisation nécessitant une vérification de transaction sur un L1 spécifique, la chaîne d'applications peut envoyer des transactions supplémentaires à L1.

meilleur anonymat

Des travaux de recherche sont actuellement en cours pour rendre MACI plus fiable. Le MACI original reposait sur une hypothèse de confiance importante selon laquelle les administrateurs ne seraient pas corrompus. Ce n’est pas universel. Pour améliorer cela, il existe des solutions basées sur MPC [20] et des solutions non basées sur MPC [21]. Actuellement, DoraHacks a construit une version anonyme de MACI basée sur le cryptage rerandomizable ElGamal, initialement proposé par Kobe Guikan. [22] Il a été testé dans le cadre d'un petit cycle de subventions de recherche de l'ETH [23] sur DoraHacks.io.

À l’heure actuelle, il est peut-être un peu prématuré de pousser l’adoption du MACI anonyme avant que le MACI lui-même ne soit largement adopté. Cependant, il est également important de poursuivre les recherches pour réduire les hypothèses de confiance dans les mécanismes de vote en général.

Ajoutez de l'anonymat à MACI en ajoutant des actions qui permettent aux utilisateurs de désactiver et de modifier leurs clés secrètes sans que les administrateurs puissent savoir qui a ajouté quelle nouvelle clé. Paiement GAZ

Il est important de ne pas supposer que les utilisateurs possèdent une crypto-monnaie. Si chaque utilisateur doit payer des frais de gaz pour chaque transaction, alors les utilisateurs de la blockchain seront limités à un petit groupe de personnes. Pour résoudre ce problème, les opérateurs MACI peuvent pré-déposer un jeton remboursable et payer les utilisateurs. Ce mécanisme peut être mis en œuvre via les stations-service.

La station-service elle-même est un contrat intelligent qui réside sur Vota. Avant le début de chaque tour, l'opérateur peut choisir de l'utiliser ou non. En utilisant la station-service, les opérateurs pré-dépôtnt DORA dans le contrat intelligent et peuvent payer les frais de transaction associés à un tour spécifique via la station-service.

Très probablement, Vota déploiera une station-service par défaut et les utilisateurs pourront déployer leurs propres stations-service avec une logique de paiement différente à la demande.

Le contrat de paiement du Gaz est un registre du solde du Gaz pour chaque tour de vote. en conclusion

Les blockchains à usage spécifique peuvent convenir à un large éventail de cas d’utilisation d’applications spécifiques, en particulier les cas d’utilisation non financiers. Le vote est l’un des problèmes les plus importants que la blockchain et la cryptographie à connaissance nulle peuvent contribuer à améliorer considérablement. Améliorer la transparence et l'efficacité du vote peut réduire les frictions en matière de gouvernance au sein de la société humaine et de la communauté blockchain, améliorant ainsi la productivité à long terme. Des protocoles tels que MACI créent des cadres soignés pour les applications de vote sur la blockchain, mais la technologie de vote nécessite encore beaucoup de travail pour s'améliorer. Plus précisément, nous avons besoin d’une infrastructure conviviale comme base pour améliorer la technologie de vote à long terme, et ce document détaille les travaux futurs.

référence

Kléroterion : https://en.wikipedia.org/wiki/Kleroterion

La longue histoire de la technologie de vote : https://electionlab.mit.edu/research/voting-technology

Élections générales britanniques du « Brexit » de 2019 : https://en.wikipedia.org/wiki/2019_United_Kingdom_general_election

Machines à voter électroniques : https://en.wikipedia.org/wiki/Dominion_Voting_Systems

Résultats des élections contestés : https://www.reuters.com/legal/dominions-defamation-case-against-fox-poised-trial-after-delay-2023-04-18

La confirmation et la vérification des résultats du scrutin peuvent être extrêmement coûteuses : https://azsos.gov/elections/voters/voting-elections/ballot-processing/2022-general-elections-recount-information

Vote des jetons instantanés : https://snapshot.org/

Vote sur la proposition de gouvernance Cosmos : https://www.mintscan.io/cosmos/proposals

KlaytnSquare : https://square.klaytn.foundation/GC

Une proposition de KlaytnSquare : https://square.klaytn.foundation/Proposal/Detail?id=4

Plan de dépenses budgétaires : https://govforum.klaytn.foundation/c/proposal/5

Vote quadratique : https://en.wikipedia.org/wiki/Quadratic_voting

Financement quadratique : https://research.dorahacks.io/2022/07/11/quadratic-governance

Preuve de connaissance zéro : https://en.wikipedia.org/wiki/Zero-knowledge_proof

MACI : https://ethresear.ch/t/infrastructure-anti-collusion-minimale/5413

DoraHacks : https://dorahacks.io/grant/ethdenver22/buidl

Vote:https://vota.dorafactory.org/

Un simple "hack" qui permet d'utiliser les contrats CosmWasm : https://github.com/DoraFactory/snarkjs-bellman-adapter/tree/main/prove

Homme de cloche : https://github.com/zkcrypto/bellman

Solution basée sur MPC : https://research.dorahacks.io/2023/03/30/mpc-maci-anonymization

Solution non basée sur MPC : https://ethresear.ch/t/maci-anonymization-using-rerandomizable-encryption/7054

Version MACI anonyme, proposée par KobeGuikan : https://github.com/dorahacksglobal/anonymous-maci

Cycle de subventions de recherche de l'ETH : https://dorahacks.io/grant/ethre3/maci