Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Antecedentes
La Coordinación de Estrategia Digital Nacional de la Oficina de la Presidencia y la Unidad de
Gobierno Digital de la Secretaría de la Función Pública como responsables de promover e
impulsar el aprovechamiento de las Tecnologías de la Información en el gobierno y en todos los
aspectos de la vida de las personas, trabajan en el desarrollo de la iniciativa BlockchainHACKMX y
el desarrollo de un caso de uso como proyecto piloto.
La iniciativa surge ante la creciente tendencia global de utilizar blockchain para innovar la
prestación de servicios públicos, así como por la recomendación del Foro Económico Mundial 1
emitida a México para utilizar dicha tecnología.
En este sentido y con el objetivo de desarrollar la Red BlockchainHACKMX y casos de uso en
conjunto con la ciudadanía, a través de la de la Vertical Gobierno Digital del Talent Hackathon de
la última edición de Campus Party en Guadalajara, se plantearon una serie de problemáticas que
demandaban el desarrollo de soluciones tecnológicas basadas en blockchain. De este ejercicio se
tuvo una idea ganadora: “Contrataciones Inteligentes”, la cual propone la creación de un sistema
de contrataciones públicas basado en el Estándar de Contrataciones Abiertas, añadiendo la figura
de los evaluadores independientes con voz y voto en el proceso de contratación, esto sobre una
red de blockchain, idea que hoy se trabaja como caso piloto dentro de la iniciativa.
Para el desarrollo de la iniciativa se formó el Consejo Consultivo Blockchain con el objetivo contar
con un grupo de expertos que asesoran y acompañan el desarrollo de la iniciativa y para
garantizar que esta sucediera en un entorno de consenso y participación ciudadana.
La iniciativa con una visión de largo plazo busca explorar todas las implicaciones y alcances del
uso de blockchain en el sector público mexicano.
1 En marzo de 2017, el Foro Económico Mundial (WEF por sus siglas en inglés) presentó un caso de estudio sobre la corrupción en México, donde emitió como recomendación el desarrollo de aplicaciones basadas en el tecnología Blockchain, con el objetivo de aumentar la transparencia, asegurar la autenticidad de la información pública y mejorar la confianza ciudadana en el gobierno. (Partnering Against Corruption Initiative - Infraestructura and Urban Development. Building Foundations for Trust and Integrity. World Economic Forum. 2017.)
1
Iniciativa BlockchainHACKMX
La iniciativa BlockchainHACKMX se divide en dos objetivos: 1. Creación y el despliegue de la red
BlockchainHACKMX; 2. Desarrollo de casos de uso.
En el primer alcance y como parte del proyecto piloto, se trabaja en el desarrollo del proyecto
“Contrataciones Inteligentes” y el despliegue de la Red BlockchainHACKMX.
En este sentido, el proyecto se planteó en 4 etapas:
Imagen 1. Etapas de la iniciativa BlockchainHACKMX.
Actualmente el desarrollo se encuentra en la etapa alfa. Enseguida se describen las acciones
realizadas en la fase de descubrimiento y las que se encuentran en ejecución como parte de la
fase alfa.
Definición de las etapas:
● Descubrimiento: identificación de las necesidades del proyecto, definición del alcance,
procesos y arquitectura del mismo.
● Alfa: desarrollo de la primera versión del prototipo funcional del sistema de
Contrataciones Inteligentes y despliegue de la Red BlockchainHACKMX.
2
● Beta: Desarrollo de pruebas de contrataciones reales.
● Productivo: versión funcional del sistema y ampliación de la Red BlockchainHACKMX.
3
Consejo Consultivo BlockchainHACKMX
El Consejo Consultivo Blockchain (CCB) se conforma por un grupo de expertos en Blockchain
nacionales e internacionales, provenientes de Organizaciones de la Sociedad Civil, organismo
internacionales, instituciones privadas y públicas, universidades y centros de investigación.
El CCB fue creado con el objetivo de contar con expertos en la materia que acompañan a través
de reuniones mensuales al equipo que se encuentra desarrollando la iniciativa y se da
seguimiento permanente a través del repositorio BlockchainHACKMX, mismo que se puede
consultar a través del siguiente link: https://goo.gl/gBq3Ca.
Los miembros del Consejo han acompañado la iniciativa desde su origen en el Talent Hackathon de Campus Party 2017, quienes contribuyeron en la definición de las problemáticas que se presentaron en la Vertical de Gobierno Digital de dicho evento, además de participar como mentores y jueces.
PhD. Saiph Savaje Directora del Laboratorio
Interacción Humano Computadora de la
Universidad del Oeste de Virginia
Ing. Víctor Lagunes Soto Ruiz CIO Oficina de la Presidencia
de México
Mtro. Miguel Ángel Porrúa
Líder de Gobierno Electrónico del Banco Interamericano de
Desarrollo
4
Ing. Carlos Alba Asesor de la Dirección Ejecutiva
de AGESIC
Ing. Carlos Moreira CEO y Fundador de WISekey
Ing. Miguel Ángel Salazar Director Ejecutivo de Codeando
México
Ing. José Antonio Rodríguez Reyes
Jefe de Desarrollo de Negocios de BITSO
Dr. Eleazar Aguirre Anaya Profesor Investigador
Centro de Investigación en Computación
Instituto Politécnico Nacional
Ing. Joaquín María Moreno BlockchainMX
5
Ing. José Pablo González Delezé
Director Ejecutivo y Cofundador de BITSO
Ing. Juan Pablo Escobar Director de Cívica Digital
Ing. Carlos Chavarría Director General de NA-AT
Technologies
6
Avance de la iniciativa
Acciones ejecutadas en la etapa de descubrimiento
Durante la etapa de “Descubrimiento” se identificaron las
necesidades del proyecto, asimismo se definió el alcance de la
iniciativa, así como los procesos y arquitectura necesaria para la
ejecución del proyecto, para cada uno de los objetivos del
proyecto.
La acciones ejecutadas se describen enseguida:
Red blockchainHACKMX
1.Investigación y análisis de las soluciones de blockchain existentes.
El objetivo de este ejercicio de investigación y análisis fue identificar qué solución tecnológica de
blockchain contaba con las características de código abierto, gobernanza, capacidad de
desarrollo de smart contracts avanzados, implementación de blockchain privado y de
confiabilidad de transacciones.
Se identificaron y analizaron 5 soluciones existentes: Hyperledger Fabryc, Bitcoin, Ethereum,
Chain y NEM.
Hyperledger
Fabric
Bitcoin Ethereum Chain NEM
Descripción de la plataforma
Blockchain of general purpose
Payments only
Blockchain of general purpose
Blockchain of
general purpose
Blockchain of general purpose
7
Gobernanza Linux Foundation
Bitcoin Developers
Ethereum Developers
Comunidad chain
NEM Foundation
Moneda None BTC Ether None Xem
Recompensa minera
N/A Yes Yes Yes Yes
Estado
Key-value database
Data transaction
Data account Data transacti
on
Data transaction
Red de consenso Enchufable PBFT
Mining Mining Federated
consensus
program
Proof of importance
Red Privado Público Público o privado
Privado Público o privado
Intimidad Abierto o privado
Abierto Abierto Abierto Abierto
Contratos inteligente
Varios lenguajes(Java, GO)
Posible, pero no obvio
Lenguaje de programación: Solidity
Java, Ruby, NodeJS
Javascript, Ruby, NodeJS
Tabla 1. Análisis de soluciones tecnológicas de blockchain.
Hyperledger Fabric
Bitcoin Ethereum Chain NEM
Fuente abierta Si Si Si Si Si
Arquitectura modular en capas de programación y personalización
Si No Genérica Genérica
Si
Escala global SI Si Si Si Si
8
Múltiples implementaciones de protocolo central
Si Solo pagos
Si Si Si
Endurecido mediante el despliegue Blockchain público
Privado Si Si Privado Si
Configurable para la implementación de Blockchain privados y para confidencialidad de transacciones
Si Público Público Si Si
Funcionamiento de la gobernanza Si Si Si Si Si
Capacidad de contrato inteligente avanzado
Si No Si Si Si
Herramientas adecuadas Si No Si Si Si
Tabla 2. Análisis de soluciones tecnológicas de blockchain. Como resultado del análisis, en conjunto con el Consejo Consultivo Blockchain, se determinó que
la solución que cumple con características necesarias para la creación y el despliegue de la red,
es la plataforma open source que ofrece Ethereum, ya que permite la creación una red privada,
debido a que los nodos que integren la Red BlockchainHACKMX no estarán conectados a la red
principal de ethereum, es decir, el término “privada” indica que se trata de una red reservada y
aislada, sin embargo esto no significa que se trata de una red de acceso restringido, pues el
acceso para consultar las transacciones de la red es público.
Cabe destacar que Ethereum al ser una plataforma descentralizada es capaz de ejecutar
contratos inteligentes (Smart contracts), además de que permitirá establecer los mecanismos
idóneos de autenticación.
2. Definición de la arquitectura de la Red BlockchainHACKMX.
La red BlockchainHACKMX se compone de nodos, los cuales se encuentran distribuidos en lugares geográficamente distintos. Aún cuando varios nodos dejarán de funcionar, la red asegura su funcionamiento debido a que cada bloque que se genera se propagan a todos los nodos de la red.
9
La Red hace uso del protocolo Prueba de autoridad (proof of authority) el cual utiliza un conjunto de nodos autorizados para crear nuevos bloques y eliminar así las comisiones que implicaría ejecutar Smart Contracts en una red con mineros .
La Red está compuesta por nodos públicos (full, light, archive, embeded), nodos administrativos (bootnode y signer / sealer), nodos de servicio (Network monitor, block explorer, wallet y faucet).
Además la red cuenta con dos componentes: Virtual Machine y los Smart Contracts.
Imagen 2. Arquitectura de la Red BlockchainHACKMX
Definición de los nodos
Nodos públicos Full. Un nodo completo (full node) sincroniza la Blockchain descargando la cadena completa desde el bloque génesis hasta el bloque principal actual, pero sin ejecutar las transacciones.
Light. Un nodo ligero (light node) sincroniza la cadena de bloques descargando y verificando solo la sección de encabezados de cada bloque, desde el encabezado del bloque génesis hasta el encabezado del bloque más reciente, sin ejecutar ninguna transacción ni recuperar ningún estado asociado a cada bloque.
10
Archive. Un nodo de archivo (Archive node) sincroniza la cadena de bloques descargando la cadena completa desde el bloque génesis hasta el bloque más reciente, ejecutando todas las transacciones contenidas en él.
Embeded. Un nodo embebido es una variación del nodo de ligero (light node) con los parámetros de configuración adaptados para su uso en dispositivos con recursos limitados (como Raspberry Pi) y su función es optimizar el uso de la memoria RAM.
Nota: se les llama nodos públicos debido a que cualquier usuario puede consultar las transacciones de la red.
Nodos administrativos Bootnode. Sirven como puerta de entrada a la red y dan acceso a nuevos nodos, registrándolos en la red.
Signers. Nodos que validan las transacciones de la red de Blockchain. Al carecer de mineros, la gobernanza de la red es ejercida por estos nodos.
Nota: los nodos administrativos son los que garantizan la existencia de la red.
Nodos de servicio Network monitor. Realiza un monitoreo de los componentes de la red y permite visualizarlos gráficamente.
Block explorer. Permite leer el contenido de los bloques y las transacciones de la red.
Wallet. Permite dar de alta nuevas direcciones para ser usadas dentro de la red de Blockchain.
Faucet. Alimenta las direcciones existentes en la red con "monedas" ficticias necesarias para poder realizar transacciones en la red.
Componentes BlockchainHACKMX
Ethereum Virtual Machine. Se trata de una máquina virtual diseñada para ser ejecutada por todos los nodos participantes de la red peer to peer, se puede leer y escribir en la blockchain tanto codigo ejecutable como datos, verificar las firmas digitales, y es capaz de ejecutar código de manera completa.
Smart contracts. Un contrato inteligente (smart contract) es un programa informático que facilita, hace cumplir y ejecutar acuerdos registrados entre personas y organizaciones. Tienen
11
como objetivo brindar una seguridad superior a la ley de contrato tradicional y reducir costos de transacción asociados a la contratación.
Generación del nodo Génesis
En una cadena de bloques (blockchain), cada bloque contiene un apuntador al bloque anterior de forma sucesiva hasta llegar al primer bloque, este bloque se conoce como Bloque Génesis. El nodo Génesis es el primer bloque que se genera en la blockchain privada y permite personalizar la blockchain. Para configurarlo se requiere de un archivo genesis.json el cual contiene parámetros de configuración de la red, algunos de ellos son:
● chainId: identificación de la blockchain. ● homesteadBlock: compatibilidad con versiones de ethereum. ● difficulty: define la dificultad de minería. ● gasLimit: establece el límite del costo gas por bloque. ● alloc: permite generar cuentas y asignarles fondos (balance).
Imagen 3. Ejemplo de un archivo personalizado genesis.json
12
Generación del sistema de Contrataciones Inteligentes
Como primer paso para el desarrollo del sistema de Contrataciones Inteligentes fue necesario la
identificación de las etapas que establece el Estándar de Contrataciones Abiertas, así como el
flujo de las etapas del actual sistema de contrataciones; “Compranet”, para finalmente definir el
proceso de flujo del sistema de Contrataciones Inteligentes.
El actual sistema Compranet solo contempla tres de las cinco fases que establece el Estándar de
Contrataciones Abierta, mientras que la propuesta de Contrataciones Inteligentes aborda las
cinco fases, más la fase de evaluación que mide la ejecución del proyecto ejecutado como
resultado del proceso de contratación.
Imagen 4. Comparación del actual proceso en Compranet contra el Estándar de Contrataciones Abiertas y la propuesta de Contrataciones
Inteligentes.
13
Flujo de procesos del sistema de Contrataciones Inteligentes
Imágenes 5, 6 y 7. Flujo del proceso de Contrataciones Inteligentes. Consulta el proceso en tamaño real: https://goo.gl/k3bHhE
14
Maqueta del sistema de Contrataciones Inteligentes
Con el objetivo de contar con un desarrollo previo al desarrollo del sistema de Contrataciones
Inteligentes se diseñó una maqueta donde se contemplan las seis etapas que conforman el
sistema de Contrataciones Inteligentes, esto con el fin de generar las historias de usuario para el
desarrollo del sistema.
15
Acciones ejecutadas en el desarrollo de la fase alfa
En la fase alfa del proyecto se trabaja en el desarrollo de
la primera versión del prototipo funcional del sistema de
Contrataciones Inteligentes, despliegue de la Red
BlockchainHCKMX, así como en la definición del modelo
de gobernanza de la Red y el desarrollo de los smart
contracts para cada una de las etapas del Sistema de
Contrataciones Inteligentes.
Despliegue de la Red Blockchain HACKMX
Luego de la creación del nodo génesis, que fue la puerta de entrada a la Red, se ha trabajado en
la instalación de diferentes nodos
Actualmente la Red se encuentra distribuida de la manera como se muestra en el diagrama
siguiente;
16
Es posible monitorear la red a través del siguiente tablero: http://statshackmx.ddns.net/
Mediante el tablero es posible monitorear los bloques que se han generado dentro de la reg, así
como el tiempo en que se genera cada bloque.
Modelo de Gobernanza de la Red BlockchainHACKMX
Para garantizar la estructura y el uso adecuado de la Red BlockchainHACKMX, se trabaja en la definición de un Modelo de Gobernanza.
El Modelo establecerá los lineamientos sobre quiénes podrán formar parte de la red, las acciones que se deben emprender para formar parte de las red, así como los requerimiento tecnológicos y los compromisos que se asumen al formar parte de la red.
17
Generación de smart contracts
Los smart contract son los que codifican las reglas de negocio en un lenguaje programable dentro
de la blockchain serán los responsables de garantizar el óptimo registro de la información de
cada una de las etapas de la contratación, así como de ejecutar la evaluación de los proyectos
concursante.
Se trabaja en la creación de seis smart contracts, uno para cada una de las fases del proceso de
Contrataciones Inteligentes, hasta ahora el avance es de 50%.
Registro de Unidad Compradora - Previo a la Planeación
Este smart contract permite registrar información básica de una Unidad Compradora. Se registran las unidad compradora Acciones:
1. Registrar UC 2. Consultar UC
Los campos que se envía a la blockchain son: 1. Nombre de la UC 2. RFC
Ver smart contract
Registro de Empresas - Previo a la Planeación
El smart contract permite registrar información de las empresas en la blockchain, además actualiza el resultado del smart contract de reputación. Acciones:
1. Registrar empresa(Sistema) 2. Actualizar reputación de empresa(Sistema) 3. Consultar empresa(Publico)
Los campos que se guardan en la blockchain son: 1. Address 2. Razon Social *validar si es razón o nombre 3. RFC 4. Reputacion
18
Al momento de registrar una empresa en el sistema se crea una address de ethereum la cual la identificara en la red de blockchain. Se envía a la blockchain los campos definidos anteriormente, esta se almacena en variables de estado que es un storage del smart contract desplegado para registro de empresas. Ver smart contract
Registro de Proyecto Contratación - Licitación
Permite almacenar información importante de un proyecto de contratación. También se puede consultar información definida. Acciones:
1. Registrar proyecto 2. consultar proyecto 3. Subir ganador
Campos para blockchain: 1. Unidad compradora 2. Clave de contratacion 3. Clave de proyecto 4. Titulo 5. Metodo de contratación 6. Metodo de evaluacion 7. Empresa ganadora en la etapa de contratación
Ver smart contract
Smart Contract de Evaluación Inteligente - Adjudicación
El smart contract evalúa los requerimientos técnicos de las propuestas inscritas a un proceso de licitación, Acciones: Votar por cada una de las propuestas (Evaluadores) Obtener ganador(Sistema) Consultar puntaje obtenidos(Empresas)
19
Las UC pueden ver todos los resultados obtenidos en la evaluación inteligente.Por otro lado las empresas solo pueden ver los resultados de su propuesta Métodos de evaluación: 1.- Puntos y porcentajes 2.- Binario Parámetros iniciales:
1. Address de las empresas participantes 2. Address de los evaluadores participantes
a. Comité evaluación b. Evaluadores independientes que cumplan con el sector definido en la planeación
3. Criterios-valor (si es por puntos y porcentajes si no seria solo el criterio) a. Contempla requerimientos tecnicos y economicos b. Criterio y puntaje maximo
4. Periodo de Evaluación **checar que ya hayan votado por todas las propuestas Ver smart contract
20
Siguientes pasos
La fase alfa se encuentra en desarrollo y se ha definido cerrar la fase el 16 de marzo para dar
paso a la etapa Beta donde se realizarán pruebas con un caso real de contratación.
Las acciones pendientes en el marco de la fase Alfa son las siguiente:
● Definir la versión final del Modelo de Gobernanza.
● Incrementar el número de nodos de acuerdo a lo que se establezca en el Modelo de
Gobernanza.
● Montar el sistema de Contrataciones Inteligentes y los smart contracts en la Red
BlockchainHACKMX
Para las anteriores actividades se definió el siguiente roadmap, mismo que fue puesto a
consideración del Consejo Consultivo de Blockchain.
21