Você está na página 1de 18

Tecnologia blockchain em sistemas eletrônicos de votação:

uma abordagem para Internet


Felipe A. A. Retondar1 , Ítalo A. Aguiar1 , Rafael L. Alencar1 , Roberto T. S. Freire1 ,
Rodrigo Cardoso Silva1

1
Faculdade de Computação de Informática – Universidade Presbiteriana Mackenzie
(UPM) - São Paulo, SP - Brasil
{31617212,31928900,31986773,31946968}@mackenzista.com.br,
rodrigo.cardoso@mackenzie.br

Abstract. The digital era offers a welcoming environment for the pursuit of te-
chnology innovation in various technological areas, for example in the field of
Internet voting system. However, researchers of this field claim that the internet
voting system can be very risky. This study aims to create a secure environment
to protect Internet voting (i-voting) systems, by using blockchain technology,
more specifically, the Solana blockchain network. That environmnet respect the
anonymity, integrity and transparency principles. This research does not aim
at an eletronic voting (e-voting) process as a whole, but to study and create a
proof of concept around that topic, promoting scientific study to raise security
and reliability in the whole election process.

Keywords: Blockchain, Solana, Authenticity, Integrity, Transparency, I-voting

Resumo. Com o rápido avanço das tecnologias da informação na era digital,


existe um cenário propı́cio para a busca de inovações na área de tecnologia da
informação, como o processo de votação pela Internet. No entanto, estudiosos
no assunto afirmam que um processo de eleição pela Internet é bastante arris-
cado. Utilizando a tecnologia de blockchain e sua derivação chamada Solana
pretende-se criar um ambiente seguro para a votação que respeite os princı́pios
do anonimato, integridade e transparência. Esta pesquisa apresenta como es-
copo, não um processo eletrônico de votação em escala majoritária, mas apre-
sentar uma prova de conceito no tema com viés de promover estudo cientifico
de modo a ampliar a segurança e confiança no pleito eleitoral.

Palavras-chave: Blockchain, Solana, Autenticidade, Integridade, Transparência, I-voting

1. Introdução
De acordo com as acepções de Silva [2020], a era digital é regida pela realidade hı́brida
no ambiente imersivo e interativo da Internet, tornando-se o cenário propı́cio para buscar
inovações na área da tecnologia da informação.
Neste sentido, o objeto desta pesquisa é o processo eletrônico de votação no campo
remoto, ou seja, abordar o processo de votação pela Internet com o uso da tecnologia
blockchain denominada de Solana.
A proposta deste estudo está fundamentada nas afirmações de Ro-
drigo Silva que expõe o desafio e a oportunidade da pesquisa no tema:

Após o surgimento da votação eletrônica ou electronic voting (e-


voting) em 1836, a ideia de votação pela Internet ou Internet vo-
ting (i-voting) ganha status no ano de 1978 com o projeto Televote,
tornando-se o primeiro sistema de e-voting hı́brido com conexão re-
mota de dados. Consequentemente, no ano de 1982 a terminologia
i-voting é potencializada com adoção de técnicas de criptografia com-
putacional para manter o sigilo do voto. Anos mais tarde, o advento
da Internet na década de noventa estimula a votação pela Internet para
se tornar um fenômeno natural e emergente para a sociedade global.
Em 1999, o ex-presidente Bill Clinton escreve em memorando para
a National Science Foundation aplicar pesquisas cientı́ficas com sis-
temas de i-voting para as eleições nos Estados Unidos da América
(EUA), porém estudiosos no assunto afirmam que um processo de
eleição pela Internet é bastante arriscado. De acordo com o mapa de
tecnologias para sistemas de votação da Competence Center for Elec-
tronic Voting - E-Voting.CC, os anos entre 2009, 2011 e 2015 mostram
os paı́ses que adotam ou projetam um modelo de votação eletrônica
ou votação pela Internet para eleições locais ou nacionais. Não obs-
tante, o mapa também exibe as nações que renunciaram algum mo-
delo tecnológico de votação adotado em determinado tempo e gover-
nos que não discutem qualquer forma de implementação no futuro.
Em face dos avanços tecnológicos que perduram anos de tradições
em eleições – desde Atenas 507 a.C., eu entendo que os sistemas de
e-voting e i-voting são parte do processo de transformação digital dos
governos que, em tempo, podem encontrar um modelo hibrido para
tornar o processo democrático mais transparente para sociedade civil
e, ao mesmo tempo, coibir comportamentos maliciosos nas eleições
[Silva 2020].
Com base na exposição acima, a pesquisa pretende abordar e elaborar parte do
processo eleitoral com a tecnologia blockchain.

1.1. Motivação e Objetivo

A motivação da pesquisa é dar continuidade as demais investigações realizadas para pro-


cessos de votação pela Internet com o objetivo de contribuir para a comunidade cientı́fica.
Com isto, a proposta entende que há o desafio tecnológico em aplicar a tecnologia
blockchain em processos eleitorais, seja no setor público ou privado.
O escopo da pesquisa não contempla abordar um processo eletrônico de votação
pela Internet em escala majoritária, mas apresentar uma prova de conceito no tema com
o viés de promover estudo cientifico para ampliar a segurança e a confiança no pleito
eleitoral.
A pesquisa observa dois desafios. O primeiro é o dilema exposto por Rodrigo
Silva:
Os métodos aplicados no processo das cédulas eletrônicas são ques-
tionados em qualquer processo eletrônico, promovendo-se, assim,
um dilema entre os princı́pios do anonimato, integridade e trans-
parência, todos consubstanciados pela OSCE/ODIHR para garantir
a consecução plena no processo de votação pela Internet. Não se
pode negar que o dilema em si faz objeção ao nı́vel de medidas tec-
nológicas que são necessárias para buscar uma ou mais saı́das que não
sejam contraditórias e igualmente insatisfatórias do ponto de vista da
segurança da informação no sistema de i-voting. Importante se faz
ressaltar também que no contexto dos dilemas principiológicos do
processo de votação, o anonimato é para ocultar o voto da inter-
relação com o eleitor (sigilo do voto), e não o eleitor propriamente
dito - one person, one vote; a integridade é o fato de que a cédula
eletrônica não deve ser adulterada por qualquer pessoa durante todo
o processo eleitoral; e a transparência é o poder de observar o curso
regular da votação pela Internet de ponta a ponta para ter certeza de
que o anonimato e a integridade estão incólumes [Silva 2020].
O segundo desafio da pesquisa é adoção da tecnologia blockchain e a sua derivação
chamada Solana que, por ser uma tecnologia recente, não ha muitas contribuições na
comunidade cientifica e no setor privado.

2. Referencial Teórico

Os conceitos abordados para a construção deste estudo estão divididos a seguir em três
seções principais. Na primeira é apresentada a tecnologia e os principais conceitos de
blockchain. A seguir uma visão sobre sistemas de votação web. Por último, será apresen-
tada a blockchain Solana escolhida para o desenvolvimento do estudo.
O referencial teórico ou estado da arte do trabalho de pesquisa esta fundamentado
nas pesquisas de SILVA [2020], ZHENG [2018], NAKAMOTO [2008], NOFER [2017],
SWANSON [2015] e LAMPORT [2019].
Segundo SILVA [2020], a proposta de voto pela Internet é um fato emergente no
cenário internacional. O estudioso apresenta posição mais conservadora para sistemas de
votação pela Internet, pois ainda são bastante suscetı́veis à fraudes e vulnerabilidades, fa-
tos que prejudicam a confiança em qualquer sistema eletrotônico de votação. No entanto,
ele afirma que o tema necessita de mais pesquisas para aprimorar ainda mais o debate na
comunidade cientı́fica.
Ambos ZHENG [2018] e NOFER [2017] realizam um estudo descrevendo a tec-
nologia blockchain da perspectiva técnica. Os pesquisadores descrevem a taxonomia, a
estrutura da blockchain, a estrutura dos blocos e os principais algoritmos de consenso. Os
estudiosos também analisam as aplicações da tecnologia e dificuldades técnicas.
NAKAMOTO [2008] descreve a utilização da tecnologia de blockchain para a
criação de uma moeda eletrônica peer-to-peer para a realização de transações monetárias
sem a necessidade do intermédio de uma instituição financeira.
SWANSON [2015] realiza uma comparação entre sistemas de criptomoedas ‘per-
missionless’ e sistemas de registros distribuı́dos ‘permissioned’.
2.1. Blockchain

A blockchain consiste na estrutura de dados descentralizada composta da


sequência de pacotes de dados (chamados blocos) onde cada bloco armazena
múltiplas transações [Nofer M. 2017]. A blockchain é estendida a cada bloco
adicionado e, por tanto, representa o histórico completo de transações rea-
lizadas. Cada bloco aponta para o bloco anterior através da referência que
consiste essencialmente do hash do bloco anterior [Zheng et al. 2018]. O pri-
meiro bloco é chamado de genesis block, por isto, não possui bloco anterior.

A Figura 1 demonstra uma blockchain onde TX 1-n representa as transações per-


tencentes ao bloco.

Figura 1. Exemplo de blockchain [Nofer M. 2017]

A rede pode validar um bloco através de métodos de criptografia [Nofer M. 2017].


Além das transações e a referência ao bloco anterior cada bloco possui uma timestamp e
um valor aleatório utilizado na validação do hash do próprio bloco. Os valores de hash
são únicos e a alteração de qualquer dado do bloco gerará alteração no valor causando
inconsistência na blockchain e, como consequência, a detecção da alteração.
As principais caracterı́sticas da blockchain são [Zheng et al. 2018]:

• Descentralização: Ao contrário de sistemas centralizados, onde cada transação


é validada por um único agente, uma transação em uma blockchain tem sua
validação realizada por dois ou mais nós, reduzindo custos e reduzindo gargalos.
• Persistência: Como cada transação é validada e armazenada por todos os nós da
rede torna-se praticamente impossı́vel de se alterar um bloco. Além disso, todo
bloco transmitido para rede seria validado pelos outros nós detectando qualquer
tentativa de fraude.
• Anonimato: Não existe nenhum agente central com informações dos usuários da
rede e cada usuário interage com a blockchain por um ou mais endereços gerados.
• Auditabilidade: Como todas as transações em uma blockchain são validadas e
possuem uma timestamp, os usuários podem facilmente verificar e rastrear os re-
gistros anteriores acessando qualquer nó da rede distribuı́da.

Para a adição de um novo bloco na rede é necessário que a maioria dos nós pre-
sente na rede blockchain, por um mecanismo de consenso, aprovem a validez de suas
transações e do bloco em si [Nofer M. 2017]. Esse mecanismo de consenso consiste em
um conjunto de regras e procedimentos que permite manter a coerência dos dados entre
os diversos registros distribuı́dos [Swanson 2015].
2.1.1. Bloco

Cada bloco em uma blockchain consiste no cabeçalho e no corpo [Zheng et al. 2018].
O corpo da bloco consiste no número de transações presentes no bloco e as próprias
transações, enquanto o cabeçalho inclui:
• Versão do bloco: mostra as regras de validação do bloco.
• Hash do bloco anterior: O valor hash que aponta para o bloco anterior.
• Hash da raiz da Merkle Tree: Utilizado para validar todas as transações presentes
no bloco.
• Timestamp: a marcação de tempo do bloco.
• nBits: Valor máximo para a geração do hash do bloco.
• Valor aleatório: O valor utilizado para gerar o hash
Para o novo bloco ser adicionado na blockchain é necessário que suas transações
e integridade sejam validadas através do algoritmo de consenso [Nofer M. 2017].

2.1.2. Algoritmo de Consenso

A maneira de atingir um consenso entre os vários nós da rede é uma adaptação do Pro-
blema Generais Bizantinos (PGB) [Lamport et al. 2019]. No PGB um grupo de generais
bizantinos cercam com seus exércitos uma cidade. O ataque apenas terá sucesso caso
todos os generais decida atacar, por isso os generais devem comunicar entre si e chegar a
um acordo sobre atacar ou não. Porém, pode existir um traidor.
Devido à blockchain ser descentralizada, atingir um consenso se torna ainda mais
difı́cil, visto que não existe um nó central que garante que a blockchain é igual para todos
os nós[Zheng et al. 2018].

2.1.3. Proof of Work

Proof of Work é um algoritmo de consenso que consiste em vários nós da rede, cha-
mados mineradores, procurarem um valor que, quando usado como entrada da função
hash, retorne um valor que comece com um número determinado de bits de valor zeros
[Nakamoto 2008]. O cálculo do hash válido demanda de alto poder computacional e uso
de energia, ambos amplificados pela quantidade de nós mineradores, e tem sua dificuldade
exponencialmente proporcional a quantidade de zeros necessários e pode ser verificado
com uma execução da função hash. Na rede bitcoin é utilizado o incremento no nonce
do bloco até a geração do hash válido, tendo o valor validado pelos outros nós da rede.
Por ser descentralizada é possı́vel que mais de um nó descubra um valor de nonce válido
gerando bifurcações na estrutura da blockchain [Zheng et al. 2018]. Porém, é extrema-
mente improvável que duas ramificações gerem o bloco seguinte ao mesmo tempo. No
Proof of Work a ramificação mais longa é considerada a autêntica.

2.2. Solana Blockchain


De acordo com a documentação, Solana pode ser definida como uma blockchain permis-
sionless de alta performance [Solana Foundation 2022]. Nas palavras dos analistas da
empresa Coinbase, Solana pode ser definida como uma blockchain que consegue alcançar
altas velocidades de transação sem perder umas das principais caracterı́sticas da rede
blockchain que é a descentralização [Coinbase 2022].
Comparativamente blockchains podem ser tanto públicas quanto privadas. As
públicas, também conhecidas como permissionless, são caracterizadas por permitir que
qualquer indivı́duo participe e contribua para a rede. Já a segunda, é caracterizada por ter o
poder centralizado em alguma entidade como por exemplo uma empresa, governo, banco,
entre outros. Esses agentes ficam responsáveis por controlar os acessos dos participantes
da rede [FRANKENFIELD 2022].
A performance de blockchains pode ser medida em termos de latency, o tempo
médio de resposta de um sistema, e throughput como o tempo em que se leva para proces-
sar as requisições em um determinado espaço de tempo [Xiwei Xu 2019]. Nas principais
blockchains Bitcoin e Ethereum estes dois ı́ndices de performance são pouco relevantes
quando comparados com sistemas convencionais não blockchain. A primeira, o Bitcoin
apresenta um throughput médio de 7 transações por segundo ou TPS [Swan 2015], já a
Ethereum 20 TPS. Quanto a latency a Bitcoin consegue gerar seis blocos confirmados a
cada 10 minutos enquanto Ethereum gera 12 blocos confirmados a cada 15 segundos.
Segundo Anatoly Yakovenko (2019) criador da Solana, o throughput da rede pode
alcançar 50.000 TPS e o principal motivo é pela inovação no funcionamento do algorı́timo
de consenso da rede, formada pela combinação do algorı́timo de consenso Proof of Stake,
utilizado também por outras redes, com o novo algorı́timo chamado pela empresa de
Proof of History [Xiwei Xu 2019]. A empresa Cointelegraph caracteriza Solana como
única pelo fato de combinar os algorı́timos citados anteriormente [Cointelegraph 2022].
Os conceitos sobre algorı́timo de consenso e o impacto na performance da rede
serão apresentados nos tópicos abaixo.

2.2.1. Proof of Stake

Proof of Stake é um algorı́timo de consenso alternativo ao Proof of Work, descrito no


tópico 2.1.3 deste trabalho, utilizado pela Solana. O algorı́timo tem como premissa re-
solver alguns problemas observados ao longo do tempo com utilização do Proof of Work
[Zheng et al. 2018].
Um dos principais problemas é o custo computacional necessário para mineração
da moeda, citado também no tópico 2.1.3 deste trabalho. Que além de gastar
uma grande quantidade de energia elétrica, chegando a 0,5% do consumo mundial
[Cambridge Centre for Alternative Finance 2021], impulsionou os mineradores a utiliza-
rem seus ganhos com a rede, dentre outras fontes de renda, a aumentarem seus investimen-
tos em hardware construindo uma maior barreira de entrada para novos mineradores. Tal
barreira se da pelo fato de que quanto maior poder computacional maior a probabilidade
de minerar o próximo bloco e assim aumentando os seus ganhos.
Com todas as dificuldades criadas pelo algorı́timo, pequenos mineradores passa-
ram a integrar mining pools, grupo de mineradores que dividem sua capacidade compu-
tacional para resolverem os hashs, e consequentemente seus ganhos, o que se apresentou
como uma melhor solução do que simplesmente abandonar a mineração por conta de
componentes de hardware obsoletos em comparação aos dos outros competidores da rede
[Peercoin Foundation ].
A solução do Proof of Stake para os problema citados anteriormente é baseada
na seleção dos validadores. Os validadores são selecionados com base na quantidade de
moedas que pertencem da rede, eliminando a necessidade da competição para resolver o
hash e diminuindo drasticamente a necessidade de poder computacional e consequente-
mente uso de energia elétrica. É possı́vel ainda estender esse funcionamento não limi-
tando a escolha somente pela quantidade de moedas [Xiwei Xu 2019]. Como é exemplo
da rede Peercoin (A primeira blockchain a utilizar o algorı́timo de Proof of Stake) que re-
aliza um sorteio para selecionar seus nodes validadores levando em consideração critérios
como quantidade de moedas adquiridas e o tempo em que o usuário pertence as moedas
[Peercoin Foundation 2022].
De acordo com a revista Forbes em 2019, a migração dos mineradores para mi-
ning pools aumenta a preocupação com a centralização do poder nas redes [Torpey 2019].
Pelo fato de que as mining pools são compostas por uma maioria e a aprovação dos blocos
acontece por meio de votação onde a maioria é quem define quais são as transações vali-
das, tais representantes de uma maior parcela de poder poderiam aprovar transações ma-
liciosas e comprometer o funcionamento da rede [Peercoin Foundation ]. Paralelamente
no mapa de mineração de Bitcoin desenvolvido pela faculdade Cambridge, apresenta a
mesma preocupação com o problema da maioria em um nı́vel geográfico onde se a maio-
ria é representada por um paı́s, pode resultar os mesmo problemas de controle total sobre
a rede [Cambridge Centre for Alternative Finance 2021].
O algorı́timo de Proof of Stake é menos passı́vel a esse comportamento de maio-
ria, dado que os validadores são selecionados baseados na quantidade que pertencem da
moeda e seria necessário uma quantidade gigantesca de moedas para tornar tal comporta-
mento possı́vel [Peercoin Foundation ].

2.2.2. Proof of History

Conforme descrito no whitepaper da Solana, o algorı́timo de Proof of History foi criado


para que os nodes da rede consigam de forma independente validar o acontecimento dos
eventos de transações ao longo do tempo [Yakovenko 2017], diferentemente de outras
redes blockchain, onde é imposto que todos os nodes aguardem e concordem entre si que o
tempo passou entre os eventos e que podem seguir para o próximo processo de validação.
Anatoly Yakovenko (2019), CEO da Solana argumenta que tal estratégia segue a lógica
em que cada node mantém seu próprio clock diminuindo a dependência geral da rede e
garantindo um aumento de transações por segundo (TPS).
Os nodes responsáveis, executam a validação utilizando um único core pelo
fato de que é importante seguir a ordem em que os eventos aconteceram, o que não
seria possı́vel se utilizado diversos cores, tornando quase impossı́vel prever o output
[Yakovenko 2019]. Esse processo utiliza de funções de criptografia unidirecional, aumen-
tando a segurança, a descentralização e o tornando o resultado impossı́vel de ser previsto
ou revertido [Yakovenko 2019].
Além dos algorı́timos descritos acima, um outro diferencial da rede é a
implementação de Smart Contracts, que são formas diferentes de firmar acordo entre
duas partes além de transações monetárias. Tal diferencial será utilizado na construção do
algorı́timo de votação deste estudo descrito mais a frente no tópico 3 [Swan 2015].

2.3. Sistema de votação


O sistema de votação consiste em um conjunto de técnicas apoiados pela
legislação de cada paı́s que define como o processo de eleição será regido
[O’Connor and Robertson 2002]. Na sociedade atual, existem dois tipos de sistemas de
votação: o tradicional, também chamado de manual, e o eletrônico [COSTA 2008].
O conceito de usar recursos eletrônicos para processos democráticos ganha re-
levância após o fim da Segunda Guerra Mundial para aumentar a participação dos ci-
dadãos na escolha de seus lı́deres, sofrendo diversas alterações de acordo com os avanços
tecnológicos. Esses sistemas eletrônicos também são chamados de eletronic voting (e-
voting) [Silva 2020].

2.3.1. E-voting

O e-voting é um sistema composto de software, hardware e outros processos que garantem


que o eleitor consiga informar sua opção de voto eletronicamente, registrando sua escolha
por meio da cédula eletrônica, ou eletronics ballot (e-ballot). Apesar disso, o sistema
ainda é suscetı́vel à fraude [Silva 2020].
Existem cerca de 120 pontos de falha que podem levar ao mal funcionamento do
sistema, entre elas, o uso de programas com códigos maliciosos, indisponibilidade do
sistema e ataques ao sistema de comunicação sem fio [Norden 2006]. Por causa disso,
os estudiosos procuram eliminar essas falhas ao mesmo tempo que buscam desenvolver
um modelo menos vulnerável à fraudes e invasão de agentes. A expressão e-voting é
considerada uma terminologia geral para todos os meios de votação eletrônica, já que
é possı́vel associar parte do processo desse sistema à Internet, tornando-se um sistema
hı́brido (internet voting ou i-voting) [Silva 2020].

2.3.2. I-voting

Neste sistema, a cédula eletrônica não é mais armazenada na urna eletrônica, mas encami-
nhada através de um link de comunicação para um servidor de dados central. O processo
é efetuado através de uma conexão com a Internet por meio de auxı́lio de um microcom-
putador pessoal, que não está na gestão fı́sica do responsável pela eleição [Silva 2020].
Existem três modelos conceituais desse sistema [R. Michael Alvarez 2003], sendo
estes:
• kiosk Internet voting
• polling place Internet voting
• precint Internet voting
Os dois primeiros modelos referem-se à um microcomputador em local supervi-
sionado pela autoridade eleitoral, enquanto que apenas o último modelo permite que o
eleitor vote usando a Internet em qualquer lugar e sem qualquer controle fı́sico de algum
órgão responsável. Entretanto é necessário informar que os riscos são ainda mais poten-
cializados, visto que as comunicações através da Internet não abrangem apenas às partes
conectadas, mas também terceiros que podem não compor o órgão responsável, por isso o
sistema precisa achar uma maneira de impossibilitar que esses elementos se tornem uma
falha para o processo [Silva 2020].
Entre os diversos problemas técnicos de segurança do sistema i-voting
[Jones 2000], estes são considerados os principais:
• autenticação eletrônica do eleitor;
• integridade da cédula eletrônica;
• confiabilidade no meio da transmissão e armazenamento dos votos;
• votação múltipla segura;
• defesa do sistema de votação no ambiente dos eleitores e do governo responsável;

3. Metodologia
Segundo Silva (2020) em sistemas de votação majoritária existe um dilema na construção
de um sistema de i-voting que garanta os princı́pios de anonimato, integridade e trans-
parência. Apesar de não buscar uma solução em escala majoritária, este estudo tem como
objetivo utilizar a tecnologia blockchain a fim de criar um processo de votação online,
garantindo autenticidade, integridade e transparência.
De acordo com TSE (Tribunal Superior Eleitoral) em 2022, a integridade em uma
votação é a caracterı́stica que define que os votos depositados não serão alterados em
nenhum momento durante o processo de votação. Esse processo é realizado por uma em-
presa terceira e ocorre momentos antes da eleição onde são comparados votos realizados
em uma urna de teste com o output da mesma. Comparando a solução apresentada neste
trabalho, a integridade dos votos não teria necessidade de ser verificada por um órgão ex-
terno, a própria rede blockchain ficaria responsável por garantir a integridades dos blocos
gerados [Secretaria de Comunicação e Multimı́dia 2022].
O conceito de autenticidade dentro do contexto de votação visa identificar um
votante e garantir que este vote apenas uma vez. A autenticação do votante pode ser
realizada de diversas formas: i) Something you have, baseado em algo único que o votante
possui, como um documento; ii) Something you are, baseado em caracterı́sticas fı́sicas do
votante, como dados biométricos; e iii) Something you know, baseado em coisas que
apenas o votante deveria saber, como uma senha.
A transparência em uma eleição procura aumentar a confiança dos votantes no
sistema, que podem ter dúvidas se os votos dados nas urnas são os mesmos contados no
fim. No contexto de votações eletrônicas existem vários meios de conquistar uma maior
transparência, como disponibilizar código-fonte, realização de testes públicos, publicação
dos registros das urnas, sem comprometimento da anonimidade, entre outros.

3.1. Solução proposta


Esta pesquisa aborda como solução a aplicabilidade da blockchain Solana para criar um
ambiente controlado de votação com foco nas caracterı́sticas de transparência, integridade
e autenticidade descritas acima, optando pela não garantia do anonimato em virtude do
dilema existente na garantia plena das caracterı́sticas citadas.
A pesquisa irá abordar o funcionamento total de um processo de votação usando o
sistema de i-voting, aonde o usuário precisará usar uma carteira da blockchain Solana para
realizar o cadastro à aplicação. Além disso, essa carteira também será necessária para que
o usuário possa votar e criar suas próprias enquetes dentro do sistema. Após o voto ser
registrado com sucesso, também será possı́vel que o votante acompanhe o progresso dos
resultado dessa votação em tempo real.
A principal motivação para a escolha da blockchain Solana deu-se pois, de acordo
com a documentação, uma blockchain desde o inı́cio focada em operações em larga escala
[Solana Foundation 2022], além de ter semelhanças técnicas com outras blockchains.
Entre essas semelhanças, se encontram por exemplo os Programs, tradução
da Solana para os snippets (pequenos pedaços de códigos) executáveis na blockchain
[Solana Foundation ], chamados mais comumente de Smart Contracts, como no caso da
blockchain Ethereum. [Ethereum Foundation ]
A rede blockchain da Solana ainda conta com baixı́ssimas taxas de transação, da-
dos persistidos protegidos por encriptação hash e a confiabilidade da informação, devido
a sua origem de algoritmo P2P (peer to peer), onde todos os nodes tem acessos a mesma
informação, assegurando-a. [Solana Foundation 2022]
Outro motivo para a escolha da Solana é sua linguagem de programação base, o
Rust, uma linguagem que facilita o processo de desenvolvimento por ter como objetivo
principal a identificação de problemas no momento da compilação e mensagens de erro
de fácil entendimento contando, inclusive, com possı́veis soluções.

3.1.1. Solução: Integridade da Votação

Como abordado nos tópicos anteriores deste estudo uma blockchain é baseada no conceito
de validação P2P garantindo a integridade onde todos os nós conectados são responsáveis
por validarem o conteúdo dos blocos. Dessa forma seria praticamente impossı́vel alterar
o conteúdo de um bloco, ou seja, o conteúdo de um voto.
Considerando um cenário hipotético onde um bloco alterado é submetido a rede
iniciaria um processo de validação onde todos os nós validariam a sua versão com a do
novo bloco. Uma vez em que a maioria tem uma versão diferente do bloco submetido
esse bloco é descartado.

3.1.2. Solução: Transparência do sistema

Para solucionar as questões de transparência do projeto, além do fato da blockchain já ter
seu rastreio de transações como citado no tópico 2.1, o sistema conta com a contabilização
dos resultados em tempo real, exibindo votos totais por opção possı́vel e sua porcentagem
dos votos totais. O código fonte do sistema também está completamente disponı́vel pu-
blicamente no repositorio do front-end1 e Program2 do projeto.
1
https://github.com/itodevio/solana-voting-system-frontend
2
https://github.com/itodevio/solana-voting-system-program
3.1.3. Solução: Autenticação da Votação

A solução criada consiste em, dentro do Program na Solana, adicionar a chave pública
da carteira do usuário em uma lista dentro do estado da votação/enquete corrente no mo-
mento de realizar seu voto. Antes de contabilizar o voto, é analisado se a chave pública do
usuário já se encontra dentro dessa lista e em caso positivo (que significaria que o eleitor
já realizou seu voto nesta votação especı́fica) a transação é rejeitada e é exibida a tela com
os dados dos resultados. Dessa forma, para maior maleabilidade e economia de recur-
sos, a autencidade se da como uma paridade de voto por carteira digital, ao invés de voto
por pessoa fı́sica, propriamente dito. De qualquer modo, como explicado posteriormente
nas conclusões, é possı́vel tornar essa autenticação em uma paridade de voto por pessoa
garantindo a existência de uma única carteira digital por eleitor.

3.1.4. Funcionamento da Solana no Projeto

Tendo definido os problemas presentes no Internet Voting e como é possı́vel usar a Solana
para ajudar nesses obstáculos, essa pesquisa, agora, irá destacar como essa blockchain
interage com esse sistema para alcançar esses benefı́cios.
A Solana servirá como a camada de aplicação para esse projeto, se responsabi-
lizando assim por controlar a lógica por trás do processo de voto e controle de voto em
cada instância dela, agindo como o back-end do sistema.
A Figura 2 demonstra a relação do estado com o funcionamento da aplicação,
onde a estrutura PollOption representa a opção de voto; StarSollError é uma estrutura
que define os erros possı́veis de ocorrer na aplicação; Poll é a classe da votação em si, que
utiliza-se da estrutura PollOptions para ter sua lista de opções, uma lista de chave pública
dos eleitores para validação, e seus métodos de inicialização (instância do programa) e
voto. O Program<Poll> é a instância da classe Poll, ou seja, uma única votação especı́fica
rodando na blockchain, e tem como objetivo ser a interface de comunicação com o exterior
(front-end).

Figura 2. Diagrama de Classe do Projeto [Autoria Própria]

É importante notar que o Program<Poll>, isto é, a instância da votação, recebe


um parâmetro padrão provido pelo framework Anchor em todos os seus métodos chamado
ctx, que tem como tipo a classe Context, permitindo o acesso às Accounts (entidades
que interagem na blockchain, por exemplo o eleitor e o próprio Program) descritos pela
interface passada a ele (Vote e Initialize nesse caso).
De forma prática, a Solana, executará 2 tipos de ações, listadas a seguir.
A primeira ação é a de criação da enquete. O fluxo começa o usuário se auten-
ticando, e então listando as opções que deseja ter disponı́veis para voto. Neste ponto, o
front-end envia esses dados através de uma requisição RPC para o Program dentro da
Solana, que por sua vez recebe esses dados bem como o assinante da requisição (carteira
digital responsável pela criação da votação e pagamento da taxa de instância do Program
(cerca de R$0,203 ). O Program é criado, e com ele o estado da votação, transformando
as opções (enviadas previamente como texto) no objeto de PollOption, com seus votos
zerados. É enviado de volta para o front-end uma chave pública gerada pela blockchain
que representa a a votação criada, para que o usuário compartilhe com os eleitores.
Uma vez criada pode-se executar a segunda ação, onde usuários votam através
do código gerado, selecionando sua opção desejada no front-end, que envia o ID dessa
respectiva PollOption e a chave pública do eleitor numa nova requisição para o Program,
que a armazena para impedir futuras tentativas de voto da mesma chave, incrementa o
valor de votos totais da opção escolhida e retorna ao front-end o estado atual da votação.
Vale ressaltar que qualquer transação (nome dado a qualquer requisição para o
Program), além de sua taxa especı́fica (como os R$0,20 no caso da criação), é cobrado a
taxa de transação base da rede, em média inferior a R$0.000023 .
Os fluxos em BPMN, que representam as interações para criação de uma enquete
e votação, descritas nos parágrafos acima é apresentado nas Figura 3 e Figura 4:

Figura 3. Fluxo de criação de uma enquete [Autoria Própria]

3
na cotação da rede de desenvolvimento, na data de escrita deste artigo.
Figura 4. Fluxo de votação em uma enquete [Autoria Própria]

3.1.5. Infraestrutura da solução

A plataforma será construı́da com tecnologia web utilizando a biblioteca React que se
comunicará com o Program dentro da rede da Solana por meio de chamadas RPC (Re-
mote Procedure Call, é uma tecnologia que providencia um padrão de comunicação de
alto nı́vel com o sistema), executadas pelo framework de conexão com a rede Solana
chamado Anchor [Project Serum Anchor ]. A utilização destas tecnologias se da pela
recomendação da própria rede Solana.
No Program estão programadas todas as regras de negócio necessárias para a
execução do processo de votação proposto neste estudo como demostrado de forma sim-
plificada na Figura 5.

Figura 5. Diagrama da Infraestrutura da solução [Autoria Própria]

3.1.6. Instrumento de Prototipagem e Design de Interação

O protótipo interativo entregue com o estudo se da como uma plataforma de votação geral,
onde usuários se autenticam com carteiras de blockchain (Figura 6) e poderão criar suas
votações (Figura 7), adicionando opções de voto, e disponibilizar um código (Figura 8)
para enviar (ou torná-lo público) para votantes (outras carteiras de blockchain) entrarem
e realizarem seus votos (Figura 9).
Figura 6. Página de Autenticação com a Carteira Digital [Autoria Própria]

Figura 7. Página da Criação da Votação [Autoria Própria]

Figura 8. Página da Compartilhamento de Código da Votação [Autoria Própria]


Figura 9. Página da Votação [Autoria Própria]

A carteira responsável por criar o programa será a única que pode adicionar as
opções de voto. As carteiras votantes serão apenas capazes de emitir um único voto por
votação, e só poderão visualizar o resultado da votação um vez que estes mesmos votem.
O intuito dessa plataforma é a criação de votações por qualquer usuário, indepen-
dente de temática, e seu diferencial se encontra na tecnologia blockchain, aumentando
a velocidade, transparência e segurança dos votos, criando uma base para mais estudos
cientı́ficos e promovendo o avanço dos mesmos.

3.1.7. Resultados obtidos

O estudo obteve como resultados o sucesso na criação da plataforma4 utilizando todas as


tecnologias propostas no trabalho. A plataforma permite a criação de uma votação, bem
como o processo de voto e contagem, de maneira fácil e com explicação do passo-a-passo
necessário para interação com a mesma.
O sucesso foi contabilizado ao atingir os objetivos de aumentar as qualidades ne-
cessárias para votação propostas: integridade, transparência e autenticação. O uso de uma
rede blockchain decentralizada de fato aumenta a transparência pois seus dados não con-
seguem sofrer mutações sem que a maioria dos nós da rede concorde, ou seja, para burlar
essa caracterı́stica seria necessário dominar e ter controle sobre a maioria dos nós de uma
rede, o que a torna centralizada novamente e não é o caso da Solana. Sobre a trans-
parência, os dados armazenados na Solana são transmitidos em tempo real para o usuário
que já realizou seu voto (para não enviesar eleitores que ainda não votaram), tornando o
acompanhamento da votação simples e acessı́vel por qualquer eleitor. E, por fim, no que
conceitua autenticação, como citado no tópico de sua solução, foi criado um esquema de
autenticação carteira-voto, garantindo que uma mesma carteira não contabilize mais de
um voto.
É importante notar que não foi possı́vel realizar um teste de carga para simular
4
Disponı́vel em https://strawsoll.web.app
milhares de votos simultâneos sem ter uma massa de entidades votantes individuais pois
a blockchain Solana possui um sistema contra ataques. Esse sistema restringe múltiplas
requisições para um Program do mesmo endereço IP. O limite se daria apenas ao uso
indevido de um único dispositivo tentando executar mais de 80 requisições ao Program
por segundo, nesse acaso a própria blockchain se protege e impede a continuidade do
acesso do endereço IP. Com o uso comum, com diversas requisições porém intervaladas
ao tempo da interação humana com a aplicação, não haveria problema nem limitação por
parte da rede.

4. Considerações Finais
O presente estudo buscou verificar a possibilidade da implementação de um processo
eletrônico de votação no campo remoto, ou seja, abordar o processo de votação pela
Internet com o uso da tecnologia blockchain denominada de Solana.
O resultado da pesquisa sobre a tecnologia Solana especificamente revelou sua ca-
pacidade de sanar problemas de integridade do voto com sua natureza de dados imutáveis,
problemas de transparência com sua natureza rastreável do hash dos blocos e a criação de
funcionalidades de visualização do estado das votações e possibilitou a implementação de
um sistema que assegurasse autenticidade com a lógica denominada de maneira autoral
como one-wallet/one-vote.
Quanto ao desenvolvimento da solução, mostrou-se viável embora não tenha sido
possı́vel realizar os testes completos como o grupo gostaria. Como solução para isso seria
necessário ter uma massa de usuários em dispositivos individuais para acessar e interagir
com a plataforma, como seria o uso normal do sistema, para não ser impedido pela trava
de proteção da blockchain.
Com considerações à segurança da aplicação, entendeu-se que pela natureza de-
centralizada da rede, uma invasão direta seria extremamente difı́cil de acontecer, visto que
para isso o atacante deveria conhecer e invadir ao menos 50% + 1 dos nós da rede. Dessa
forma, a única preocupação de segurança fica a respeito da segurança da máquina na qual
o usuário está interagindo com a plataforma, que pode estar infectada com, por exemplo,
um vı́rus do tipo trojan, mas esse tipo de problemática não está relacionado a aplicação
desenvolvida.
Tendo em vista os resultados obtidos, percebe-se que o sistema de votação on-
line com o uso de tecnologia blockchain é possı́vel, usável e de fato auxilia com as
preocupações constantes do processo de voto.
Ainda existem algumas oportunidades que podem ser desenvolvidas em trabalhos
futuros a partir dos resultados alcançados neste estudo, dentre os quais podem ser cita-
dos: (i) a inclusão efetiva do tópico de autenticidade, conectando uma única carteira da
blockchain com um usuário, não permitindo-o votar mais de uma vez e; (ii) explorar e
garantir soluções para o tópico de anonimidade, removendo a camada de interligação de
transações por parte da blockchain, desvinculando o voto e o eleitor;

Referências
Cambridge Centre for Alternative Finance (2021). Bitcoin Mining Map. https://
ccaf.io/cbeci/mining map. Acessada em 2022-05-20.
Coinbase (2022). What is Solana (SOL)? https://www.coinbase.com/pt/
learn/crypto-basics/what-is-solana. Acessada em 2022-05-17.
Cointelegraph (2022). What is Solana, and how does it work? https:
//cointelegraph.com/news/what-is-solana-and-how-does-
it-work. Acessada em 2022-06-20.
COSTA, R. G. (2008). Sistema seguro de votaÇÃo eletrÔnica multi-cÉdulas.
Ethereum Foundation. Ethereum Documentation. https://ethereum.org/en/
developers/docs/intro-to-ethereum/. Acessada em 2022-05-16.
FRANKENFIELD, J. (2022). Permissioned Blockchain. https://
www.investopedia.com/terms/p/permissioned-blockchains.asp.
Acessada em 2022-05-20.
Jones, B. (2000). A report on the feasibility of internet voting.
Lamport, L., Shostak, R., and Pease, M. (2019). The Byzantine Generals Problem, page
203–226. Association for Computing Machinery, New York, NY, USA.
Nakamoto, S. (2008). Bitcoin: A peer-to-peer electronic cash system. Decentralized
Business Review, page 21260.
Nofer M., Gomber P., H. O. e. a. (2017). Blockchain. volume 59, pages 183–187.
Norden, L. (2006). The machinery of democracy: Voting system security, accessibility,
usability, and cost.
O’Connor, J. J. and Robertson, E. F. (2002). The history of voting. https://
mathshistory.st-andrews.ac.uk/HistTopics/Voting/. Acessada em
2022-05-20.
Peercoin Foundation. Bitcoin Proof-of-Work Consensus. https://
www.peercoin.net/university/#/5-bitcoin-proof-of-work-
consensus. Acessada em 2022-05-21.
Peercoin Foundation (2022). Peercoin. https://www.peercoin.net. Acessada em
2022-05-21.
Project Serum Anchor. Anchor Documentation. https://book.anchor-lang.com.
Acessada em 2022-05-26.
R. Michael Alvarez, T. E. H. (2003). Point, Click, and Vote: The Future of Internet Voting.
Brookings Institution Press.
Secretaria de Comunicação e Multimı́dia (2022). Saiba tudo sobre o teste
de integridade, uma das etapas de auditoria no dia da eleição. https:
//www.tse.jus.br/comunicacao/noticias/2022/Julho/saiba-
tudo-sobre-o-teste-de-integridade-uma-das-etapas-de-
auditoria-realizadas-no-dia-da-eleicao. Acessado em.
Silva, R. C. (2020). Proposta de aplicação para verificação do voto com tecnologia
Blockchain: a abordagem de um modelo E2E verifiability para internet Voting da
Estônia. PhD thesis.
Solana Foundation. Solana Terminology. https://docs.solana.com/
terminology. Acessada em 2022-05-26.
Solana Foundation (2022). Solana Documentation. https://docs.solana.com/
introduction. Acessada em 2022-05-16.
Swan, M. (2015). Blockchain: Blueprint for a New Economy. O‘Reilly Media.
Swanson, T. (2015). Consensus-as-a-service: a brief report on the emergence of permis-
sioned, distributed ledger systems.
Torpey, K. (2019). bitcoin mining centralization is quite alarming but a solution is in
the works. https://www.investopedia.com/terms/p/permissioned-
blockchains.asp. Acessada em 2022-05-20.
Xiwei Xu, Ingo Weber, M. S. (2019). Architecture for Blockchain Applications. Springer.
Yakovenko, A. (2017). Solana: A new architecture for a high performance blockchain
v0.8.13. Technical report.
Yakovenko, A. (2019). How Solana’s Proof of History is a Huge Advancement
for Block Time. https://medium.com/solana-labs/how-solanas-
proof-of-history-is-a-huge-advancement-for-block-time-
178899c89723. Acessada em 2022-05-23.
Zheng, Z., Xie, S., Dai, H.-N., Chen, X., and Wang, H. (2018). Blockchain challenges and
opportunities: a survey. International Journal of Web and Grid Services, 14(4):352–
375.

Você também pode gostar