O Blockchain pode desempenhar um papel além da moeda e das transações financeiras. Uma dessas aplicações não financeiras é que o blockchain pode melhorar muito as áreas de votação e governança. Neste artigo, exploramos abordagens para construir uma infraestrutura blockchain para fins especiais, projetada para facilitar atividades de votação baseadas em MACI. Essa infraestrutura deve incluir um blockchain leve que atue como um servidor de carimbo de data/hora e hospede a lógica, juntamente com as ferramentas necessárias para reduzir os custos do usuário/maximizar a experiência do usuário. Portanto, deverá tornar-se a nova plataforma básica para uma nova geração de tecnologia de votação. Antes de mergulharmos nos detalhes, vamos primeiro dar uma olhada na história da tecnologia de votação e como a votação evoluiu na comunidade blockchain.

A evolução da tecnologia de votação Tecnologia de votação desde o antigo Kleroterion grego[1] até às modernas máquinas de votação eletrónica.

A tecnologia de votação tem uma longa história[2]. É extremamente importante para a sociedade humana, mas evoluiu muito lentamente. O Reino Unido ainda dependia de cédulas marcadas à mão durante as eleições gerais de 2019[3], e outros Estados-nação utilizam urnas eletrônicas de código fechado[4], o que pode facilmente levar a resultados de governança controversos[5].

A adoção de tecnologia de votação moderna melhorou a eficiência, mas não teve muito sucesso em abordar a transparência e a verificabilidade.

É evidente que a integridade da votação é fundamental para a transferência de poder, a tomada de decisões sobre assuntos importantes ou a alocação de recursos. Se as pessoas não concordarem com os resultados das votações em decisões de governança, não poderão cooperar entre si, o que aumentará o atrito. O atrito pode causar problemas, que vão de disputas a guerras.

Embora a tecnologia de votação esteja melhorando lentamente, a transparência não melhora há muito tempo. Do Kleroterion às cédulas de papel e às urnas eletrônicas e de digitalização óptica, a verificação ainda depende de pessoas e organizações de auditoria confiáveis. Confirmar e auditar os resultados da votação pode ser extremamente custoso[6]. Claramente, há espaço para melhorias.

Então, qual é a tecnologia de votação ideal? Esta não é uma pergunta difícil. Podemos facilmente criar uma lista de desejos:

(1) Infraestrutura de código aberto;

(2) hospedar programas de código aberto para lógica de votação;

(3) manter um registo permanente de todos os votos emitidos por ordem;

(4) Capacidade de verificar criptograficamente os resultados;

(5) Anticonspiração;

(6) Proteger a privacidade;

(7) Os custos de votação são baixos.

Se conseguirmos construir um sistema de código aberto que possa ser continuamente aprimorado, alcançaremos gradualmente os objetivos acima. Melhorias na tecnologia de votação e reduções de custos podem permitir que organizações e comunidades menores se beneficiem do uso de tecnologias que antes não estavam disponíveis, agregando enormes externalidades positivas.

Votação e governança em comunidades de blockchain

Votação e governança não são coisas estranhas na comunidade blockchain, pois muitas comunidades blockchain são distribuídas e dependem da governança para impulsionar o desenvolvimento dos negócios.

O próprio blockchain pode registrar votos de forma transparente e verificar os resultados. Essas propriedades têm sido utilizadas por comunidades de blockchain para governança, como a votação por token Snapshot[7] e a votação de propostas de governança do Cosmos[8]. Como resultado, as comunidades de blockchain podem votar em propostas e decidir questões importantes de governança sem passar por agentes centralizados ou reuniões presenciais.

Uma proposta em andamento[10] da KlaytnSquare[9] exige que os validadores votem na cadeia. A proposta busca a aprovação de um plano trimestral de gastos do tesouro[11].

Os exemplos anteriores usaram uma regra simples e direta de 1 token, 1 voto — o poder de voto que você tem depende da sua participação na rede ou protocolo. Obviamente, podemos criar outras lógicas de votação, desde que façam sentido. A programabilidade das blockchains torna mais fácil e prático implementar lógicas de votação não tradicionais.

Um exemplo é a votação quadrática[12] (QV), um sistema de votação que vem ganhando popularidade na comunidade blockchain. Em uma rodada de QV, um usuário pode expressar sua preferência gastando "créditos de voz" em um tópico específico. Mas se um eleitor quiser votar mais de uma vez no mesmo tópico, o custo de cada voto aumenta. Como resultado, o custo total da votação aumenta de forma quadrática, desencorajando preferências extremas de usuários com poder de voto excessivo.

A rodada de financiamento quadrático [13] é votada na blockchain Aptos. Os resultados da votação são registrados na cadeia e a lógica da votação é verificável.

Há muitos parâmetros a serem considerados ao escolher um método de votação específico. Por exemplo, uma compensação é escolher a votação on-chain ou off-chain. A lógica da votação on-chain pode ser mais verificável e transparente, mas as taxas de transação podem representar um fardo significativo. Por outro lado, a lógica da votação off-chain pode ser mais barata, mas ao mesmo tempo menos transparente e verificável. No entanto, a votação on-chain versus off-chain não é uma relação de escolha entre uma opção ou outra. Podemos facilmente projetá-la como um sistema híbrido, em que parte do processo é realizada on-chain e o restante off-chain.

Além do custo, há também a questão da privacidade. A privacidade é importante por dois motivos. Primeiro, em muitos casos, se os usuários puderem votar anonimamente (privacidade entre usuários e organizadores), eles terão menos preocupações com a votação. Além disso, a privacidade entre os usuários pode ajudar a prevenir a corrupção eleitoral e a combater eficazmente a conivência.

Uma maneira de minimizar a computação on-chain e, ao mesmo tempo, garantir a integridade off-chain é usar provas de conhecimento zero[14]. Uma ideia simples é que, se a computação off-chain puder ser verificada com provas de conhecimento zero, podemos mover a maior parte da computação off-chain. Se as mensagens forem criptografadas adicionalmente, podemos aumentar a privacidade. MACI[15] é uma estrutura mínima que atinge esse objetivo.

A rodada de votação da MACI transfere a contagem de votos para fora da cadeia. Por fim, a validade do resultado é verificada on-chain por meio de prova de conhecimento zero.

Em uma rodada de votação MACI, os votos são encapsulados em uma mensagem criptografada por uma chave pública gerada por um administrador da rodada (operador) e enviada ao contrato inteligente. Portanto, todas as mensagens são "marcadas com data e hora" pela blockchain, criando uma cadeia de mensagens com informações sobre a votação.

Ao final da rodada de votação, o administrador baixa todas as mensagens, descriptografa-as e conta os votos em ordem reversa. O resultado é então publicado juntamente com uma prova de conhecimento zero que pode ser verificada no contrato inteligente (ou por qualquer outra pessoa), comprovando a validade do resultado publicado e a correção do processamento da mensagem.

Todo o processo mantém computação on-chain mínima, garantindo a integridade dos resultados publicados. Também oferece privacidade e recursos anticonluio entre usuários.

Como o MACI funciona em produtos reais?

O MACI é atualmente usado pelas comunidades de hackathons no DoraHacks[16] para votar em seus projetos favoritos. Por isso, tomamos a rodada MACI do DoraHacks como exemplo.

Hackathon OpenSea e Replit usarão MACI para votação de juízes em 2022

Após o envio do projeto do hackathon (BUIDL), os organizadores selecionaram 12 equipes BUIDL entre todos os trabalhos enviados. 10 jurados foram convidados a votar nessas 12 equipes BUIDL e distribuir US$ 25.000 em prêmios em dinheiro. 10 jurados foram incluídos na lista de permissões e se inscreveram para a rodada de votação, e enviaram um total de 39 mensagens para o contrato inteligente MACI implantado no Polygon.

Após o término da votação, o administrador (DoraHacks) conta os votos e publica os resultados finais na tabela de classificação, e então fornece uma prova de conhecimento zero para verificar a tabela de classificação.

Tabela de classificação dos resultados da votação do hackathon OpenSea x Replit. Prova de conhecimento zero verificando os resultados exibidos na tabela de classificação.

Como estrutura geral, o MACI pode ser usado para casos de uso de votação que vão além da votação de juízes em hackathons e da votação da comunidade de código aberto. No entanto, a adoção do MACI para mais casos de uso de votação é surpreendentemente rara. De forma mais ampla, a votação em blockchain ainda não foi adotada no mundo real.

Os benefícios do uso de blockchain para aprimorar a tecnologia de votação são claros, mas por que o mundo real não avançou? Mesmo dentro da comunidade blockchain, as vantagens do MACI são claras, então por que o MACI não é amplamente adotado pela comunidade descentralizada?

Um dos principais motivos para a lenta adoção de tecnologias avançadas de votação não é a baixa demanda, mas a dificuldade de uso dessa tecnologia. Em outras palavras, precisamos aprimorar a tecnologia, fornecer melhor UX/UI para produtos de votação modernos e reduzir o custo de uso para os usuários.

Experiência do usuário

Além da governança comunitária de código aberto, também precisamos construir mais interfaces para que os usuários utilizem as novas tecnologias de votação. A DoraHacks financia o ecossistema Web3 e a comunidade de hackathons com os melhores produtos disponíveis atualmente em todo o setor. Embora as interfaces do DoraHacks.io tenham casos de uso específicos, elas podem ser simplificadas e, em seguida, generalizadas para construir mais interfaces para mais casos de uso.

A estratégia exata de front-end ainda não foi definida. No entanto, uma boa experiência do usuário é fundamental para a adoção da tecnologia, mesmo dentro da comunidade blockchain — e isso é importante para os desenvolvedores da Dora Factory.

Custos de votação

Blockchains de uso geral devem ser o mais descentralizadas possível e fornecer uma infraestrutura única para todos os tipos de aplicações. Essas blockchains não foram projetadas para serem otimizadas para nenhum tipo específico de aplicação, especialmente aplicações não monetárias ou não financeiras. Ao mesmo tempo, as taxas de transação flutuam quando há um grande número de aplicações competindo pelo mesmo conjunto de recursos computacionais. A imprevisibilidade dos custos pode causar problemas para a votação.

Para tanto, a Dora Factory testou recentemente um novo produto chamado Vota[17]. A ideia do Vota é experimentar blockchains de propósito específico e usá-los para otimizar continuamente a tecnologia de votação e a experiência do usuário. Atualmente, o Vota ainda está em fase inicial. No entanto, podemos imaginar diversas formas diferentes de Vota.

Contrato Inteligente Temporário

É assim que as rodadas de votação são atualmente suportadas no DoraHacks.io. Cada rodada de votação é implantada como um contrato inteligente separado em uma blockchain específica. O Ethereum geralmente não é capaz de suportar diretamente a maioria dos cenários de votação na maioria dos casos (é por isso que o Snapshot é o produto padrão usado pela comunidade Ethereum). Atualmente, Polygon e BNBChain são as escolhas populares para a maioria dos organizadores de subsídios e hackathons no DoraHacks.

Um contrato inteligente temporário na blockchain L1, todas as mensagens de votação são enviadas para L1.

Usar contratos inteligentes ad hoc não é algo totalmente ruim. É flexível e pode ser implementado onde você quiser. Funciona bem para os usuários do DoraHacks no momento, mas não atenderá a todas as necessidades de votação igualmente.

Votação L2

Se criarmos uma infraestrutura de camada 2 (L2) dedicada à votação, podemos reduzir significativamente os custos de gás e talvez implementar a votação de baixo custo no Ethereum. Os contratos de L2 não precisam ser implantados inteiramente no Ethereum; eles podem ser mais baratos e precisam apenas enviar transações de L1 periodicamente para verificar todas as atividades de L2.

Podemos otimizar ainda mais este modelo. A N2 geral deve ser enviada ao Ethereum com frequência. A Vota precisa enviar apenas uma transação ao Ethereum por rodada, o que significa que cada rodada precisa do custo da taxa de gás de, no máximo, uma transação. Se várias rodadas terminarem ao mesmo tempo, elas podem compartilhar uma transação para reduzir ainda mais o custo do gás, tornando a votação na N2 mais realista e viável.

As mensagens são enviadas diretamente para o contrato de nível 2. Apenas uma transação é enviada para a blockchain de nível 1 ao final de cada rodada. Vota de nível 3 (aplicável a L(n)Vota, onde n>=3)

O Vota L3 não é completamente sem sentido. Através do L2 estabelecido, o Vota L3 pode reduzir ainda mais as taxas de gás em uma ordem de magnitude. Embora as transações L3 sejam, em última análise, registradas e verificadas no Ethereum, a compensação é a confiança no L2 escolhido.

Claro, podemos estender isso ainda mais para L(n) Vota, porque L(2)…L(n-1) enviará transações para Ethereum (ou outra L1). Mas, obviamente, a cadeia de confiança complicará as coisas. Considerando a situação atual, muitas L2s conhecidas ainda dependem de um único sequenciador; talvez seja muito cedo para falar sobre L(4) agora.

Cadeia de aplicação Vota

Os desenvolvedores da Dora Factory criaram um "Hack" simples que permite que contratos CosmWasm utilizem [18] Bellman [19] para verificar provas de conhecimento zero geradas pelo SnarkJS. Ao incorporar Bellman aos contratos CosmWasm, qualquer cadeia de aplicações Cosmos pode suportar rapidamente aplicações zk.

Com a capacidade de executar aplicativos zk, blockchains independentes podem usar arquiteturas de software como a Tendermint para construir uma cadeia. O consenso dessas blockchains é semelhante ao da BFT, ou até mais simples, e geralmente podem suportar até 100 validadores. Ao selecionar cuidadosamente validadores com interesses inconsistentes, blockchains independentes podem ser suficientemente seguras e neutras.

À medida que a DoraHacks acolhe mais cadeias de aplicativos Cosmos, um caso de uso óbvio para o Vota baseado em cadeias de aplicativos é a votação nos resultados do hackathon. Além da DoraHacks, o papel do Vota baseado em cadeias de aplicativos Cosmos vai muito além da votação para os jurados do hackathon.

O número de validadores na cadeia de aplicativos Vota é pequeno, mas validadores cuidadosamente selecionados podem fornecer uma infraestrutura confiável.

Vale ressaltar que essas soluções não são exclusivas. À medida que o Vota se desenvolve, diferentes soluções podem se sobrepor. Por exemplo, se tivermos uma versão separada da cadeia de aplicações do Vota como infraestrutura principal, para casos de uso que exigem verificação de transações em uma L1 específica, a cadeia de aplicações pode enviar transações adicionais para a L1.

Melhor anonimato

Há pesquisas em andamento com o objetivo de tornar o MACI menos dependente de confiança. O MACI original partia de uma importante premissa de confiança: o administrador não pode ser corrupto. Isso não é universalmente verdadeiro. Existem soluções baseadas em MPC[20] e não baseadas em MPC[21] para melhorar isso. Atualmente, a DoraHacks desenvolveu uma versão anônima do MACI baseada na criptografia re-randomizável ElGamal, originalmente proposta por Kobe Guikan.[22] Ela foi testada em uma pequena rodada de bolsas de pesquisa ETH[23] no DoraHacks.io.

Neste ponto, pode ser um pouco prematuro pressionar pela adoção do MACI anônimo antes que o próprio MACI seja amplamente adotado. No entanto, também é importante continuar a pesquisa para reduzir as premissas de confiança dos mecanismos gerais de votação.

Adicione anonimato ao MACI adicionando operações que permitem aos usuários desativar e alterar suas chaves secretas, sem que o administrador saiba quem adicionou qual nova chave. Pagamento de GÁS

É importante não presumir que os usuários possuam criptomoedas. Se cada usuário tivesse que pagar uma taxa de combustível para cada transação, o blockchain ficaria limitado a um pequeno grupo de pessoas. Para resolver isso, os operadores de MACI poderiam pré-depositar um token reembolsável e pagar o usuário. Esse mecanismo poderia ser implementado por meio de postos de gasolina.

O próprio Gas Station é um contrato inteligente que reside na Vota. Antes do início de cada rodada, os operadores podem optar por usá-lo ou não. Ao usar o Gas Station, os operadores pré-depositam DORA no contrato inteligente e podem pagar taxas de transação associadas a uma rodada específica por meio do Gas Station.

Provavelmente, a Vota implantará um posto de gasolina padrão, e as pessoas poderão implantar seus próprios postos de gasolina com lógicas de pagamento diferentes sob demanda.

O Contrato de Pagamento de Gás é um livro-razão do saldo de Gás para cada rodada de votação.

Blockchains para fins específicos podem ser adequados para uma ampla gama de casos de uso de aplicações específicas, especialmente casos de uso não financeiros. A votação é um dos problemas mais importantes que o blockchain e a criptografia de conhecimento zero podem ajudar a resolver significativamente. Melhorar a transparência e a eficiência da votação pode reduzir o atrito de governança na sociedade humana e nas comunidades de blockchain, o que pode aumentar a produtividade a longo prazo. Protocolos como o MACI criam uma estrutura concisa para aplicações de votação em blockchains, mas a tecnologia de votação ainda precisa de muito trabalho para ser aprimorada. Especificamente, precisamos de uma infraestrutura amigável como base para aprimorar a tecnologia de votação a longo prazo, e este artigo detalha o trabalho futuro.

Referência

Kleroterion: https://en.wikipedia.org/wiki/Kleroterion

A longa história da tecnologia de votação: https://electionlab.mit.edu/research/voting-technology

Eleições gerais do Brexit no Reino Unido em 2019: https://en.wikipedia.org/wiki/2019_United_Kingdom_general_election

Máquinas de votação eletrônicas: https://en.wikipedia.org/wiki/Dominion_Voting_Systems

Disputa sobre os resultados das eleições: https://www.reuters.com/legal/dominions-defamation-case-against-fox-poised-trial-after-delay-2023-04-18

Os custos de confirmação e auditoria dos resultados das cédulas podem ser extremamente altos: https://azsos.gov/elections/voters/voting-elections/ballot-processing/2022-general-elections-recount-information

Votação de token instantâneo: https://snapshot.org/

Votação da proposta de governança do Cosmos: https://www.mintscan.io/cosmos/proposals

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

Uma proposta da KlaytnSquare: https://square.klaytn.foundation/Proposal/Detail?id=4

Plano de gastos fiscais: https://govforum.klaytn.foundation/c/proposal/5

Votação quadrática: https://en.wikipedia.org/wiki/Quadratic_voting

Financiamento Quadrático: https://research.dorahacks.io/2022/07/11/quadratic-governance

Prova de conhecimento zero: https://en.wikipedia.org/wiki/Zero-knowledge_proof

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

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

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

Um "hack" simples para permitir o uso de contratos CosmWasm: https://github.com/DoraFactory/snarkjs-bellman-adapter/tree/main/prove

Bellman: https://github.com/zkcrypto/bellman

Solução baseada em MPC: https://research.dorahacks.io/2023/03/30/mpc-maci-anonymization

Soluções não baseadas em MPC: https://ethresear.ch/t/maci-anonymization-using-rerandomizable-encryption/7054

Versão MACI anônima, proposta por KobeGuikan: https://github.com/dorahacksglobal/anonymous-maci

Rodada de Subsídios para Pesquisa ETH: https://dorahacks.io/grant/ethre3/maci