O sistema de votação baseado em blockchain da Rússia para as emendas constitucionais tinha uma vulnerabilidade que supostamente tornou possível decifrar votos antes da contagem oficial.

Os votantes poderiam decifrar suas próprias chaves privadas

De acordo com uma pesquisa da agência de notícias russa Meduza, quando os eleitores votavam em um site especial, os resultados eram criptografados por uma biblioteca JavaScript chamada TweetNaCl.js.

Esta é uma implementação da "Networking and Cryptography", ou NaCi, biblioteca de criptografia criada pelo matemático Daniel J. Bernstein e pelos criptógrafos Tanja Lange e Peter Schwabe.

Segundo a Meduza, o sistema de votação contava com a chamada criptografia determinística, o que significa que o uso dos mesmos parâmetros leva a textos cifrados idênticos. O remetente e o destinatário receberam uma chave compartilhada, que poderia ser usada para criptografia ou descriptografia da mensagem.

Isso significa que qualquer constituinte poderia teoricamente decifrar seu próprio voto antes de ser decifrado pela comissão eleitoral, ou mesmo permitir que terceiros o fizessem. Para fazer isso, o eleitor teve que salvar sua chave privada.

Para recuperar a chave privada, o constituinte teve que ir para a página de boletim eletrônico, abrir o console do desenvolvedor em seu navegador da web e fazer um pequeno ajuste na biblioteca selection.js (adicione logpoint, enter: voter secret key is', encryptor.keyPair.secretKey) e depois votam.

A Meduza conduziu um experimento em que todos os participantes recuperaram suas chaves privadas e foram capazes de decifrar todos os votos como resultado. 

Existe um lado positivo no bug

Segundo a publicação, teoricamente, a vulnerabilidade permite que os empregadores garantam que seus funcionários votem e até verifiquem seus votos após induzi-los a salvar suas chaves privadas. Houve relatos sugerindo que as entidades financiadas pelo Estado na Rússia pressionam seus funcionários a votar a pedido do governo.

Por outro lado, o mesmo bug poderia ser usado para aumentar a transparência da votação no cenário em que a comissão eleitoral se recusa a publicar a descriptografia de cada votação (como fez após a eleição da Duma da Cidade de Moscou em 2019, onde a blockchain também foi supostamente usada)

A Meduza elaborou: “Por exemplo, os apoiadores de um candidato específico podem concordar em instalar a mesma extensão do navegador. Dessa forma, eles podem rastrear o número mínimo de votos que seu candidato deve obter após a contagem.” 

77,9% votaram nas emendas, permitindo a Putin governar até 2036

A votação eletrônica ocorreu de 25 a 30 de junho para residentes de Moscou e Nizhniy Novgorod e foi baseada na plataforma blockchain Exonum, desenvolvida pela Bitfury. As regiões restantes só podiam votar offline.

O referendo terminou ontem, 1º de junho. Com todas as cédulas contadas, 77,9% votaram no pacote de reformas e 21,3% contra, segundo a comissão eleitoral.

Quanto aos resultados do voto eletrônico, 62,33% dos eleitores de Moscou apoiaram as emendas e 37,37% se opuseram. Em Nizhniy Novgorod, os resultados foram um pouco semelhantes: 59,69% e 40,31% dos eleitores votaram "a favor" e "contra", respectivamente.

Notavelmente, um boletim eletrônico foi considerado inválido. Conforme explicado por um funcionário do governo de Moscou, o usuário que votou interrompeu "a transação entre um clique do mouse e a inseriu na biblioteca de criptografia do seu computador". Como o blockchain pode aceitar apenas "sim" ou "não" como resposta, o sistema supostamente marcou o referido voto como inválido durante a descriptografia.

De acordo com as emendas constitucionais, os limites de mandato de Vladimir Putin serão redefinidos em 2024, o que significa que ele poderá permanecer presidente até 2036.

Leia mais: