Estudio del desarrollo de un sistema de software orientado a blockchain
2018Profesores: Dra. Elizabeth Pérez Cortés y Dr. Humberto Cervantes Maceda
Resumen: Una cadena de bloques o blockchain es una tecnología que nace como soporte para garantizar transacciones seguras, anónimas, directas, rápidas y baratas de monedas digitales. Las garantías que ofrece la tecnología blockchain son sustentadas mediante el uso de principios de criptografía, distribución, consenso y redes P2P.
Una blockchain almacena de forma segura e inmutable la información relativa al movimiento de los recursos. A diferencia de una base de datos tradicional que normalmente sólo preserva el estado actual, en una blockchain se almacena historia. Esta característica la convierte en una tecnología ideal para usarla en sistemas en donde se desee registrar propiedad, procedencia, y/o evolución de bienes tangibles e intangibles. Por esta razón actualmente podemos encontrar una multitud de proyectos basados en blockchain. Desde sistemas de identidad, de nombres de dominio, de rastreo de origen de oro, noticias, datos hasta sistemas de seguimiento de productos orgánicos o de acceso a los dispositivos de un hogar inteligente.
En este proyecto, estamos interesados en entender los retos asociados con el desarrollo de sistemas basados en blockchain. Para ello se propone que el alumno participante desarrolle un pequeño sistema basado en blockchain para el manejo de inventario de bienes de inversión. El beneficio de usar la tecnología blockchain para este tipo de sistemas es que permite:
● Preservar la historia de los resguardos de los bienes
● Automatizar la transferencia de los resguardos asociados a un puesto
● Evaluar soluciones para el seguimiento de los bienes
Objetivo general
- Adquirir de primera mano experiencia en la construcción de un sistema basado en blockchain e identificar los retos de ingeniería de software que implica el uso de esta tecnología.
Objetivos específicos
- Diseñar e implementar un pequeño sistema de inventario de bienes de inversión.
- Identificar los retos de ingeniería de software que implica el uso de blockchain.
- Proponer soluciones a los retos identificados.