Gestión de certificados académicos sobre la blockchain Ethereum

6 septiembre, 2018

En los próximos años, cada vez más, será habitual que como usuarios interactuemos con aplicaciones descentralizadas que funcionan de manera independiente sin necesitar de ningún intermediario.

Detrás de estas aplicaciones existe la tecnología blockchain, que ofrece varias características de seguridad como por ejemplo: integridad y autenticidad de los datos, aplicaciones inmutables (ej. una aplicación en Ethereum o EOS), alta disponibilidad, resistencia a la censura…

De aplicaciones descentralizadas, existen varios tipos. En este post se describe una que pertenece al grupo de las aplicaciones que utilizan otro protocolo blockchain para implementarse. Esta aplicación -OpenDCert- se ha desarrollado para el trabajo final de grado (TFG) donde la versión pública utiliza una de las redes de pruebas (Rinkeby) del blockchain de Ethereum.

OpenDCert: Aplicación descentralizada para certificados académicos

La aplicación desarrollada está planteada para que entidades de formación (escuelas, universidades, centros de formación…) puedan gestionar los certificados de los alumnos de manera segura y sin intermediarios, mostrando una posible alternativa de gestión mediante la tecnología blockchain.

La aplicación evita almacenar cualquier dato privado, y siempre se utilizan claves públicas que estarán asociadas a cada tipología de usuario. Las tipologías establecidas en la aplicación son tres: las organizaciones, los alumnos y un administrador.

La funcionalidad de las organizaciones o entidades de formación es gestionar los certificados de los alumnos de forma que queden asociados a su clave pública. Los estudiantes sólo podrán consultar, descargar y compartir sus certificados. El administrador valida que las entidades dadas de alta sean correctas.

Tecnologías utilizadas:

Se han utilizado las tecnologías Ethereum, IPFS, React.js, Web3.js y Metamask.

Ethereum [https://ethereum.org/] implementa el protocolo blockchain que se utiliza para crear el back-end de la aplicación mediante un smart contract.

IPFS [https://ipfs.io/] es un protocolo que define un sistema de ficheros distribuidos. Cada vez que un fichero es subido al servicio, este devuelve un hash único que lo identifica.

El uso que se realizará de la tecnología IPFS es guardar parte de la información de las organizaciones y el alumno, y los certificados en PDF de los estudiantes. También, el front-end de la aplicación se aloja en este mismo protocolo.

Reactjs [https://reactjs.org/] es una librería Javascript de código libre que permite crear interfaces de usuario.

Web3.js [https://web3js.readthedocs.io/en/1.0/] es una librería Javascript que permite la interacción con los nodo de Ethereum. Esta librería se situará a la parte del front-end, y permitirá la comunicación con el contrato inteligente de Ethereum.

Metamask [https://metamask.io/] es una extensión de código libre para los navegadores Chrome y Firefox que permite gestionar las claves públicas de Ethereum. La utilización de la extensión en la aplicación es disponer de diferentes claves y así poder simular y cambiar fácilmente entre las tipologías de usuarios (administrador, estudiantes y entidades).

La siguiente imagen muestra de manera gráfica cómo se ha estructurado la aplicación:

Despliegue de la aplicación y resultados

La aplicación OpenDCert se ha implementado como prueba-de-concepto. La siguiente figura muestra una captura parcial de la interfaz de un usuario tipo organización, estudiantes y entidades.

El despliegue de la aplicación se ha realizado en el entorno local y en Internet. El uso de la red de Ethereum (tanto local como Rinkeby) no presentó problemas al publicar el contrato inteligente (smart contract) e interactuar con este.

Para publicar ficheros en IPFS se ha utilizado el servicio de Infura que permite crear un nodo IPFS y subir los ficheros que se gestionan vía el contrato implementado en Ethereum.

Después de realizar pruebas con la aplicación desplegada, se ha podido comprobar la seguridad y fiabilidad que puede aportar la tecnología blockchain al usuario final, puesto que cualquier ejecución de los métodos que modifican el estado del contrato quedará registrado en la cadena de bloques.

En definitiva, la tecnología blockchain puede ser una opción a considerar para cualquier sector donde se desee ofrecer una mayor seguridad y transparencia de los datos con los que se trabajen.

En las siguientes entradas del blog se puede obtener más información de la tecnología blockchain: Descentralizando el mundo con blockchain (I), Descentralizando el mundo con blockchain (II), Descentralizando el mundo con blockchain (III).

Respecto la memoria y código fuente presentado como trabajo final de grado (TFG) se puede encontrar en la siguiente página: http://hdl.handle.net/10609/81745.

Daniel Atienza es graduado en Ingeniería Informática por la Universitat Oberta de Catalunya. Desarrollo de una aplicación descentralizada es el título de su Trabajo de Final de Grado.

(Visited 115 times, 1 visits today)
Autor / Autora
Comentarios
Deja un comentario