Hoy vamos a bajar un poco más al detalle y ver un ejemplo práctico que cómo puede ser útil el concepto “blockchain”. Pero antes de nada, para los más despistados ¿qué es blockchain?

Qué es Blockchain

Resumiéndolo mucho, Blockchain es un sistema basado en nodos formando una cadena (cadena de bloques, como su nombre indica), por la que la información se descentraliza, eliminando intermediarios en el proceso. Blockchain apareció por primera vez para dar forma a las transacciciones de Bitcoin, convirtiendo cada nodo de la Blockchain en un “gestor de cuentas”. Así, todos los nodos son conscientes de las transacciones y si algún nodo intenta comprometer la información, el resto lo sabrá y no validará la transacción.

Resumen Blockchain

Pero como toda tecnología disruptiva, Blockchain ha abierto muchas puertas para diferentes usos, saliendo de transacciones financieras. Si lo vemos desde un punto de vista meramente técnico, gracias a Blockchain se puede transmitir información de un punto a otro, disponiendo de nodos de transmisión seguros y fiables. Y si algún nodo deja de ser seguro, se detecta el error y la transmisión se cancela por completo.

Aunque la idea de transmisión segura de punto a punto ya existe desde hace mucho tiempo, Blockchain ha conseguido unificar muchos conceptos que ya existían antes de forma individual: peer-2-peer, seguridad, integridad, descentralización, cifrado… Todo esto está muy bien, pero llevándolo a la realidad, ¿qué se puede hacer con esta “filosofía”?

Usos de la filosofía Blockchain

Hay cientos de posibilidades  respecto a la puesta en práctica utilizando esta filosofía. Tanto desde un punto de vista más conceptual (como puede ser la metodología de desarrollo Blockchain, donde prima la transparencia) como desde un punto de vista más práctico (por ejemplo, disponer de una red descentralizada con los historias clínicas de los pacientes).

Actualmente cada vez hay más empresas que están invirtiendo en esta tecnología. Aunque más que “tecnología” a nosotros nos gusta llamarlo “filosofía”, ya que engloba aspectos no solo tecnológicos, sino un cambio de pensamiento en el tratamiento de la información, alejándose de los clásicos sistemas con un intermediario único.

A continuación os explicamos un pequeño ejemplo práctico del envío de un mensaje (de Origen a Destino) utilizando esta filosofía, vamos a por ello.

Ejemplo práctico de la filosofía Blockchain

El ejemplo lo hemos desarrollado en PHP, pero puede realizarse en cualquier otro lenguaje, no hay ninguna dependencia del lenguaje respecto a la filosofía. En primer lugar, hemos creado una clase para definir el bloque:

Clase Bloque

 

Como podéis ver, el constructor del bloque contiene:

  • previousHash: es el hash generado del bloque anterior (si es el bloque inicial será 0, luego lo veremos)
  • transactions: es el contenido que se envía (el mensaje)
  • clavesecreta: es una clave que identifica a la transacción (la conocen todos los bloques)
  • claveiv: es una clave única para cada bloque (solo la conoce el propio bloque y los interesados (origen y destino))

Bien, lo siguiente es utilizar dicha clase para crear una red con bloques y enviar un mensaje de Origen a Destino. En este ejemplo hemos creado una red de 2 bloques:

Proceso Bloque Envío

  1. En primer lugar, veréis que la clave de la transacción (que conocen todos los bloques) es “clave_transaccion”.
  2. Creamos el mensaje que queremos enviar (en este ejemplo “Datos de ejemplo”). Se crea el bloque origen con esta información, sin hash previo, con la clave comentada y su clave de bloque.
  3. Una vez creado el bloque, ya disponemos de toda la información encriptada y disponible en $genesisBlock->getBlockHash(). Esta información es la que se envía al siguiente bloque (block1).
  4. El Bloque 1 se crea con el hash previo, la clave del proceso común y su clave única. El resultado, se envía al Bloque 2.
  5. Finalmente, el Bloque 2, se crea con el hash que le ha enviado el Bloque 1.

La salida obtenida hasta este momento es:

Salida envío

Lo siguente es el proceso de recepción de la información en Destino y comprobación de la integridad:

Proceso Bloque Recepción

  1. Destino ha recibido los datos del Bloque 2, por lo que desencripta la transacción con la clave del bloque 2.
  2. La información desencriptada es el hash del Bloque 1, por lo que la desencripta de nuevo con la clave del bloque 1.
  3. Y llega el punto más importante, antes de desencriptar la información del Bloque 1 (y por lo tanto obtener la información de origen), se comprueba que coinciden los Hash de cada uno de los bloques recibidos, respecto a los que fueron creados en el envío. Pueden pasar dos cosas:

Los hash coinciden: nadie ha modificado la información en el proceso, por lo que se puede mostrar:

Salida recepción OK

Los hash no coinciden: la información ha sido comprometida en el proceso de transmisión, por lo que la transacción se cancela:

Salida recepción KO

 

Como veis, gracias a la filosofía Blockchain hemos podido desarrollar un mecanismo (muy simple) que permite enviar un mensaje de un origen a un destino manteniendo no solo la integridad de los datos, si no la seguridad de los mismos. Si uno de los nodos modifica la información o, por ejemplo, intenta descifrar el mensaje con alguna otra clave, el Destino detectará el cambio en los datos recibidos y actuar en consecuencia.

Esto ha sido un pequeño ejemplo de las posibilidades de esta filosofía, pero hay mucho más. Os mantendremos informados sobre las novedades que traerá Blockchain, estamos seguros de que serán muchas y muy buenas.

Y ya sabéis, si necesitáis ayuda con este tipo de tecnologías, queréis el código de ejemplo o quizá, queréis adentraros en este mundo de nuevas investigaciones con Blockchain, ¡contactad con nosotros!