Análisis a fondo de blockchain: utilidad y características

Blockchain es una de las herramientas de futuro más interesantes en el campo de la gestión de datos. Pero para entender su utilidad y características hay que responder varias preguntas antes. ¿Qué es blockchain? ¿Cómo se almacenan los datos en la cadena? ¿Cómo se distribuyen estos por la red de nodos? Si estas dudas pasan por tu cabeza aquí tienes las respuestas.

Criptografía

¿Qué hace que blockchain sea tan especial? ¿Qué lo diferencia de una base de datos compartida tradicional? Una de las diferencias principales es el uso intrínseco de algoritmos criptográficos destinados a proporcionar la función de blockchain que impide la manipulación y/o alteración de los datos. Hay tres casos de uso básicos de una criptografía tradicional:

  1. Cifrado:
    1. Criptografía simétrica: basada en una clave secreta
    2. Criptografía asimétrica: basada en pares de claves (privada y pública)
  2. Firma digital: basada en criptografía asimétrica
  3. Resumen de mensaje (Message Digest): asigna datos de tamaño arbitrario a datos de tamaño fijo con funciones hash

En general, se recurre a la combinación de estos métodos para crear protocolos de transferencia de datos o comunicación P2P (peer-to-peer) sólidos y seguros. En el caso de blockchain, la idea principal es ofrecer una manera segura de demostrar la identidad del iniciador de una transacción firmando la operación, y garantizar la naturaleza antimanipulación de los datos del bloque utilizando un compendio de mensajes mediante funciones hash.

En el momento de diseñar un sistema con un propósito general en blockchain, es importante entender que los datos almacenados dentro de blockchain son de acceso público y, por lo tanto, no están cifrados. En caso de que se requiera almacenar información confidencial dentro del blockchain y de que solo se deba conceder acceso a ella a personas autorizadas, hay que realizar el cifrado adicional del lado del cliente antes de preparar los datos de la operación. Para gestionar una lista de control de accesos y simular un sistema basado en roles se puede efectuar un contrato inteligente (Smart Contract) por separado, pero, en general, la criptografía simétrica no está integrada en la tecnología blockchain.

Cuando se debe almacenar información confidencial en blockchain (deberías reconsiderarlo, teniendo en cuenta el elevado coste de almacenar cualquier tipo de información en él), hay algunos problemas de seguridad que cabe mencionar. En primer lugar, aunque se realice un cifrado en el lado del cliente, esto no es un sinónimo de ocultar los datos. Recuerda que los datos cifrados son accesibles para todos los miembros de la red, por lo que esto puede verse como una invitación a intentar descifrar la información confidencial por el método de fuerza bruta. Seguramente sería mejor rediseñar el sistema para no incluir información confidencial en blockchain.

 

Consenso distribuido

Antes hemos mencionado un problema general de cualquier sistema distribuido, que es alcanzar un consenso en toda la red para ofrecer una manera determinista de gestionar un estado del sistema y superar el problema de la falta de noción del tiempo global. No es un tema nuevo de investigación, ya que se han propuesto muchos enfoques durante décadas, pero, en general, siempre se ofrecen soluciones intermedias que hacen que el sistema esté lejos de ser ideal.

Con la introducción de bitcoin se han implementado dos características muy importantes en el algoritmo del consenso:

  1. El incentivo de la participación en el consenso, que a la larga significa que vale la pena actuar con honradez
  2. La monetización con el propio bitcoin

Estas dos características han hecho que el sistema sea muy interesante y, para asombro de muchos investigadores, ¡funciona mejor en la práctica que en la teoría! En el caso de blockchain, el consenso consiste en decidir qué bloque será el próximo válido que puede incluirse en la cadena y ser aceptado por toda la red. El nodo que «gana» la lotería (el minero que «resuelve» el bloque primero) tiene derecho a recibir un premio por su esfuerzo.

Proof of Work

Uno de los algoritmos de consenso más populares del ecosistema del blockchain es el llamado Proof of Work (prueba de trabajo). En general, se puede considerar como una gran lotería en la que todos los participantes deben resolver un acertijo matemático, algo así como adivinar un número especial. Imagínate que ejecutas una función general aleatoria (random 100). Si el número especial es fijo (digamos 0), solo tendrías un 1 % de probabilidades de adivinar el número. Si el número no es fijo, pero se introduce el rango, la probabilidad cambia. Por ejemplo, si el número pudiera estar entre el 0 y el 5, tendrías una probabilidad del 5 %. Si participaras en la lotería con dos nodos, tus posibilidades también aumentarían, doblando la probabilidad de ganar el premio.

Este ejemplo sencillo muestra la intuición que se esconde detrás del Proof of Work. En la mayoría de implementaciones de blockchain se aplican las reglas siguientes:

Para ser precisos, el algoritmo Proof of Work no sólo consiste en adivinar un número aleatorio, sino que, para implementarlo, utilizamos los acertijos matemáticos que proporcionan las funciones hash. Para cada bloque, la cabecera que contiene información del bloque (con el puntero hash hacia el bloque anterior) y un valor aleatorio conocido como «nonce» se establece como entrada para la función hash y la salida se compara inmediatamente con un espacio objetivo (suficientemente pequeño). Cambiando un nonce se genera un valor de salida completamente diferente, que tiene la posibilidad de encajar en el espacio objetivo. Finalmente, las probabilidades de resolver un nuevo bloque dependen de la potencia computacional del nodo, que se puede asignar directamente al dinero invertido en el proceso llamado minería: el equipo + la potencia eléctrica.

 

Minería

El proceso de minería se ha ido popularizando bastante a medida que el bitcoin ha ido entrando en escena en los últimos años. Existen algunas similitudes con el proceso de minería tradicional, ya que el trabajo duro y constante se puede ver recompensado con mucho dinero. Ahora bien, es importante recordar que la minería de blockchain no solo tiene como objetivo ganar dinero, por lo que no debería provocar ningún tipo de fiebre del bitcoin que pudiera crear efectos secundarios en la comunidad. El objetivo principal de esta actividad es asegurar una red de bitcoin y hacer que el protocolo con el mecanismo de consenso sea eficiente.

El modelo de incentivos, que actualmente consiste en dos factores (una recompensa fija y una tasa por transacción que se paga a los mineros), es una manera de motivar a la gente para que participe. Es poco común ganar mucho dinero con la minería blockchain, ya que la economía de los mineros y, especialmente, los grupos de minería son bastante complejos y evolucionan constantemente.

Contratos inteligentes

Una idea general del uso de la tecnología blockchain en el contexto de los contratos inteligentes es crear un marco que ejecute, de manera transparente y autónoma, programas que actúen como contratos digitalizados entre diferentes partes. Los participantes pueden ser humanos identificados por sus pares de claves, pero también otros contratos o máquinas, lo que abre gran cantidad de nuevos casos de uso para los desarrolladores de internet de las cosas. Si esta idea no te convence, existe otra: creando contratos inteligentes tratamos de automatizar muchas interacciones que, tradicionalmente, requerían muchas intervenciones y validaciones manuales.

La idea de los contratos inteligentes es bastante revolucionaria, ya que estos ofrecen posibilidades ilimitadas de cambiar las interacciones sociales tradicionales y el perfil de un negocio digital moderno. El cambio disruptivo trae consigo un nuevo paradigma: la transferencia inteligente de la propiedad. De forma similar a la revolución de internet que cambió el mundo a principios de la década de 1990, mucha gente ve los contratos inteligentes y la inteligencia artificial como el próximo boom. Recomendamos encarecidamente la lectura de una entrevista realizada a Vlad Zamfir, uno de los principales desarrolladores de blockchain, sobre el lado oscuro de la tecnología blockchain y los problemas que puede acarrear su adopción. 

Plataformas disponibles

Aunque la manera más natural de empezar con la tecnología blockchain es lanzarse al protocolo de bitcoin, hay otras plataformas y marcos que han evolucionado desde el protocolo original a través de bifurcaciones duras (hardforks). Cabe mencionar Ethereum, Ripple, RSK, Monax (también conocido como Eris) e Hyperledger. Estos difieren en muchos aspectos: el propósito general y los casos de uso, así como el sector y el ámbito objetivo en lo que se refiere a anonimidad y privacidad. En general, hay cadenas públicas, «permitidas» y privadas.

Próximamente publicaremos un post en el que nos centraremos en la plataforma de propósito general más popular, Ethereum, que permite crear blockchains públicos y privados y participar en ellos.

¡No te la pierdas!

GreenCoding

Con GreenCoding el desarrollo de software se convierte en parte integrante de tu programa de sostenibilidad

Más información