Blockchain e o Voto

De vez em quando sou questionado sobre ideias envolvendo sistemas de votação eletrônicos, remotos e blockchains. Este post fala sobre as propriedades mínimas de segurança que um sistema de votação precisa ter, e sobre onde as blockchains ajudam e onde não ajudam. Usamos como exemplo o sistema criptografado de votação STAR-vote. Pode ser um pouco árido para os usuários não técnicos, mas também pode ser interessante para quem gosta de se envolver mais profundamente no tema.

Uma interface digital abstrata, mostrando pastas com chave pública e dados de hash escritos em código.

A comunidade de computação concorda que sistemas votação rodando em máquinas de votar modernas têm ao seu dispor processadores muito rápidos e uma quantidade enorme de armazenamento. Esse hardware moderno torna menos árdua a tarefa de implementar redes que exigem computação de alta-performance, como a Blockchain. Vamos então usar esse dado estrutural para um experimento mental:

Usando o work-flow da Blockchain, vamos colocar as máquinas de votação em rede, dentro da Blockchain. Assim, voilà, temos uma estrutura descentralizada, com uma cópia de cada voto em cada máquina de votação; podemos até usar o emaranhamento da linha do tempo, para que o histórico de cada máquina seja protegido por hashes armazenados em todas as outras máquinas. O problema da votação eletrônica está resolvido.

Em um sistema eleitoral implementado na Blockchain, todas as máquinas do sistema possuem todos os registros de votos, tornando impossível a fraude. É o mesmo esquema que legitima transações financeiras. Neste caso, a transação é o voto.

Mas qual é o ponto forte de uma blockchain? No aspecto mais fundamental, trata-se de ter um registro histórico inviolável sobre eventos. No contexto de um sistema de votação, significa que uma blockchain é um lugar perfeito para armazenar cédulas e proteger sua integridade. O STAR-Vote e muitos outros sistemas de votação criptografados “ponta a ponta” adota o conceito de “quadro público de avisos” para onde os votos criptografados são enviados para armazenagem até a contagem. Blockchain é a maneira óbvia de implementar o quadro público de avisos.

Cada eleitor do STAR-Vote sai do local de votação com um “recibo” que é apenas o hash de sua cédula criptografada, que por sua vez tem o hash da cédula do eleitor anterior. Em outras palavras, todos os eleitores do STAR-Vote deixam o local de votação com um ponteiro para a blockchain que pode ser verificado de forma independente.

Acontece que mesmo os sistemas de votação baseados em blockchain precisam de muitas propriedades de segurança adicionais antes que possam ser efetivamente confiáveis. Aqui está uma lista simplificada, empregando algum vocabulário típico desta área de estudos para referenciar essas propriedades.

Propriedade “Votado como pretendido”.

Um eleitor está olhando para uma tela de algum tipo e escolhe em um botão: “Alice para presidente”. A máquina de votação prontamente indica isso com um pop-up, ou algum texto destacado, ou sons. Contudo, é totalmente possível que algum malware dentro da máquina possa registrar silenciosamente o voto como “Bernie para presidente”. Portanto, qualquer sistema de votação precisa de um mecanismo para derrotar malware que ameace comprometer a integridade da votação.

Nota: Uma abordagem interessante aqui [e já consagrada pelo costume americano] é ter cédulas de papel impressas (e/ou cédulas de papel marcadas à mão) que podem ser comparadas estatisticamente às cédulas eletrônicas. Outra abordagem é ter um processo pelo qual a máquina pode ser “desafiada” a provar que criptografou corretamente a cédula.

Propriedade “Votado em privacidade”.

É importante que não seja possível identificar um eleitor em particular pela forma como ele votou. A votação moderna deve garantir que os votos sejam secretos, com várias medidas tomadas para tornar difícil ou impossível para os eleitores violarem esse sigilo.

Quando se deseja manter a propriedade de privacidade eleitoral nas máquinas da votação, significa que deve-se evitar que a máquina retenha o estado interno (ou seja, mantenha em seus circuitos uma lista dos votos em texto aberto, na ordem de votação) e também deve garantir que o texto cifrado dos votos, publicado na blockchain, não está vazando silenciosamente, por meio de canais subliminares, informações sobre o texto aberto que o gerou.

Propriedade “Contado como votado”.

Se temos eleitores levando para casa um recibo de algum tipo que identifica seu voto de texto cifrado na blockchain, então eles também podem querer ter algum tipo de prova criptográfica de que a contagem final do voto inclui seu voto específico. Isso acaba sendo uma aplicação direta de primitivos criptográficas homomórficos.

Se olharmos para essas três propriedades, é possível notar que a blockchain não ajuda muito com as duas primeiras, embora seja muito útil para a terceira.

Atingir a propriedade “votado como pretendido” requer uma variedade de mecanismos que vão de cédulas de papel a desafios pontuais para máquinas. A blockchain protege a integridade do voto registrado, mas nada tem a dizer sobre sua fidelidade à intenção do eleitor.

Para alcançar uma propriedade “votado em privacidade”, é necessário bloquear o software na plataforma de votação e, nesse caso, bloquear a máquina de votar. E como essa propriedade de bloqueio pode ser verificada? Precisamos de garantias fortes que possam ser verificadas de forma independente. Também precisamos garantir que o usuário não possa ser enganado e levado a executar um aplicativo de votação falso. Podemos conseguir isso no contexto das urnas eletrônicas comuns, que são utilizadas exclusivamente para fins de votação. Podemos implantar centralmente uma infraestrutura de chave criptográfica e colocar controles físicos sobre o movimento das máquinas.

Mas, se estendermos este experimento mental para incluir o voto pela Internet, um desejo comumente expresso pelo público de alguns países [que talvez aconteça], veremos que não temos infraestrutura hoje para fazer isso usando telefones celulares e computadores pessoais – e provavelmente não a teremos nos próximos anos. O voto remoto [em casa, no escritório, na rua] também torna excepcionalmente fácil para um cônjuge, um chefe ou um vizinho vigiar por cima do seu ombro e “ajudá-lo” a votar da maneira que eles querem que você vote.

As blockchains acabam sendo incrivelmente úteis para verificar a propriedade “contado como votado”, porque obriga todas as máquinas do sistema a concordar com o conjunto exato de cédulas que está sendo tabulado. Se um funcionário eleitoral precisar desqualificar uma cédula por qualquer motivo, esse fato precisa ser público e todos precisam saber que uma cédula específica, ali na blockchain, precisa ser descontada, caso contrário, a matemática criptográfica não vai fechar.

Concluindo, é fácil ver como as blockchains fornecem elementos primitivos excepcionalmente úteis, que podem ajudar a construir sistemas de votação em que a contagem final é consistente com os registros de votos lançados. No entanto, um bom sistema de votação precisa satisfazer muitas propriedades adicionais que uma blockchain não pode fornecer. Embora haja uma certa sedução intelectual em fingir que votar não é diferente do que mover criptomoedas em uma blockchain, a realidade do problema é um pouco mais complicada.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s