infoPLC ++ / Tecnología / Blockchain para industria (I): cómo funciona esta tecnología

Blockchain para industria (I): cómo funciona esta tecnología


La lógica del blockchain, así como su inmutablidad y seguridad, hacen que sea una propuesta altamente atractiva para el sector productivo. Un análisis en profundidad de las posibilidades de esta tecnología para la industria. En esta primera crónica, ahondamos en su dinámica de funcionamiento.

Blockchain para industria (I): cómo funciona esta tecnología

Disponer de una alternativa segura para implementar una base de datos totalmente distribuida y escalable es una cuestión que obviamente interesa a muchos programadores y usuarios. Una nueva opción que apunta en esta dirección es el blockchain (cadena de bloques).

Ha sido gracias a Bitcoin que la tecnología blockchain esté adquiriendo un papel más relevante en diversos ámbitos. Pero conviene matizar que las criptomonedas tan sólo representan una de las múltiples aplicaciones que se vislumbran para blockchain, aunque por el momento es la más popular.

Las características de blockchain lo hacen ideal para establecer grandes redes con distintos actores independientes, como las que pueden darse en logística, el IoT o la Industria 4.0, por ejemplo. Hay interesantes propuestas en marcha y múltiples start-ups con ideas originales; muchas no prosperarán, pero algunas podrían generar disrupciones de mercado a futuro. La utilización de blockchain cobra sentido cuando puede aplicarse un modelo funcional y operativo efectivo, en cuanto a que se beneficie de sus características y pueda sortear sus posibles inconvenientes y limitaciones (que los hay).

A continuación, se describe el funcionamiento de esta prometedora tecnología y algunas posibles aplicaciones, aunque hay que advertir que blockchain está evolucionando a medida que se acumulan nuevas experiencias. Hay plataformas que ofrecen soluciones adaptadas para maximizar la funcionalidad en escenarios de aplicación específicos.

Esquema de la estructura de bloques (Bitcoin.org)

Inmutabilidad y seguridad

El blockchain es una base de datos que mantiene una lista de registros escalable a través de una red distribuida P2P. La estructura de blockchain descansa sobre algunos pilares fundamentales: uno es la inmutabilidad de los datos, ya que una vez inscritos en el correspondiente bloque, es difícil volver a cambiarlos (irreversibilidad); otros son su transparencia y seguridad, ofreciendo la posibilidad de que múltiples actores accedan a la información y puedan verificarla.

Una ventaja de esta base de datos distribuida es que ofrece una alta tolerancia al fallo, al estar reproducida en múltiples máquinas que operan en paralelo. Cuando se almacena nueva información, se requiere el consenso de parte o la totalidad de los actores implicados en el ecosistema.

Es en este contexto peer to peer, cada uno de los participantes puede descargarse una copia completa. Cuando hay que insertar contenidos en un bloque, los distintos actores ya tienen preparadas sus diversas propuestas específicas. Las plantean a la comunidad de participantes para que se integren conjuntamente en un nuevo bloque (internamente organizadas en una estructura denominada árbol de Merkle). De esta forma, se limita la proliferación de bloques y se facilita la gestión de los mismos. Una vez obtenido el consenso, se añade ese nuevo bloque, de forma que la acción es verificable, trazable y eficiente. Este proceso puede automatizarse completa o parcialmente, utilizando algoritmos apropiados.

Anatomía de un bloque de la cadena

Cada bloque dispone de una marca de tiempo y un enlace con el bloque anterior, además de contener la información relacionada con la aplicación. Esta información puede ser una lista de registros de operaciones y datos o bien un segmento de código que pueda ejecutarse. La última opción es la favorita para implementar un contrato inteligente (smart contract). En el caso de Bitcoin, la información de un bloque incluiría múltiples transacciones, esencialmente con los siguientes campos: remitente, destinatario y la cantidad de bitcoins a transferir en la operación.

El denominado hash es el identificador para un determinado bloque, una expresión criptocifrada que es única en la cadena (256 bits para Bitcoin). En caso de que algo se modifique en el bloque, el hash cambiará sensiblemente y será distinto al original. El hash se infiere con un algoritmo preestablecido; da como resultado una expresión que también dependerá de la información que contiene ese bloque. En el caso de Bitcoin, los mineros son los encargados de encontrar nuevos hash para la creación de bloques; a cambio obtienen una retribución en forma de criptomonedas (12 bitcoins). Los protocolos específicos de Bitcoin para la generación de nuevos bloques, hacen que esta tarea sea cada vez más ardua para los mineros, que compiten en paralelo, lo que consume gran cantidad de energía y potencia de proceso.

En cualquier caso, para conseguir un ecosistema sostenible, la comunidad de actores que efectúa las tareas de gestión del blockchain tiene que contar con algún tipo de incentivo por su trabajo. En el caso de Bitcoin, está claro; pero para otras aplicaciones dependerá de la actividad asociada a blockchain (podría consistir en una comisión u otro beneficio o contrapartida determinado). Por último, en cada bloque existe otro registro que apunta al bloque anterior, con su número de hash correspondiente. Esto posibilita que se mantenga una estructura secuenciada de bloques. Obviamente, el único bloque que no tendrá esa particularidad será el primero de todos, denominado génesis.

Una vez descrito como están formados los bloques de la cadena, se desprende que si se introdujera un cambio no consensuado en la información y su correspondiente hash, la cadena se rompería; para restablecerla habría que proceder a modificar todos los hash de los bloques existentes. Con todos los actores implicados, potencialmente observando el proceso, es difícil que pueda producirse un fraude en estas circunstancias. Por si fuera poco, en el caso de Bitcoin, hay un lapso preestablecido de 10 minutos para la creación de un nuevo hash.

Después de 10 años de experiencia con la tecnología blockchain, la mayoría de incidencias detectadas han estado relacionadas con el robo de las claves de acceso o con problemas derivados de la gestión. Para Bitcoin, existen llaves o claves privadas y públicas. Las más críticas son las privadas, que están en posesión del usuario o el intermediario que las gestiona o custodia. Es precisamente utilizando esta llave privada, que el usuario transfiere bitcoins a un destinatario que conozca su llave pública.

Smart contracts

Los contratos inteligentes merecen una especial atención por su alto potencial aplicativo a corto plazo. Tal como se ha comentado líneas arriba, existe la posibilidad de embeber código en los bloques. De esta forma, se puede desencadenar una acción automática cuando se produzca un evento determinado. Por ejemplo, se podría implementar un contrato de futuros de petróleo y que, a vencimiento, se activara la operación de pago o compensación pertinente. La idea de un contrato inteligente no es nueva, pero es ahora cuando se dan las condiciones para poder desplegar soluciones más eficientes. Los contratos inteligentes fueron propuestos por Nick Szabo en 1997, quién algunos consideran que podría tratarse del propio Satoshi Nakamoto, supuesto creador de Bitcoin.

Segmento de código básico para embeber un contrato inteligente (Ethereum)

Pero el que desarrolló Ethereum, la plataforma líder en diseño y gestión de smart contracts, fue el ruso Vitalik Buterinha, un experto en tecnología de Bitcoin. No obstante, hay que comentar que también existen otras propuestas para el desarrollo de smart contacts que están proliferando en el mercado. Ethereum ha creado un potente ecosistema enfocado a contratos inteligentes y también dispone de un lenguaje de programación que está pensado exclusivamente para esta funcionalidad; se denomina Solidity y tiene una sintaxis similar a C++ y JavaScript.

Implementación de un contrato inteligente (Ethereum Stack Exchange)