Trabajo de grado - Pregrado
Implementación de un sistema de votación electrónica basado en la tecnología blockchain para las elecciones estudiantiles en la Universidad de Córdoba
Autor
García Villadiego, Neifer
Institución
Resumen
Electronic voting has sought to improve popular election processes on paper, addressing key points such as increasing efficiency and reducing errors that may arise in this complex process due to the number of people participating in these events, which are key to the development of a society. Blockchain is a booming technology, has characteristics that could contribute to the development of systems capable of giving confidence to the people involved in a popular election. With this work, an effort is made to implement the blockchain technology in an electronic voting system, which is oriented towards transparency. A web interface was developed for the interaction of the election administrator (to register the candidates and voters) and the voters (who will vote) with the system, implementing Hyperledger Fabric, which provides the blockchain network and a state database of the network (CouchDB). RESUMEN 15 ABSTRACT 15 1 INTRODUCCIÓN 16 1.1 PLANTEAMIENTO DEL PROBLEMA 16 1.2 JUSTIFICACIÓN 17 1.3 OBJETIVOS 18 1.3.1 Generales 18 1.3.2 Específicos 18 2 ESTADO DEL ARTE 19 3 MARCO CONCEPTUAL 26 4 MATERIALES Y MÉTODOS 29 4.1 TIPO DE INVESTIGACIÓN 29 4.2 POBLACIÓN Y MUESTRA 29 4.3 FASES DEL PROYECTO 29 4.3.1 FASE I: Investigación Del Proyecto 29 4.3.2 FASE II: Identificación De Requerimientos 30 4.3.2.1 Requerimientos Funcionales 30 4.3.2.2 Requerimientos No Funcionales 31 4.3.3 FASE III: Diseño Del Software 31 4.3.4 FASE IV: Desarrollo Del Software 31 4.3.5 FASE V: Evaluación, Pruebas E Impacto 32 4.4 METODOLOGÍA DE DESARROLLO DEL PROYECTO 32 5 DESARROLLO DEL SOFTWARE 33 5.1 ANÁLISIS 33 5.2 ARQUITECTURA 33 5.3 DISEÑO 37 5.3.1 Modelo Entidad - Relación 37 5.3.2 Modelo Orientado A Documentos 38 5.3.3 Casos De Uso 39 5.3.3.1 Gestión De Candidatos 39 5.3.3.1.1 Registrar 39 5.3.3.1.2 Modificar 39 5.3.3.1.3 Eliminar 40 5.3.3.1.4 Listar 40 5.3.3.2 Gestión De Elecciones 41 5.3.3.2.1 Registrar 41 5.3.3.2.2 Iniciar 41 5.3.3.2.3 Finalizar 41 5.3.3.2.4 Modificar 42 5.3.3.2.5 Eliminar 42 5.3.3.2.6 Listar 43 5.3.3.3 Gestión De Votantes 43 5.3.3.3.1 Registrar 43 5.3.3.3.2 Modificar 44 5.3.3.3.3 Deshabilitar 44 5.3.3.3.4 Eliminar 44 5.3.3.3.5 Listar 45 5.3.3.4 Consultar Reportes 45 5.3.3.4.1 Mostrar Resultados 45 5.3.3.4.2 Listar Votos 46 5.3.3.5 Efectuar Voto 46 5.3.3.5.1 Validar Votante 46 5.3.3.5.2 Seleccionar Candidato 46 5.3.3.5.3 Confirmar Voto 47 5.3.4 Diagramas UML 48 5.3.4.1 Casos De Uso 48 5.3.4.1.1 General 48 5.3.4.1.2 Gestión De Candidatos 49 5.3.4.1.3 Gestión De Elecciones 49 5.3.4.1.4 Gestión De Votantes 50 5.3.4.1.5 Consultar Reportes 50 5.3.4.1.6 Efectuar Voto 51 5.3.4.2 Diagramas De Clases 51 5.3.4.3 Diagramas De Actividades 52 5.3.4.3.1 Gestión De Candidatos 52 5.3.4.3.2 Gestión De Elecciones 53 5.3.4.3.3 Gestión de Votantes 54 5.3.4.3.4 Efectuar Voto 55 5.3.4.4 Diagramas De Secuencia 55 5.3.4.4.1 Gestión De Candidatos 55 5.3.4.4.2 Gestión De Elecciones 56 5.3.4.4.3 Gestión de Votantes 57 5.3.4.4.4 Efectuar Voto 57 5.4 PRUEBAS 58 5.4.1 Inicio de Sesión Del Administrador 58 5.4.2 Gestión De Elecciones 59 5.4.2.1 Listar 59 5.4.2.2 Registrar 59 5.4.2.3 Cambio De Estado 59 5.4.2.4 Modificar 60 5.4.2.5 Eliminar 61 5.4.3 Gestión De Candidatos 61 5.4.3.1 Listar 61 5.4.3.2 Registrar 62 5.4.3.3 Desactivar/Activar 62 5.4.3.4 Modificar 63 5.4.3.5 Eliminar 64 5.4.4 Gestión De Votantes 65 5.4.4.1 Listar 65 5.4.4.2 Registrar 65 5.4.4.3 Desactivar/Activar 66 5.4.4.4 Modificar 66 5.4.4.5 Eliminar 67 5.4.5 Efectuar Voto 68 5.4.5.1 Validar Votante 68 5.4.5.2 Seleccionar Candidato Y Votar 70 5.4.6 Listar Resultados 71 5.4.6.1 Detalles De Los Votos 71 6 RESULTADOS Y DISCUSIONES 72 7 CONCLUSIONES 72 8 RECOMENDACIONES 72 9 BIBLIOGRAFÍA 73 ANEXOS 76 La votación electrónica ha buscado mejorar los procesos de elección popular hechas a papel, tratando puntos claves como aumentando la eficiencia y reduciendo los errores que se puedan presentar en este proceso complejo por la cantidad de personas que participan en estos eventos, claves para el desarrollo de una sociedad. Blockchain es una tecnología en auge, posee características que podrían aportar al desarrollo de sistemas capaces de dar confianza a las personas que intervienen en una elección de un cargo popular. Con este trabajo, se hace un esfuerzo para implementar la tecnología blockchain en un sistema de votación electrónica, que esté orientado a la transparencia. Se desarrolló una interfaz web para la interacción del administrador de la elección (para registrar los candidatos y votantes) y los votantes (que efectuarán el voto) con el sistema, implementando Hyperledger Fabric, que provee la red blockchain y una base de datos de estado de la red (CouchDB). Pregrado Ingeniero(a) de Sistemas Monografía