Facebook Pixel
Como Validar o Resultado das Eleições de Forma Fácil

Como Validar o Resultado das Eleições de Forma Fácil

Após as eleições presidenciais de 2022 o Brasil viveu um grande tumulto por conta de algumas pessoas não aceitarem o resultado final do pleito. O que vou mostrar aqui é o principal motivo de suspeita e a forma muito fácil de se resolver este problema caso houvesse boa vontade dos órgãos competentes para isso.

O maior motivo de desconfiança do povo se deve a forma como evoluiu a contagem dos votos, abrindo a contagem tendo o candidato Bolsonaro à frente das contagens e a forma como o percentual de votos dele foi caindo de forma sistematicamente regular enquando os votos do candidato Lula faziam um movimento inverso, subindo de forma regular, quase linear. Sendo que este comportamento se repetiu tanto no primeiro quanto no segundo turno. A linearidade da evolução numérica não parece ser pertinente ao mundo real, onde as coisas acontecem com certa aleatoriedade. Acredito que não haveria problema nenhum se os números fossem oscilando ao longo da contagem e terminassem com o mesmo resultado final, porém a linearidade repetida tanto no primeiro quanto do segundo turno dispararam um alarme na cabeça das pessoas, principamente aquelas que já vinham contestando e veracidade do sistema brasileiro de votação há muito tempo.

Tal fato foi amparado por este gráfico, que teve ampla distribuição pela Internet e que levou muitas pessoas a desconfiarem que um algoritmo específico entrava em ação para provocar tais resultados.

Evolução de Contagem dos Votos

A Segurança do Processo

Eu já escrevi um outro artigo, há muito tempo, explicando que, apesar de ser totalmente a favor da criação de um sistema de contagem paralelo, que seria o voto impresso, considero as urnas eletrônicas muito seguras, ao ponto de dizer quase invioláveis. Caso queira entender as argumentações abra este artigo:

Uma vez que que podemos confiar nas urnas ainda temos duas etapas importante a serem avaliadas. A primeira é como os dados da urna serão transmitidos para o computador central do TSE, que fará a contagem dos votos.

Para isso, o corpo técnico do TSE desenvolveu sistema operacional próprio que tem esse único propósito. Não é como o MacOS ou Windows, que você entra e escolhe um programa roda. Esse sistema operacional não faz nada além da transmissão dos dados contidos nos pen drives para os servidores do TSE. Por ser um sistema operacional fechado ele é totalmente inviolável, não há como, por exemplo, instalar um vírus de computador que possa vir a corrompê-lo. É necessário desligar o computador, que elimina tudo o que existe na memória e ligar novamente carregando o sistema operacional do TSE.

Segue explicação do próprio órgão:
https://www.tre-df.jus.br/comunicacao/noticias/2014/Setembro/urna-eletronica-entenda-como-funciona-a-transmissao-dos-votos

Segundo a explicação, o sistema operacional abre um acesso através de VPN (Virtual Private Network) como os servidores do TSE. Tecnologia essa, sabidamente segura.

Ainda segundo o TSE, os softwares foram desenvolvidos por equipe brasileira, lotada no próprio órgão:
https://www.tse.jus.br/comunicacao/noticias/2018/Setembro/urna-eletronica-usa-tecnologia-desenvolvida-por-tecnicos-do-proprio-tse

Além de contar com farto material técnico disponível para análise, como no caso, essa documentação explicando o formato dos arquivos de log gerados pelas urnas:
https://www.tse.jus.br/eleicoes/eleicoes-2018/documentacao-tecnica-sobre-a-urna

E, para deixar bem claro esse assunto, o órgão já se posicionou dizendo que não é verdade que a empresa que fabrica as urnas tem acesso ao software:
https://www.justicaeleitoral.jus.br/fato-ou-boato/checagens/empresa-smartmatic-nao-tem-acesso-a-programa-das-urnas-software-e-desenvolvido-e-gerido-pela-justica-eleitoral/

Contando que esteja tudo seguro até este momento, vem agora a totalização final. A informação dos votos chega à sede do TSE em um supercomputador modelo Exadata X8 Full Rack, que fará a totalização final e armazenará em seu banco de dados todos os detalhes da votação. Tal equipamento é desenvolvido pela própria Oracle empresa criadora do sistema de banco de dados utilizado pelo TSE e considerado atualmente como uma das melhores soluções profissionais do segmento. O TSE conta ainda com outro supercomputador da Oracle, modelo Exadata X8 Half Rack.

Oracle Exadata X4

Como este artigo, além de técnico, é também de opinião, cabe aqui dizer que, em minha opinião, este é o único ponto obscuro. Como garantir que o software que está rodando lá naquela computador no dia da contagem é o mesmo que foi avaliado pelos testadores durante o TPS (Teste Público de Segurança)? Como garantir que o algoritmo que está rodando lá é idôneo e não tem nenhuma trapaça, como muitas pessoas vem sugerindo após a leitura do gráfico que expus no início deste texto?

Este artigo da CNN explica como funciona o acesso ao supercomputador:
https://www.cnnbrasil.com.br/politica/como-e-feita-a-contagem-de-votos-depois-do-termino-das-eleicoes/

E para quem ainda pensa que os dados de contabilização dos votos são enviados para fora do Brasil através do processo de computação em nuvem, o TSE emitiu essa nota de esclarecimento:
https://www.tse.jus.br/comunicacao/noticias/2020/Novembro/nota-de-esclarecimento-sobre-nuvem-para-contabilizar-votos

Qual a Solução? Como Não Ter Dúvidas?

1. O primeiro passo seria abrir o código-fonte do software que está rodando lá no supercomputador. Além de colocar em ambiente público, como por exemplo, o GitHub, abrir acesso para que fiscais de partidos, instituições de ensino e profissionais renomados na área possam ver o software funcionando no dia da apuração real e não apenas no TPS. Isso já seria o suficiente. O aval desses profissionais iria tirar o fator de confiança que hoje reside apenas nas mãos dos técnicos do TSE tornando-o mais amplo.

Já sei que você está se perguntando “mas tornar público o código-fonte não violaria a segurança do sistema?”. A resposta é que não, visto que tudo acontece em ambiente isolado da Internet. Quanto aos trechos de código que mostram chaves criptográficas, esses sim, permaneceriam ocultos.

2. Para a questão atual, onde houve aquela linearidade na evolução da contagem, a solução seria mais custosa porém igualmente eficiente. Uma vez que tenha sido atendido o item 1, que todas as zonas eleitorais fizessem o reenvio dos dados em uma ordem sabidamente diferente da que foi utilizada no primeiro envio. Esse gráfico, obrigatoriamente, não poderá conter linearidade, uma vez que a ordem do primeiro envio a possuía.

3. Acreditando-se que os Boletins de Urna (BU) são fidedignos, desenvolver o seu próprio software para apuração da contagem. Os referidos boletins estão publicados no site do TSE e podem ser baixados livremente.

E Por Que Nenhum Partido Reclamou Até Agora?

A resposta está nesse artigo do Senado Federal, que diz “(…) representantes dos partidos políticos, Ministério Público, Polícia Federal, Ordem dos Advogados do Brasil, Forças Armadas e observadores internacionais terão acesso à sala a partir das 16h30 de domingo.”

Ao que tudo indica, parte do que sugiro no item 1 já está sendo implementado. Resta saber se essas pessoas tem acesso aos códigos que estão sendo executados no supercomputador ou se o acesso deles é restrito à sala de operações.

O fato é que, enquanto não houver uma prova real comprovada por profissionais técnicos, de que houve fraude na contagem, não faz sentido que o povo faça manifestações no sentido de contestar o resultado final das eleições.

Luciano Reis

É Fácil Fazer Avaliação do Código-Fonte?

Não. Essa avaliação deve ser feitas por profissionais qualificados e que tenham domínio da linguagem de programação na qual foi desenvolvido o software de contagem dos votos. A parte complexa reside no fato de avaliar as rotinas que fazem as transações de tansmissão de decodificação dos dados. A parte de contagem, propriamente dita, já não é tão complexa assim. Eu vou dar um exemplo para fins didáticos, porém lembrem que serve apenas para fins didáticos. A quantidade de dados manipulada pelo supercomputador é gigantesca. O exemplo que vou mostrar funciona apenas para pequenas quantidades e não leva em consideração a concomitância de operações existentes na vida real.

CREATE TABLE Candidatos (
  Id     int          NOT NULL IDENTITY(1,1) PRIMARY KEY,
  Numero varchar(5)   NOT NULL,
  Cargo  char(2)      NOT NULL,
  UF     char(2)      NOT NULL,
  Nome   varchar(200) NOT NULL,
  Votos  int          NOT NULL DEFAULT(0)
  )
 
 INSERT INTO Candiadatos (Numero, Cargo, UF, Nome) VALUES
 ('13','PR','BR','Lula'),
 ('22','PR','BR','Bolsonaro') 
 
 SELECT Id,Numero,Cargo,UF,Nome,Votos FROM Candidatos

Após execução dos comandos acima teremos a tabela:

IdNumeroCargoUFNomeVotos
113PRBRLula0
222PRBRBolsonaro0

Vamos precisar também de uma tabela para salvar o log, o registro de todas as informações recebidas:

CREATE TABLE Log (
  Id        int        NOT NULL IDENTITY(1,1) PRIMARY KEY,
  Urna      int        NOT NULL,
  UF        char(2)    NOT NULL,
  Candidato varchar(5) NOT NULL,
  Votos     int        NOT NULL
  )

Para que o banco de dados saiba como realizar a soma dos votos, vamos criar uma rotina para isso:

CREATE PROCEDURE AdicionaVotos @Urna int, @UF char(2), 
                               @Candidato varchar(5), @Votos int
AS

BEGIN TRANSACTION

UPDATE Candidatos
SET Votos = Votos + @Votos
WHERE Numero = @Candidato AND UF = @UF

INSERT INTO Log (Urna, UF, Candidato, Votos)
VALUES (@Urna, @UF, @Candidato, @Votos)

COMMIT

GO;

Em algum ponto do código que trata as informações recebidas, bastará chamar o comando SQL:

EXEC AdicionaVotos @Quantidade = *1, @Numero = *2, @UF = *3
-- Sendo *1 substituído pela quantidade de votos
-- *2 substituído pelo número do candidato
-- *3 substituído pela UF de abrangência do candidato

E sei que já falei isso mas vou falar novamente. Lógico que um código tão simples não funciona em um ambiente onde a quantidade de requisições e massa de dados trafegada é gigantesca. O exemplo acima foi só para você ter noção de como fazemos um sistema de apuração de contagens.

Uma vez que a estrutura acima esteja montada, é possível executar comandos SQL para obter informações instatâneas do tipo:

-- Saber a quantidade total de votos de cada candidato em ordem de maior votação:
SELECT Numero, Nome, Votos
FROM Candidatos
ORDER BY Votos DESC

-- Listagem de todos os votos registrados na urna 2548:
SELECT Candidato, Votos
FROM Log
WHERE Urna = 2548

Encerro com o dever cumprido de ter prestado alguns esclarecimentos sobre o processo eleitoral e de ter lhe passado uma pequena introdução da maravilhosa linguagem SQL (Structured Query Language) utilizada para manipulação de bancos de dados.

Se você achou esse conteúdo útil ou relevante considere assinar este blog preenchendo seu e-mail no campo abaixo:

Deixe seu comentário