22
Iniciativa BlockchainHACKMX 0

BlockchainHACKMX - gob.mx · Beta: Desarrollo de pruebas de contrataciones reales. Productivo: versión funcional del sistema y ampliación de la Red BlockchainHACKMX. 3 . Consejo

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Iniciativa

BlockchainHACKMX

0

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