Sistema de Votación Descentralizado Usando Tecnología de Cadena de Bloques
Para resolver los problemas del actual sistema de votación, este artículo sugiere el uso de la tecnología Blockchain para mejorar la seguridad y la descentralización de los datos.

Los métodos de votación actuales, como las urnas y los sistemas de votación electrónico, se enfrentan a numerosas amenazas de seguridad, como ataques DDoS, votos falsos, alteración y manipulación de votos, ataques de malware, etc. Esto crea una sensación de desconfianza entre los sistemas de votación tradicionales. A continuación, explicamos el uso de la tecnología blockchain para minimizar los defectos del sistema existente y hacer que el proceso de votación sea más seguro, fiable y transparente.
1. Introducción
1.1 Sistema existente
Los sistemas de votación tradicionales, como la votación basada en papeletas, han existido en la historia del proceso de votación desde hace bastante tiempo [1].
El sistema Kudavolai utilizado en las elecciones a la asamblea del pueblo de Tamil Nadu, alrededor del año 920 d.C., puede considerarse como un ejemplo del primer uso de papeletas para votar. Pero la situación cambió en la década de 1990, cuando se denunciaron casos de robo de papeletas, falsificación de votos, captura de cabinas, etc., que acabaron provocando su caída.
A principios de la década de 1990 surgieron los sistemas de votación electrónicos y digitales, que ofrecían mejoras en materia de seguridad, trabajo e integridad.
Estos dispositivos se crearon para evitar el fraude poniendo un límite a la rapidez con la que se pueden introducir nuevos votos en la máquina electrónica y actualmente se utilizan en muchos países para sus procesos electorales. El primer país en desplegar un sistema de voto electrónico para las elecciones fue Estonia, al que pronto siguieron países como Suiza y Noruega para sus elecciones estatales y al consejo, respectivamente [2].
Un sistema de voto electrónico debe ser altamente seguro para que no sólo esté disponible para los votantes, sino que también supere los retos a los que se enfrentan los sistemas de votación actuales, como la manipulación de la papeleta del votante o el cambio de votos. Muchos sistemas de votación electrónica actuales afirman ofrecer el anonimato de los votantes mediante el uso de la red Tor, pero no consiguen ocultar la identidad del votante, ya que las agencias de inteligencia suelen espiar en Internet e identificar a los votantes o interceptar sus votos.
Había muchos fallos, como la programación de software malicioso, la susceptibilidad al fraude, precisión a la hora de captar la intención del votante, vulnerabilidad a la piratería informática, vínculos políticos de los fabricantes, almacenamiento seguro de los votos emitidos, etc.
Por todo ello, los dispositivos de votación electrónica y el voto electrónico no se pusieron en práctica a escala mundial. Además, muchos de los países (entre ellos los Países Bajos, Gran Bretaña y Alemania) en los que el voto electrónico se extendió inicialmente, acabaron limitando su uso debido a la imperfección de la tecnología y volvieron al método más fiable de votación [3].
Con decisiones tan monumentales en juego y el desarrollo de la tecnología y la sociedad empujando a la búsqueda de métodos de votación más baratos y fiables, surge la necesidad de un sistema de votación seguro, automatizado y transparente.
Este artículo tiene como objetivo describir la metodología para automatizar, digitalizar y descentralizar los sistemas de votación actuales mediante el uso de la tecnología de cadena de bloques, con el fin de eliminar los defectos del sistema actual (Tabla 1).
1.2 Tecnología Blockchain
Blockchain es un conjunto de tecnologías de libro mayor distribuido que pueden programarse para registrar y rastrear cualquier cosa de valor. Es simplemente una cadena de bloques, una especie de base de datos que almacena información digital.
El término "Blockchain" fue acuñado por primera vez por Satoshi Nakamoto (seudónimo) [4], quien presentó la idea de un sistema peer to peer que permitía a los usuarios realizar pagos digitales mediante transacciones en efectivo a través de Internet sin la participación de ningún intermediario. Cada bloque de una cadena de bloques está vinculado criptográficamente al bloque anterior, es decir, la base de la pila es el primer bloque de la cadena. El bloque anterior se superpone uno tras otro a cada nuevo bloque creado para formar una pila llamada Blockchain.
La información en blockchain se almacena en una base de datos compartida y continuamente reconciliada.
La información no se almacena en un único lugar, por lo que es pública y fácilmente verificable.
La tecnología Ledger es una forma secular no destructiva de rastrear los cambios de datos a lo largo del tiempo.
Puede tratarse de transacciones financieras, historiales médicos o incluso votos. La tecnología Blockchain ayuda a simplificar el sistema de la siguiente manera
1. A prueba de manipulaciones
En una cadena de bloques, cada bloque está conectado criptográficamente a su bloque anterior con la ayuda de una técnica especial llamada Hashing. Por lo tanto, si se intenta realizar algún cambio en los valores del bloque, se refleja inmediatamente en el hash del bloque anterior, dando una alerta. Por lo tanto, una vez insertados los datos, no se pueden reescribir y el bloque queda a prueba de manipulaciones.
2. Descentralizado
Centralización significa poder en sólo un puñado de personas/base de datos. La naturaleza descentralizada significa que ninguna autoridad central tiene el poder de manejar los bloques.
Sólo con la ayuda del consenso de otros nodos se añaden bloques a la cadena tras un riguroso proceso de validación.
Esto reduce la posibilidad de corrupción en el procedimiento.
Para mantener la criptografía, la cadena de bloques utiliza un libro de contabilidad descentralizado. Como no hay una autoridad central podemos asegurar que la vigilancia de terceros está prohibida y el acceso a la base de datos es limitado. El fallo del sistema está bajo control en el sistema descentralizado.
3. Confianza
El bloque se crea de forma que el rompecabezas criptográfico debe resolverse. En segundo lugar, el ordenador que resuelve el enigma comparte la solución con todos los demás ordenadores de la red. Esto se denomina prueba de trabajo [5]. A continuación, la red verifica esta prueba de trabajo y, si se verifica, se añade a la red. La combinación de estos complejos rompecabezas matemáticos y la verificación por parte de tantos ordenadores garantiza que sólo se añada un bloque auténtico.
4. Sin intermediarios
No hay intermediarios involucrados entre las transacciones que son contratados o abordados, para ver los registros de alguien y mantenerlo confidencial. Pero, aquí, el propio usuario puede probar la Genuidad de su libro mayor por sí mismo y, por lo tanto, esta interacción peer-to-peer con los datos permite recortar los costes y los intermediarios involucrados.
Tabla 1. Estudio comparativo de cinco sistemas.
Nº | Título | Descripción | Ventajas | Inconvenientes |
1 | Visión general de la tecnología emergente: Blockchain [14] | Explicación de tipos de Blockchain como Monedas de colores-activos, Hyperledger, Ethereum, etc. Principios criptográficos utilizados. Uso de firmas digitales. | Seguro, bloque añadido sólo tras verificación | La difusión lleva tiempo |
2 | Máquina de votación electrónica [11] | La máquina de votación electrónica (EVM) es un dispositivo electrónico sencillo utilizado para registrar los votos en lugar de las papeletas y las urnas que se utilizaban anteriormente en el sistema de votación convencional. |
Elimina los errores humanos, es más fácil de usar, ahorra tiempo y es más seguro que el voto con papeletas. |
El hardware y el software no son seguros, son vulnerables a la piratería y a la manipulación de los votos emitidos. |
3 | Diseño de sistemas de votación distribuidos [12] | Estudio detallado de varios sistemas de votación en todo el mundo, destacando los méritos y deméritos de cada sistema. (Sistema estonio iVoting, sistema noruego I-Voting, sistema iVote de Nueva Gales del Sur) | Criptografía utilizada, claves públicas y privadas, seguro, encriptado | Infraestructura centralizada, servidores dedicados, pero todos en un centro de datos, votación múltiple, piratería informática, ataques DDos, falta de personal de seguridad |
4 | Bronco Vote: Sistema de votación seguro que utiliza la Blockchain de Ethereum [15] | BroncoVote implementa un marco de votación a escala universitaria que utiliza la blockchain de Ethereum y contratos inteligentes para lograr la administración de votantes y registros de votación auditables. Además, BroncoVote utiliza algunas técnicas criptográficas, incluido el cifrado homomórfico, para promover la privacidad de los votantes. El uso de MetaMask y Web3 elimina la necesidad de que los usuarios descarguen blockchains de Ethereum completos o incluso parciales en sus máquinas locales para emitir transacciones. |
Transparente, seguro, rentable | Soporte para criptografía limitado, potencia computacional lenta |
5 | Diseño del sistema de voto electrónico basado en blockchain [16] | Evalúa los marcos de blockchain, la tecnología blockchain puede ser una solución para resolver los problemas que a menudo se producen en el sistema electoral. El uso de valores hash en el registro de los resultados de la votación de cada colegio electoral vinculados entre sí hace que este sistema de registro sea más seguro y el uso de firmas digitales hace que el sistema sea más fiable. |
Resistencia a los fallos, invulnerabilidad a la censura en la red, es más probable que los usuarios confíen en una aplicación que no está controlada por un órgano de gobierno | Dificultad de desarrollo, las aplicaciones necesitan verificar la identidad del usuario, robustez de la red para fines específicos |
2. Sistema de votación
El primer paso en el proceso es tomar la información del usuario y validar y automatizar el proceso identificando a los usuarios legítimos. Una vez verificados los usuarios, los votantes pueden emitir su voto, pero su identidad permanece anónima. Una vez verificado cada voto, sólo se añade al bloque, de lo contrario se descarta [6].
Todas las transacciones se inician con marcas de tiempo para aumentar la transparencia. Por último, se muestran y cargan los resultados en tiempo real, y ningún voto puede ser manipulado, ya que ninguna autoridad central lo controla. A continuación se describen los pasos de la propuesta.
2.1 Inicio de sesión
El votante introduce sus credenciales para iniciar sesión en el sistema - en este caso se utilizaría una identificación de votante de 12 dígitos que se emite durante el registro, la huella dactilar y una contraseña de un solo uso (OTP) que es enviada por el sistema al móvil del votante en el momento del inicio de sesión.
Si las credenciales proporcionadas son correctas, el usuario puede pasar a la página siguiente; de lo contrario, se le deniega el acceso.
2.2 Emitir el voto
Los votantes se encuentran ahora con la página de votación que tiene todos los detalles de los candidatos que participan en la elección, el usuario tiene que seleccionar cualquier candidato. Se pide al usuario que confirme su voto, ya que sólo se puede votar una vez.
Todo esto se hace a través de una página web fácil de usar.
2.3 Cifrado de los votos
Nuestro objetivo es acelerar el proceso de votación convirtiendo los datos de longitud variable que incluyen la identificación del votante, la dirección de la cuenta del votante, sus credenciales, el voto que ha emitido, etc. en un valor hash de longitud fija para un procesamiento más rápido. Para ello se utiliza la técnica de hash unidireccional SHA, que no puede invertirse y se envía para su verificación.
SHA son las siglas de Secure Hashing Algorithm. Al obtener un determinado conjunto de caracteres de entrada, este algoritmo convierte cadenas/enteros de entrada de longitud variable en caracteres de tamaño fijo denominados Hash. Genera un valor único para una entrada dada y la función generada es de tamaño fijo de 256 bits (32 bytes) [7].
Si un atacante intenta recuperar la información del votante, tiene que realizar un ataque de fuerza bruta para adivinar miles de combinaciones hash que devuelvan el valor de la cuenta del votante, lo que es prácticamente imposible. Por lo tanto, la encriptación hace que el proceso sea seguro.
2.4 Añadir el voto a la Blockchain
Utilizando protocolos como el consenso y la prueba de trabajo, se añade un bloque a la cadena tras su validación.
3. Diseño del sistema
Fig. 1. Diagrama de bloques arquitectónico del sistema de votación
El diagrama de bloques anterior muestra la interacción entre los tres módulos del sistema. Las entradas del módulo de interfaz de usuario (sitio web) consisten en las credenciales de usuario, el registro y los datos de inicio de sesión, mientras que el sensor biométrico, que es la interfaz de hardware, proporciona la huella dactilar del votante.
Las entradas de ambos módulos interactúan con el sistema Blockchain que encripta, verifica y valida los votos y proporciona un canal seguro para el proceso de votación. Los resultados se muestran en la interfaz de usuario (Fig. 2)
Fig. 2. Diagrama de flujo del sistema de votación
El diagrama anterior muestra el flujo del sistema. Una vez facilitadas las credenciales y los datos biométricos del votante, el usuario es validado y registrado en el sistema. A cada votante se le proporciona un Voting Token ID (VTID) único de 12 dígitos.
Si el votante intenta iniciar sesión en el sistema, debe proporcionar sus credenciales de identidad. Si los datos coinciden, se le redirige a la pantalla de inicio de sesión; de lo contrario, se le deniega el acceso. Ahora bien, al votar, si el VTID se proporciona erróneamente, la transacción se considera inválida y no se registra el bloque. Si es legítima, se añade al sistema y se muestran los resultados en directo (Fig. 3).
La figura anterior ilustra Un DFD de nivel 0, también llamado modelo de sistema fundamental o diagrama de contexto, representa todo el elemento de software como una única burbuja con datos de entrada y salida indicados por flechas de entrada y salida, respectivamente.
Fig. 3. Diseño de sistema DFD de nivel 1
4. Algoritmos utilizados en la cadena de bloques
Los algoritmos de la cadena de bloques se utilizan para modificar y validar los bloques. El algoritmo de consenso es ampliamente utilizado para la validación en la cadena de bloques [4]. Este algoritmo se puede dividir a su vez en algoritmo Proof of Work y algoritmo Proof of Stake.
El algoritmo de consenso se utiliza principalmente cuando hay algún nodo defectuoso o que no funciona. Garantiza que la información se transfiere a todos los nodos y bloques presentes. Se utiliza un único valor de datos entre procesos o sistemas distribuidos para lograr un acuerdo mediante el proceso del algoritmo de Consenso. Múltiples nodos no fiables están involucrados a. Con la ayuda del algoritmo de consenso, podemos llegar a todos los nodos. Lo que nos ayudará a identificar si el bloque añadido al sistema es correcto o no.
Es el algoritmo incorporado que mantiene la auditoría de todos los bloques presentes. Esto ayuda a que el sistema funcione sin interrupciones y sin problemas. Todos y cada uno de los bloques se auditan en cuanto se produce la transacción. Este algoritmo también actualiza los bloques. Evita que el sistema falle debido a la adición de bloques defectuosos al sistema. Todos y cada uno de los nodos son controlados cuando se añaden nuevos bloques al sistema. De esta forma se reduce la redundancia y se comprueba cada nodo. El consenso también ayuda a prevenir diferentes tipos de ataques como el ataque dos. Como cada bloque se añade sólo después de la verificación esto hace que para identificar el ataque.
Resolver el problema, conocido como el problema del consenso, es importante en la computación distribuida y en los sistemas multiagente. Cuando un nodo genera y transfiere los datos y surge un problema de consenso, la BFT ayuda a superarlo y a garantizar que la información del sistema es segura. Si se produce un problema, la vivacidad se produce en [(n - 1) ÷ 3], n es el número de réplicas que se producen y los nodos se pueden manejar hasta un 33%. 3F + 1 nodo defectuoso puede ser manejado. [7]
Utilizando el algoritmo de consenso N/2 + 1firma debe estar presente para convertirse en el bloque válido en el sistema, donde el N es el número de firma enviada por el comisario [8]. La generación de bloques válidos puede denominarse consenso de bloques redondos.
La probabilidad de que podamos encontrar bloque válido se añade es:
Para que los resultados de la votación sean más imparciales, se espera que el número de votos que puede recibir un mayordomo sea superior a Nc/2. Así, se puede calcular la probabilidad P1 de que los votos de un candidato puedan superar Nc/2
4.1 Prueba de trabajo
Prueba de trabajo es la aplicación del algoritmo de consenso. Prueba de trabajo es el misterio que hay que resolver si encontramos la manera correcta de resolver la solución no está lejos. Esto es análogo a un resolver el misterio. Esfuerzo se requieren para poner la solución misterio juntos, pero sólo se necesita una solución momentánea para ver que si se ha concurrido correctamente.
En el consenso de Prueba de Trabajo, el esfuerzo requerido para resolver un misterio se llama Trabajo, y una solución se llama Prueba de Trabajo [9].
En otras palabras, la solución al misterio prueba que alguien hizo el trabajo para encontrar esa solución. Las Blockchains que utilizan el algoritmo de consenso Proof of Work requieren una prueba exacta para crear un nuevo bloque y añadirlo a la blockchain. Esto se utiliza para añadir nuevos bloques a la cadena de bloques. Este trabajo se suele denominar "minería".
5. Resultados
- Creación de una cuenta en la cadena de bloques para almacenar los votos y los datos de los usuarios.
- Creación de los contratos de la cadena de bloques para mantener la autenticidad y proteger la información.
- Envío de Ether a otras cuentas para la validación del voto.
La captura de pantalla de los módulos implementados se muestra a continuación (Figs. 4, 5 y 6):
6. Conclusión
El voto electrónico (e-voting) es una solución potencial a la falta de interés por votar entre la población joven conocedora de la tecnología. El voto electrónico es cada vez más abierto, una solución potencial sería basarlo en la tecnología blockchain también transparente, e independientemente auditable.
Este sistema aprovecha la transparencia del contrato inteligente para permitir que todos los votantes participen tanto en el registro como en la verificación de los votos. Aumenta la confianza de los votantes y reduce el despilfarro de recursos electorales.
La tecnología blockchain ofrece una nueva posibilidad para que los países democráticos avancen desde el esquema electoral de papel y bolígrafo, a un esquema electoral más eficiente en costes y tiempo, al tiempo que aumenta las medidas de seguridad del esquema actual y ofrece nuevas posibilidades de transparencia.
Utilizando una cadena de bloques privada de Ethereum, es posible enviar cientos de transacciones por segundo a la cadena de bloques, utilizando todos los aspectos del contrato inteligente para aliviar la carga de la cadena de bloques.
¿Cuál es tu reacción?






