a16z: Explicação detalhada do princípio de funcionamento do projeto de votação Cicada na cadeia ZK

原文:《Building Cicada: Private on-chain vote using time-lock puzzles》por Michael Zhu,a16z

Compilação: Kxp, BlockBeats

Todos os sistemas de votação precisam contar com integridade e transparência para serem eficazes. Superficialmente, o blockchain parece ser a plataforma ideal para construir esses sistemas. Na verdade, a votação sem permissão foi adotada por muitas organizações descentralizadas para expressar a vontade coletiva, geralmente no contexto do exercício de poder financeiro significativo ou do ajuste de parâmetros-chave de protocolo. No entanto, a votação on-chain tem algumas desvantagens e questões de privacidade não foram totalmente exploradas para sistemas de votação Web3, o que trouxe um impacto negativo. Na maioria dos protocolos de votação on-chain em uso hoje, as cédulas e os resultados da votação são totalmente públicos. A falta de proteção da privacidade significa que os resultados da votação são suscetíveis à manipulação, além de levar a incentivos inconsistentes para os eleitores, levando potencialmente a resultados antidemocráticos.

Para esse fim, estamos lançando o Cicada: uma nova biblioteca Solidity de código aberto que utiliza quebra-cabeças de timelock e provas de conhecimento zero para votação privada on-chain. Comparado com os sistemas existentes, o Cicada possui propriedades de privacidade exclusivas, minimiza a dependência de confiança e também é muito eficiente na rede principal Ethereum.

Neste artigo, examinamos o estado atual da privacidade do voto e fornecemos uma introdução de alto nível sobre como o Cicada funciona (serão apresentadas provas formais). Também incentivamos os desenvolvedores a acessar o repositório GitHub para obter detalhes - o Cicada pode ser ajustado e estendido de forma flexível para diferentes esquemas e recursos de votação. Estamos ansiosos para trabalhar com a comunidade para explorar essas possibilidades juntos.

Visão geral da privacidade da votação

Em qualquer sistema de votação (on-chain ou não), precisamos considerar muitos níveis diferentes de privacidade. A divulgação de cédulas individuais, contagens de votos em andamento e identidade do eleitor afetam os eleitores de maneiras diferentes. As propriedades de privacidade desejadas variam de voto para voto, mas aqui estão algumas que são frequentemente abordadas na literatura de criptografia e ciências sociais:

**·**Privacidade da cédula: A votação secreta, também conhecida como "cédula australiana", é uma forma de proteger a privacidade dos eleitores individuais nos sistemas de votação do mundo real e reduzir o suborno e a coerção (na cadeia No ambiente acima, pode precisar de um mecanismo mais poderoso do que o voto secreto, consulte "sem recebimento" abaixo para obter detalhes). A privacidade do voto também pode reduzir o viés de desejo social – as pessoas têm menos probabilidade de votar com base no que outras pessoas pensam sobre suas escolhas.

**·**Privacidade da contagem de votos: Muitos sistemas de votação ocultam a contagem de votos em andamento, ou seja, o número de votos que cada opção recebeu, durante a votação do eleitor para evitar impacto na participação e nos incentivos do eleitor. Já vimos isso acontecer no mundo real: por exemplo, senadores dos EUA que votam mais tarde têm maior probabilidade de se alinhar com seu partido do que senadores que votam antes. Na votação ponderada por tokens na cadeia, as baleias gigantes podem manter sua falsa sensação de segurança, mantendo seus oponentes à frente (algumas pessoas podem ter preguiça de votar porque acham que essas pessoas vencerão de qualquer maneira) e, em seguida, votar em si mesmas no último momento, votos para determinar o resultado.

· Anonimato do eleitor: Em muitos sistemas de votação do mundo real, seu voto é mantido em sigilo, mas se você votou ou não é frequentemente conhecido por outras pessoas. Isso poderia servir como proteção contra fraude eleitoral, já que a publicação de registros de quem votou permitiria que as pessoas verificassem se alguém votou em seu nome. On-chain, no entanto, podemos usar primitivas criptográficas para evitar a fraude do eleitor enquanto mantemos o anonimato - por exemplo, usando um semáforo, você pode provar de forma de conhecimento zero que você é um eleitor qualificado e ainda não votou.

· Sem capacidade de recebimento: Os eleitores não devem fornecer um "recibo" de sua cédula a terceiros para provar como seu voto foi dado para alguém, o que poderia levar à venda da cédula. A resistência à coerção é outra propriedade intimamente relacionada, impedindo que alguém seja forçado a votar de uma determinada maneira. Essas propriedades são especialmente atraentes em um ambiente descentralizado, onde o poder de voto pode se tornar líquido por meio de um mercado de contratos inteligentes. Infelizmente, essas propriedades são muito difíceis de alcançar. De fato, Juels e outros apontam que essas propriedades são impossíveis de alcançar em um ambiente sem permissão sem hardware confiável.

O Cicada é focado na privacidade da contagem contínua de votos, no entanto (como discutiremos mais tarde), ele pode ser usado em conjunto com provas de associação de grupo de conhecimento zero para anonimato do eleitor e privacidade da cédula.

Cigarra: privacidade na contagem de votos usando quebra-cabeças homomórficos de timelock

Para obter privacidade de contagem de votos contínua, Cicada empresta primitivas criptográficas que nunca foram (até onde sabemos) usadas na cadeia.

Primeiro, o quebra-cabeça do bloqueio do tempo (Rivest, Shamir, Wagner, 1996) é um quebra-cabeça criptográfico cujos segredos só podem ser revelados após um período predeterminado de tempo ter decorrido - mais especificamente, apenas pela execução repetida de um determinado número. usado para resolver quebra-cabeças. Os quebra-cabeças de bloqueio de tempo são úteis no contexto da votação para privacidade de contagem de votos em andamento: os usuários podem enviar seus votos como quebra-cabeças de bloqueio de tempo, para que seus votos permaneçam privados durante o processo de votação, mas possam ser acessados após a divulgação da votação. Ao contrário da maioria das outras estruturas de votação privadas, isso permite que a privacidade da contagem de cédulas seja alcançada sem depender de agências estatísticas (como funcionários eleitorais contando cédulas de papel ou cédulas digitais), criptografia de limite (várias partes confiáveis devem cooperar para descriptografar uma mensagem) ou qualquer outra parte confiável : qualquer um pode resolver o quebra-cabeça do timelock para garantir que o resultado seja revelado após a votação.

Em segundo lugar, o quebra-cabeça de timelock homomórfico (Malavolta Thyagarajan, 2019) tem a propriedade adicional de que alguns cálculos podem ser executados em valores criptografados com conhecimento da chave secreta, descriptografia do quebra-cabeça ou uso de um backdoor. Em particular, o quebra-cabeça de timelock homomórfico linear nos permite combinar quebra-cabeças para gerar um novo quebra-cabeça que contém a soma dos valores secretos dos quebra-cabeças originais.

Como os autores do artigo apontam, os quebra-cabeças homomórficos lineares são particularmente adequados para votação privada: os votos podem ser codificados como quebra-cabeças e podem ser combinados homomorficamente para obter quebra-cabeças que codificam as estatísticas finais. Isso significa que apenas um cálculo é necessário para revelar a contagem final, em vez de resolver um quebra-cabeça único para cada voto.

Novo Sistema: Eficiência e Compensações

Para um esquema de votação que possa ser aplicado na prática na cadeia, há vários fatores a serem considerados. Primeiro, um invasor pode tentar manipular os resultados da votação enviando cédulas codificadas incorretamente. Por exemplo, podemos esperar que o quebra-cabeça de timelock de cada votação codifique um valor booleano: "1" para a resolução votada e "0" contra. Um torcedor fervoroso pode tentar usar um código como "100" para aumentar seu poder de voto efetivo.

Podemos impedir esse ataque exigindo que os eleitores enviem uma prova de conhecimento zero, além de enviar a própria cédula. No entanto, as provas de conhecimento zero podem ser computacionalmente caras - para manter o custo da participação do eleitor o mais baixo possível, as provas devem ser (1) computadas com eficiência no lado do cliente e (2) verificadas com eficiência na cadeia.

Para tornar a prova o mais eficiente possível, usamos um protocolo sigma personalizado. Esta é uma prova de conhecimento zero projetada para relações algébricas específicas, não um sistema de prova geral. Isso acelera muito os tempos de prova: em um laptop comum, leva apenas 14 milissegundos para gerar uma prova de validade de cédula em Python.

Embora o processo de verificação desse protocolo sigma seja conceitualmente simples, na verdade ele requer várias operações exponenciais de módulo grande. O esquema homomórfico linear de Malavolta e Thyagarajan usa criptografia Paillier, portanto, essas operações exponenciais serão executadas módulo algum módulo RSA N^2. Para um N razoavelmente grande, essas operações de exponenciação são proibitivas na maioria das cadeias EVM (exigindo milhões de gás). Para reduzir esse custo, Cicada usa o expoente ElGamal, que ainda fornece homomorfismo aditivo, mas opera em um módulo menor (N em vez de N^2).

Uma desvantagem de usar o ElGamal é que ele requer logaritmos discretos exaustivos para descriptografar as estatísticas (observe que isso é feito fora da cadeia e verificado com eficiência na cadeia). Portanto, só deve ser usado se a contagem final esperada for relativamente pequena (por exemplo, menos de 2^32, cerca de 4,3 milhões de votos). No esquema original baseado em Paillier, ele pode ser descriptografado com eficiência, independentemente do tamanho das estatísticas.

Escolher o módulo RSA N também envolve trade-offs. Nosso método usa um módulo de 1024 bits para melhorar a eficiência do gás. Embora esteja bem acima do módulo RSA máximo para fatoração (que é de 829 bits), está abaixo do tamanho de 2.048 bits geralmente recomendado para criptografia ou assinatura RSA. Em nossa aplicação, no entanto, não precisamos de segurança de longo prazo: uma vez terminada a eleição, não há risco se o futuro N for fatorado. Depois que o timelock expirar, é razoável usar um módulo relativamente pequeno, assumindo que as estatísticas e os votos se tornarão públicos. (Isso também pode ser facilmente atualizado no futuro se o algoritmo de fatoração melhorar.)

Anonimato e elegibilidade do eleitor

Como mencionado acima, o Cicada fornece privacidade contínua na contagem de votos - um quebra-cabeça de bloqueio de tempo mantém as contagens secretas durante a votação. No entanto, cada cédula também é um quebra-cabeça de timelock, criptografado sob os mesmos parâmetros públicos. Isso significa que, assim como as estatísticas podem ser descriptografadas (realizando os cálculos necessários), cada voto também pode.

Ou seja, a Cigarra apenas garante o sigilo das cédulas durante a votação. Se um observador curioso quiser decifrar a cédula de um determinado eleitor, também poderá fazê-lo após o fechamento das urnas. O custo de descriptografar qualquer cédula é o mesmo que o custo de descriptografar a contagem final, portanto, descriptografar totalmente uma cédula com n eleitores requer O(n) trabalho. No entanto, todos esses votos podem ser descriptografados em paralelo (supondo que haja computadores suficientes) em um processo que leva o mesmo tempo que descriptografar a contagem final.

Para algumas pesquisas, isso pode não ser o ideal. Embora estejamos satisfeitos com a privacidade temporária da contagem de votos, podemos desejar ter privacidade de votação permanente. Para conseguir isso, podemos combinar Cicada com um protocolo de elegibilidade de eleitor anônimo por meio de prova de conhecimento zero de associação ao grupo. Dessa forma, mesmo que as cédulas sejam desclassificadas, apenas revelará como alguém votou, o que já é revelado na apuração.

Em nosso repositório, fornecemos um exemplo de contrato que usa Semaphore para anonimato do eleitor. Observe que o próprio contrato Cicada não faz suposições sobre a determinação ou aplicação da elegibilidade do eleitor. Em particular, você pode substituir Semaphore por Semacaulk ou ZK Proof of State.

Agência de contagem de votos

Um de nossos primeiros objetivos ao projetar o Cicada foi evitar a dependência de agências de contagem de votos: muitos votos privados exigem uma agência de contagem semiconfiável (ou comitê cooperando por meio de computação multipartidária segura) que recebe e agrega votos. No contexto do blockchain, isso significa que esses esquemas não podem ser executados apenas por meio de contratos inteligentes, mas requerem alguma intervenção e confiança humana.

Na maioria dos regimes, as agências estatísticas são confiáveis em termos de integridade (não podem manipular a contagem de votos), mas também devem permanecer ativas - se estiverem off-line, os resultados finais não podem ser calculados e os resultados da votação parados indefinidamente. Em alguns sistemas, as agências estatísticas também são confiáveis para manter a privacidade. Ou seja, eles sabem o voto de cada eleitor, mas publicam os resultados sem revelar essa informação.

Embora as agências estatísticas sejam razoáveis (e necessárias) em muitos cenários do mundo real, elas não são ideais no contexto de blockchains, onde nosso objetivo é minimizar a confiança e garantir a resistência à censura.

Conclusão

Cicada explora muitas direções no campo da privacidade de votação on-chain e complementa pesquisas em andamento de outros grupos. Conforme mencionado acima, o Cicada complementa as tecnologias de associação de grupos anônimos, como Semaphore, prova de armazenamento ZK e anuladores de limitação de taxa. A cigarra também pode ser combinada com o verificador de provas otimista proposto pela equipe do Nouns Vortex para reduzir a carga de gás dos eleitores.

Além disso, temos a oportunidade de ajustar o Cicada para suportar diferentes esquemas de votação (por exemplo, votação ponderada, votação quadrática), enquanto esquemas mais complexos podem ser computacionalmente caros para a rede principal Ethereum, eles podem ser viáveis em redes de Camada 2 de. Com isso em mente, aceitamos quaisquer sugestões para a direção futura do Cigarra.

Ver original
O conteúdo serve apenas de referência e não constitui uma solicitação ou oferta. Não é prestado qualquer aconselhamento em matéria de investimento, fiscal ou jurídica. Consulte a Declaração de exoneração de responsabilidade para obter mais informações sobre os riscos.
  • Recompensa
  • Comentar
  • Partilhar
Comentar
0/400
Nenhum comentário
  • Pino
Negocie cripto em qualquer lugar e a qualquer hora
qrCode
Digitalizar para transferir a aplicação Gate.io
Novidades
Português (Portugal)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • ไทย
  • Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)