Trabajo de grado - Maestría
BlockID diseño de un sistema de votaciones basado en la tecnología blockchain
Registration in:
Universidad Tecnológica de Pereira
Repositorio institucional Universidad Tecnológica de Pereira
Author
Mejía Herrera , Diego Stiven
Múnera Sánchez , Juan Pablo
Institutions
Abstract
La tecnología avanza a gran velocidad; Hoy en día todas las áreas de la gestión estatal están sujetas a sistematización, lo cual es una gran ventaja, pero al mismo tiempo un peligro para la seguridad de los datos. Los sistemas blockchain pueden traer un gran avance al sistema electoral tanto de instituciones, empresas u organizaciones en general en Colombia, simplificando la forma en que se realizan las elecciones populares, generando grandes ahorros de dinero y redundando en la seguridad de los datos. De esta manera, la tecnología blockchain puede brindar una solución eficiente a la forma en que se toma una decisión popular. esto gracias a la característica inmutable de los datos registrados en este tipo de estructura de datos. esta inmutabilidad permite a los votantes estar seguros de que su voto no será adulterado ni compartido, además, los usuarios podrán conocer los resultados de las elecciones en tiempo real, es decir, una vez finalizadas las elecciones, el resultado final depende de lo que diga la cadena de bloques. ha almacenado y mitigado el error humano a la hora de contar los votos. brindando de esta manera, mayor transparencia y confianza en el proceso electoral. es por ello que se propone iniciar con la investigación y desarrollo de un sistema de votación basado en blockchain, con el fin de probar las ventajas y desventajas de dicho sistema, a través de un prototipo funcional adaptado para ser utilizado en cualquier tipo de votación digital. Technology advances at great speed; nowadays all areas of state management are subject to systematization, which is a great advantage, but at the same time a danger to data security. blockchain systems can bring a great advance to the electoral system of both institutions, companies or organizations in general in colombia, simplifying the way in which popular elections are taken, generating large savings of money and resulting in data security. in this way, blockchain technology can provide an efficient solution to the way a popular choice is made. this thanks to the immutable characteristic of the data recorded in this type of data structure. this immutability allows voters to rest assured that their vote will not be adulterated or shared, in addition, users will be able to know the results of the elections in real time that means once the elections are finished, the final result depends on what the blockchain has storaged and mitigate the human error at the momento of count the votes. providing in this way, greater transparency and confidence in the electoral process. it is for this reason that it’s proposed to start with the research and development of a voting system based on blockchain, in order to test the advantages and disadvantages of such a system, through a functional prototype adapted to be used in any type of digital voting. Maestría Magíster en Ingeniería de Sistemas y Computación Índice general
1. Introducción
1.1. Descripción del problema ........................................................... 7
1.2. Formulación del problema .......................................................... 10
1.3. Objetivos ....................................................................................... 14
1.3.1. Objetivo General ........................................................... 14
1.3.2. Objetivos Específicos ...................................................... 14
1.4. Antecedentes y justificación ....................................................... 14
1.5. Viabilidad y alcance ................................................................. 15
1.5.1. Viabilidad.......................................................................... 15
1.5.2. Alcance ............................................................................. 15
1.6. Metodología ................................................................................. 16
1.6.1. Hipótesis ........................................................................... 16
1.6.2. Diseño Metodológico ....................................................... 16
1.6.3. Arquitectura del software ............................................ 16
1.6.4. Desarrollo de software y codificación ............................ 17
1.6.5. Pruebas de rendimiento ................................................ 18
1.7. Sostenibilidad del proyecto ...................................................... 19
1.8. Recursos necesarios ...................................................................... 20
1.9. Costo del proyecto .................................................................... 20
1.10. Fuentes de financiaci´on . . . . . . . . . . . . . . . . . . . . .21
1.11. Actividades a desarrollar . . . . . . . . . . . . . . . . . . . .21
2. Introducción a la tecnología blockchain
2.1. ¿Qué es blockchain? . . . . . . . . . . . . . . . . . . . . . . .23
23
2.2. Conceptos básicos de blockchain. . . . . . . . . . . . . . . .25
2.2.1. Bloque. . . . . . . . . . . . . . . . . . . . . . . . . .25
2.2.2. Firma digital . . . . . . . . . . . . . . . . . . . . . .26
2.2.3. Billeteras . . . . . . . . . . . . . . . . . . . . . . . .27 2.2.4. Nodos. . . . . . . . . . . . . . . . . . . . . . . . . .27
3
´ 4 INDICE GENERAL
2.2.5. Red Peer to Peer P2P . . . . . . . . . . . . . . . . .27
2.2.6. Libros mayores distribuidos - Distributed ledgers . .28
2.2.7. Hash . . . . . . . . . . . . . . . . . . . . . . . . . . .28
2.2.8. Mineros . . . . . . . . . . . . . . . . . . . . . . . . .29
2.2.9. Algoritmos de consenso. . . . . . . . . . . . . . . . .29
2.3. Características principales. . . . . . . . . . . . . . . . . . .31
2.3.1. Inmutabilidad de los datos . . . . . . . . . . . . . . .31
2.3.2. Trazabilidad. . . . . . . . . . . . . . . . . . . . . . .31
2.3.3. Verificabilidad . . . . . . . . . . . . . . . . . . . . . .32
2.3.4. Consenso . . . . . . . . . . . . . . . . . . . . . . . .32
2.3.5. Eliminaci´on de intermediarios . . . . . . . . . . . . .33
2.4. Tipos de blockchain . . . . . . . . . . . . . . . . . . . . . . .33
2.4.1. Blockchain Pu´blica . . . . . . . . . . . . . . . . . . .33
2.4.2. Blockchain Privada. . . . . . . . . . . . . . . . . . .34
2.4.3. Blockchain autorizada o híbrida. . . . . . . . . . . .35
2.5. ¿Como funciona una blockchain? ............................................ 36
2.6. Inicios del blockchain ................................................................... 37
2.7. Etapas de madurez de la tecnología blockchain......................... 38
2.7.1. Blockchain 1.0 .................................................................. 39
2.7.2. Blockchain 2.0 .................................................................. 39
2.7.3. Blockchain 3.0 .................................................................. 40
3. Sistemas de votación
3.1. El voto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
41
3.2. Sistema de votacion´ o sistema electoral ................................... 41
3.3. Principios fundamentales de los sistemas de votaciones de mocraticas ´ .................................................................................... 42
3.4. Consideraciones generales de un sistema de votaci´on. . . . .43
3.4.1. Registro de votantes . . . . . . . . . . . . . . . . . .43
3.4.2. Operaciones de voto . . . . . . . . . . . . . . . . . .44
3.4.3. Identificaci´on de los votantes. . . . . . . . . . . . . .45
3.4.4. Escrutinio. . . . . . . . . . . . . . . . . . . . . . . .45
3.4.5. Auditorías. . . . . . . . . . . . . . . . . . . . . . . .45
3.5. Breve Historia del sufragio universal. . . . . . . . . . . . . .46
4. Sistemas de Votaciones Electr´onicos
4.1. Sistemas de Votaciones Electronicos ´ . . . . . . . . . . . . .
.49
49 4.1.1. Sistema de tarjetas perforadas . . . . . . . . . . . . .50
4.1.2. Registro Electronico ´ Directo RED . . . . . . . . . . .50
´INDICE GENERAL 5
4.1.3. Votaciones por Internet ................................................ 50
4.2. Ejemplos de voto electr´onico en el mundo ............................... 51
4.3. Sistemas de votaciones basados en tecnología blockchain BVS53
5. Descripción de la propuesta 61
5.1. Propiedades del sistema propuesto .......................................... 61
5.1.1. Imparcialidad .................................................................... 61
5.1.2. Privacidad ...................................................................... 62
5.1.3. Verificabilidad .................................................................. 62
5.1.4. Auditoría ........................................................................................... 62
5.1.5. Resistencia a la coerci´on ................................................ 62
5.1.6. Usabilidad ......................................................................... 63
5.2. Requerimientos no funcionales .................................................... 63
5.3. Stack utilizado ........................................................................... 64
6. Arquitectura de software 65
6.1. Vista de desarrollo - Modelo entidad relaci´on ......................... 65
6.2. Vista de procesos .......................................................................... 67
6.2.1. Diagrama de actividad: Creaci´on de elecciones y can-
didatos . . . . . . . . . . . . . . . . . . . . . . . . . .67
6.2.2. Diagrama de actividad: Votacion´ . . . . . . . . . . .68
6.2.3. Diagrama de actividad: Ver resultados. . . . . . . .69
6.3. Vista logica ´ . . . . . . . . . . . . . . . . . . . . . . . . . . .69
6.3.1. Diagrama de secuencia: Crear elecciones . . . . . . .69
6.3.2. Diagrama de secuencia: Crear candidato. . . . . . .70
6.3.3. Diagrama de secuencia: Crear elecciones . . . . . . .70
6.3.4. Diagrama de secuencia: Obtener resultados . . . . . .70
6.4. Vista física………………………………………………. .71
6.5. Escenarios o casos de uso . . . . . . . . . . . . . . . . . . . .72
6.5.1. Caso de uso general. . . . . . . . . . . . . . . . . . .72
6.5.2. Caso de uso: Generaci´on de candidatos. . . . . . . .73
6.5.3. Caso de uso: Votaci´on . . . . . . . . . . . . . . . . .74
7. Pruebas de rendimiento software 75
7.1. Pruebas de rendimiento de la aplicaci´on 75
7.1.1. Prueba de Carga (load testing) ..................................... 75
7.1.2. Prueba de Estr´es (stress) ............................................... 76
7.1.3. Prueba de Resistencia (endurance) .............................. 77
7.1.4. Prueba de Escalabilidad (scalability) ........................... 78
´ 6 INDICE GENERAL
8. Implementaci´on y Conclusiones 79
8.1. Caso de uso .................................................................................. 79
8.2. Proceso de elecciones Usuario ..................................................... 79
8.2.1. Creaci´on de cuenta ......................................................... 80
8.2.2. Creaci´on Billetera ........................................................... 83
8.2.3. Selecci´on votacion´ en curso y selecci´on candidato ...... 84
8.3. Proceso de elecciones para el administrador de las elecciones…..85
8.4. Conclusiones ................................................................................. 88
Referencias 91