Para se familiarizar com o novo sistema de votação eletrônica e entender o papel que a tecnologia de blockchain desempenha nele e quais outros componentes são usados, estamos iniciando uma série de publicações dedicadas às principais soluções técnicas utilizadas no sistema. Propomos começar em ordem - com os requisitos do sistema e as funções dos participantes do processo
Requisitos de sistema
Os requisitos básicos que se aplicam a qualquer sistema de votação são geralmente os mesmos para a votação presencial tradicional e votação eletrônica remota, e são definidos pela Lei Federal nº 67-FZ de 12.06.2002 (conforme alterada em 31.07.2020) “Sobre Garantias Básicas direitos eleitorais e o direito de participar de um referendo de cidadãos da Federação Russa ”.
- A votação em eleições e referendos é secreta, excluindo-se a possibilidade de qualquer controle sobre a expressão da vontade do cidadão (artigo 7º).
- A possibilidade de votar deve ser fornecida apenas a pessoas que tenham sufrágio ativo nessa votação.
- Um eleitor - um voto, o voto "duplo" não é permitido.
- O processo de votação deve ser aberto e transparente para eleitores e observadores.
- A consistência do voto expresso deve ser assegurada.
- Não deve ser possível calcular os subtotais da votação antes de sua conclusão.
Assim, temos três participantes: um eleitor, uma comissão eleitoral e um observador, entre os quais se determina a ordem de interação. Pode-se ainda destacar o quarto participante - os órgãos que realizam o registro de cidadãos no território (em primeiro lugar, o Ministério da Administração Interna, bem como outras autoridades executivas), pois o sufrágio ativo está associado à cidadania e ao local de registro.
Todos esses participantes interagem entre si.
Protocolo de interação
Considere o processo de votação em uma mesa de votação tradicional, com uma urna e cédulas de papel. Em geral, de forma simplificada, fica assim: um eleitor chega à seção eleitoral e apresenta um documento de identidade (passaporte). No distrito eleitoral trabalha uma comissão eleitoral de distrito eleitoral, cujo membro verifica a identidade do eleitor e sua presença na lista de eleitores, que foi compilada anteriormente. Se um eleitor for encontrado, o membro da comissão emite uma cédula para o eleitor, e o eleitor assina para receber a cédula. Em seguida, o eleitor vai até a cabine de votação, preenche a cédula e coloca na urna. Para garantir que todos os procedimentos sejam rigorosamente cumpridos de acordo com a lei, os observadores (representantes dos candidatos, instituições de observação pública) monitoram tudo.Concluída a votação, a comissão eleitoral, na presença de observadores, fará a contagem dos votos e estabelecerá o resultado da votação.
As propriedades necessárias para a votação no sistema de votação tradicional são proporcionadas por medidas organizacionais e pelo procedimento estabelecido para a interação dos participantes: verificação do passaporte eleitoral, assinatura pessoal para cédulas, uso de cabines de votação e urnas lacradas, procedimento de contagem de votos, etc.
Para um sistema de informação, que é um sistema de votação eletrônica remota, esse procedimento de interação é denominado protocolo. Uma vez que toda interação conosco está se tornando digital, este protocolo pode ser considerado como um algoritmo que é implementado por componentes individuais do sistema, e um conjunto de medidas organizacionais e técnicas realizadas pelos usuários.
A interação digital impõe certos requisitos aos algoritmos que estão sendo implementados. Vejamos as ações realizadas no site tradicional em termos de sistemas de informação e como isso é implementado no sistema DEG que estamos considerando.
Digamos imediatamente que a tecnologia blockchain não seja uma "solução mágica" aqui, que resolve todos os problemas. Para criar tal sistema, foi necessário desenvolver um grande número de componentes de software e hardware responsáveis por diferentes tarefas e conectá-los a um único processo e protocolo. Mas, ao mesmo tempo, todos esses componentes interagem com a plataforma blockchain.
Componentes do sistema
Do ponto de vista técnico, o sistema DEG é um complexo de software e hardware (doravante PTC), que reúne um conjunto de componentes para garantir a interação dos participantes do processo eleitoral num único ambiente de informação.
O esquema de interação dos componentes e participantes do sistema DEG PTC é mostrado na figura abaixo. Clicável
Processo de votação remota
Agora vamos considerar em detalhes o processo de votação eletrônica remota e sua implementação pelos componentes do complexo de software e hardware DEG.
De acordo com o Procedimento de votação eletrónica à distância, para ser incluído na lista de participantes na votação eletrónica à distância, o eleitor deve apresentar uma candidatura no portal dos Serviços do Estado. Ao mesmo tempo, tal pedido só pode ser apresentado por usuários que tenham uma conta confirmada e tenham sido comparados com o registro de eleitores, participantes no referendo do sistema GAS "Vybory". Depois de receber o pedido, os dados do eleitor são novamente verificados pela CEC da Rússia e carregados para o componente "Lista de eleitores"PTK DEG. O processo de upload é acompanhado pela gravação de identificadores exclusivos no blockchain. Os membros da comissão eleitoral e os observadores têm acesso à visualização da lista por meio de um AWP especial localizado nas instalações da comissão eleitoral.
Quando um eleitor visita uma assembleia de voto, procede-se à sua autenticação (comparação com dados do passaporte) e identificação na lista de eleitores, bem como à verificação de que esse eleitor não recebeu o boletim de voto anteriormente. Aqui está um ponto importante - é impossível estabelecer se o eleitor colocou a cédula recebida na urna ou não, apenas o fato de a cédula já ter sido emitida antes. No caso do DEG PTK, a visita do eleitor é um apelo do usuário ao Portal DEG- este é um site localizado em vybory.gov.ru Como na delegacia tradicional, o site contém materiais informativos sobre as campanhas eleitorais em andamento, informações sobre os candidatos e outras informações. Para realizar a identificação e autenticação, é utilizado o ESIA do Portal de Serviços do Estado. Assim, o esquema geral de identificação é preservado tanto no momento da apresentação de uma candidatura como na participação numa votação.
Depois disso, começa o procedimento de anonimato - o eleitor recebe uma cédula que não contém nenhuma marca de identificação: ele não tem um número, não tem nada a ver com o eleitor a quem foi emitida. É interessante considerar a opção quando a assembleia de voto está equipada com complexos de votação electrónica - neste caso, o anonimato é realizado da seguinte forma: em vez de uma cédula de papel, o eleitor é convidado a escolher da pilha qualquer cartão com código de barras, com o qual se aproxima do dispositivo de votação. O cartão não contém qualquer informação sobre o eleitor, apenas um código que determina qual o boletim de voto que o dispositivo deve fornecer no momento da apresentação do tal cartão. Com a interação totalmente digital, a principal tarefa é implementar esse algoritmo de anonimato para que, por um lado,era impossível estabelecer quaisquer dados de identificação do usuário e, por outro lado, dar a oportunidade de voto apenas ao usuário que estava previamente identificado na lista. Para resolvê-lo, o complexo de software e hardware DEG utiliza um algoritmo criptográfico conhecido no meio profissional como "assinatura eletrônica cega". Iremos descrevê-lo em detalhes nas publicações a seguir, além de publicar o código-fonte, você também pode coletar informações adicionais de publicações na Internet usando palavras-chave - "protocolos criptográficos de votação secreta" ou "assinatura cega"Iremos descrevê-lo em detalhes nas publicações a seguir, além de publicar o código-fonte, você também pode coletar informações adicionais de publicações na Internet usando palavras-chave - "protocolos criptográficos de votação secreta" ou "assinatura cega"Iremos descrevê-lo em detalhes nas publicações a seguir, além de publicar o código-fonte, você também pode coletar informações adicionais de publicações na Internet usando palavras-chave - "protocolos criptográficos de votação secreta" ou "assinatura cega"
Em seguida, o eleitor preenche a cédula em um local onde não é possível ver a escolha feita (cabine fechada) - se em nosso sistema de informação o eleitor vota remotamente, então o único local é o dispositivo pessoal do usuário. Para fazer isso, o usuário é primeiro transferido para outro domínio - para a zona anônima . Antes de prosseguir, você pode ativar a conexão VPN e alterar o endereço IP. Este domínio é onde a newsletter é exibida e a escolha do usuário é processada. O código-fonte executado no dispositivo do usuário é inicialmente aberto - você pode vê-lo no navegador.
Depois de feita a escolha, a cédula é criptografada no dispositivo do usuário usando um esquema de criptografia especial, enviada e gravada no componente "Armazenamento distribuído e contagem de votos"construído em uma plataforma blockchain.
Uma das características mais importantes do protocolo é a impossibilidade de saber os resultados da votação antes de sua conclusão. Em uma delegacia tradicional, isso é garantido por meio do lacre da urna e do monitoramento por observadores. Nas comunicações digitais, a melhor solução é criptografar a escolha do eleitor. O algoritmo de criptografia utilizado exclui a possibilidade de divulgação dos resultados antes da conclusão da votação. Para isso, é utilizado um esquema com duas chaves: uma chave (pública), que é conhecida por todos os participantes, é utilizada para criptografar a voz. Ele não pode ser descriptografado com a mesma chave, você precisa de uma segunda chave (privada). A chave privada, por outro lado, é compartilhada entre participantes eleitorais (membros de comissões eleitorais, câmaras públicas, operadores de servidores de contagem, etc.) de forma que cada parte separada da chave seja inútil.Você pode iniciar a descriptografia somente após a chave privada ter sido coletada. No sistema em consideração, o procedimento de compartilhamento de chave inclui vários estágios: compartilhar uma parte de uma chave dentro do sistema, compartilhar uma chave fora do sistema e gerar uma chave pública comum. Mostraremos em detalhes o processo de criptografia e trabalho com chaves criptográficas nas publicações a seguir.
Depois que a chave é coletada e carregada, os totais são calculados para sua posterior fixação no blockchain e posterior anúncio. Uma característica do sistema em consideração é o uso de tecnologia de criptografia homomórfica. Descreveremos esse algoritmo em detalhes em publicações futuras e falaremos sobre por que essa tecnologia é amplamente usada para criar sistemas de votação. E agora observemos sua principal característica: as cédulas criptografadas registradas no sistema de contabilidade podem ser combinadas sem descriptografia, de forma que o resultado da descriptografia de tal texto cifrado combinado seja o valor somado de cada escolha nas cédulas. Nesse caso, o sistema, é claro, implementa provas matemáticas da correção de tal cálculo, que também são registradas no sistema de contabilidade e podem ser verificadas por observadores.
Abaixo está um diagrama do processo de votação. Clicável
Plataforma Blockchain
Agora que analisamos as principais características da implementação do sistema de votação eletrônica remota, responderemos à pergunta de onde partimos - qual o papel da tecnologia blockchain nisso e quais tarefas ela resolve?
No sistema de votação remota implementado, a tecnologia blockchain resolve uma série de problemas.
- A tarefa básica é garantir a invariabilidade da informação no âmbito da votação e, em primeiro lugar, dos votos dos eleitores.
- Garantir a transparência de execução e a imutabilidade do código do programa implementado na forma de contratos inteligentes.
- , : , , , .
- , , .
- , , .
Assim, vemos que sem o uso desta tecnologia, é praticamente impossível alcançar as propriedades necessárias no sistema de votação, bem como confiar nele.
A funcionalidade da plataforma blockchain usada é enriquecida com o uso de contratos inteligentes. Os contratos inteligentes verificam cada transação com cédulas criptografadas quanto à autenticidade das assinaturas eletrônicas e "cegas", bem como realizam verificações básicas sobre a exatidão do preenchimento de uma cédula criptografada.
Ao mesmo tempo, no sistema considerado de votação eletrônica remota, o componente "Armazenamento distribuído e contagem de votos" não se limita apenas aos nós de blockchain. Para cada nó, um servidor separado pode ser implantado para implementar as funções criptográficas básicas do protocolo de votação - servidores de contagem.
Contando servidores
Esses são componentes descentralizados que fornecem um procedimento para geração distribuída de uma chave de criptografia de cédula, bem como descriptografia e contagem dos resultados da votação. Suas tarefas incluem:
- Fornecimento de geração distribuída de uma parte da chave de criptografia da cédula. O procedimento de geração de chave será discutido nos artigos seguintes;
- Verificar a exatidão de uma cédula criptografada (sem descriptografá-la);
- Processamento de cédulas de forma criptografada para formar o texto cifrado final;
- Decodificação distribuída dos resultados finais.
Cada estágio da execução do protocolo criptográfico é registrado na plataforma blockchain e pode ser verificado quanto à exatidão pelos observadores.
Para dar ao sistema as propriedades necessárias em vários estágios do processo de votação, os seguintes algoritmos criptográficos são usados:
- Assinatura Eletrônica;
- Assinatura cega da chave pública do eleitor;
- Esquema de criptografia El Gamal em curvas elípticas;
- Prova de conhecimento zero;
- DKG (Distributed Key Generation) Pedersen 91;
- Protocolo de compartilhamento de chave privada de Shamir.
O serviço criptográfico será discutido com mais detalhes nos artigos a seguir.
Resultado
Vamos resumir alguns resultados intermediários da consideração do sistema de votação eletrônica remota. Descrevemos resumidamente o processo e os principais componentes que o implementam, e também identificamos os meios de obter as propriedades necessárias para qualquer sistema de votação:
- . . , .
- . , , . « » .
- . , . .
- . . -.
- . , .
- . , « ».