Conceptos Blockchain #1: Cadena de bloques & Trazabilidad
Conceptos básicos y su aplicación a problemáticas de trazabilidad.
Conceptos blockchain y su aplicación en "generación de confianza".
En el artículo anterior se trató sobre la “Inmutabilidad de la Blockchain”, uno de los principios en los que se fundamenta la tecnología de cadena de bloques que, esencialmente, son:
En esta nueva entrega vamos a tratar de la gestión de la confianza.
En la economía, el Valor se genera por el flujo de bienes y servicios a través de redes empresariales, mediante transacciones y contratos. Para ello, se requiere implementar procesos de negocio que pueden estar abiertos a los ciudadanos o restringidos a empresas e instituciones.
Por cuestiones financieras, legales, económicas, normativas, de regulación de mercados, de auditoría o de control de la calidad, se deben habilitar registros que contengan los contratos y las transacciones. El problema surge cuando cada participante (Empresarios, Entidades Financieras, Aseguradoras, Organismos Reguladores, Auditores, …) tienen su propio sistema de registro, lo que dificulta seriamente el desarrollo de los procesos y propicia las diferencias entre los distintos sistemas y, por lo tanto, la necesidad de conciliación. Todo ello se traduce en ineficiencia. Este problema se agudiza con el proceso de globalización en el que estamos inmersos y la enorme velocidad actual de los negocios, especialmente los que intercambian activos digitales.
Blockchain surge como respuesta a este reto y persigue:
Como primera consecuencia, es esencial la gestión de la confianza, tanto entre todos los participantes, como ante terceros. En Blockchain, la gestión de la confianza se sustenta en tres (3) principios:
Cada uno de los principios interviene en las distintas etapas de gestión de la Blockchain:
1. 1. Inmutabilidad
La inmutabilidad se basa en dos (2) elementos:
Con esto se garantiza que cada bloque es íntegro en sí mismo y, si alguien manipulase todos los datos de un bloque para simular que no ha sido alterado, la que se vuelve inconsistente es la propia cadena de bloques.
La información que suele contener una Blockchain es muy sensible, debiéndose garantizar dos (2) propiedades contrapuestas:
La solución está en el uso de técnicas criptográficas para, con independencia del acceso a los archivos, la información sólo tenga valor para quien la pueda decodificar.
Aunque no es imprescindible, especialmente en cadenas de bloques privadas, la confianza dentro de la tecnología Blockchain suele ser distribuida. Esto significa que se requiere de un proceso informático de acreditación de la veracidad de la información cargada en la Blockchain. Este proceso se llama consenso y es el más complejo de implementar.
Se trata de encontrar una mayoría de participantes que opine que la información propuesta para incorporarse a la cadena de bloques es veraz. En el procedimiento se deben decidir tres (3) cuestiones:
Para detallar los diferentes tipos de consenso, se seguirá el excelente artículo de Karl Niebuhr de mayo / 2017 (https://www.karlbooklover.com/consensos-del-blockchain/).
Básicamente, se dispone de tres (3) tipos de algoritmo de consenso:
Los tres (3) son seguros. PoW es deficiente desde el punto de vista del consumo de energía y conduce a la implementación de “granjas de minado” que, en general, sólo pueden instalarse y operar con rentabilidad en países con precios intervenidos de la energía.
PoS y PoI son menos exigentes en el consumo de energía, pero requieren de un determinado nivel de organización y control.
Vamos a poner un ejemplo de minado mediante un programa (desarrollado con la librería node.js), que trata de encontrar una serie de caracteres en la parte izquierda de un código hash obtenido a partir de un texto fijo. Los datos son los siguientes
El programa que se ha desarrollado es muy sencillo, y se puede acceder a él con el siguiente enlace: "programa minado"
El resultado que se obtiene es el siguiente:
Para explicar los conceptos de gestión de la confianza, se propone como caso de uso la creación de un Registro de Personas y de Documentos utilizando tecnología Blockchain. La solución de este tipo de problemas de aseguramiento de la identidad de las personas y de la integridad de los documentos es una de las aplicaciones más demandadas en este momento.
La Blockchain dispondría de las siguientes funciones:
El diseño del proceso sería el siguiente:
La prueba de concepto consiste en cargar inicialmente la Blockchain con dos (2) usuarios:
Con estos datos se lanza la actualización de la Blockchain. Por simplicidad, se omiten las claves utilizadas para el proceso de codificación de los datos.
El resultado es el que se presenta en la siguiente figura:
Se puede comprobar:
¿Cómo se usa?
En la siguiente figura se tiene el procedimiento para recuperar datos de la Blockchain, decodificarlos y transmitirlos a un tercero.
El usuario 1, María García Rodríguez, recupera sus datos de la Blockchain (Componente “Recuperar Datos Bloque”), los decodifica con su clave privada, le añade el archivo que contiene su Tesis Doctoral y se los envía a su profesor, que comprueba en la Blockchain que estos datos no han sido manipulados. Para ello, ejecuta el componente “Comprobar Datos Bloque”, que calcula los códigos hash de cada uno de los atributos y archivos enviados por María García y comprueba que coinciden con los almacenados en la Blockchain. De esta manera, se garantiza la veracidad de los mismos.
Por el contrario, si alguien hubiera alterado el contenido de la Blockchain, aunque fuera un solo carácter, o hubiera modificado la Tesis Doctoral, el resultado sería el recogido en la siguiente figura. Es conveniente comentar que la posibilidad de encontrar un archivo con una Tesis Doctoral cuyo hash coincida con el almacenado en la Blockchain es prácticamente nula; en concreto 1 / 1077 .
El objetivo más importante del uso de la tecnología de Blockchain es la gestión de la confianza. Esta gestión se corresponde con una serie de propiedades que se aplican en función del momento en el desarrollo del proceso que se apoya en la cadena de bloques:
Se ha propuesto un caso de uso en el que una persona puede ceder sus datos a un tercero, sólo de aquellos que verdaderamente sean necesarios y, en algún caso, de información (archivos de Tesis Doctorales) que no está almacenada en la Cadena de Bloques.
En este caso de uso se demuestra la gran capacidad de acreditación de la información que tiene esta tecnología, sin requerir la disponibilidad de una tercera parte de confianza.
En el próximo artículo trataremos de los Smart Contracts.
Director Técnico de SPEC - Smart Projects Excellence Center- de Cibernos
Conceptos básicos y su aplicación a problemáticas de trazabilidad.
Todas las empresas, independientemente de su tamaño y sector, trabajan y almacenan información...
Cada vez que aparece una nueva tecnología nos surge la misma duda: ¿es útil para alguna de nuestras...