Blockchain: ¿Qué es y cómo funciona?

Introducción

En el post de esta semana veremos cómo funciona una Blockchain, una tecnología que trata de revolucionar la forma en que almacenamos y compartimos información en línea. Además, construiremos un ejemplo de Blockchain, exploraremos las diferentes cualidades que tiene y veremos los tipos de Blockchain que existen en la actualidad. ¡Acompáñanos en este fascinante viaje por el mundo de la tecnología Blockchain!

¿Qué es la Blockchain?

La cadena de bloques o blockchain es una base de datos distribuida a la que tienen acceso sus participantes. Esta base de datos se distribuye en una red en la cual los participantes pueden validar los datos con criptografía, como si fuera un gran libro de contabilidad inmodificable y compartido.

Una de las principales diferencias entre una blockchain y una red centralizada es cómo están estructurados los datos. La blockchain recoge la información en diferentes paquetes, también conocidos como bloques. Estos bloques tienen una cierta capacidad y, una vez se llenan, se acoplan al anterior bloque completado, formando así una cadena de datos. Esto hace que los datos estén ordenados de manera secuencial y temporal. 

Otra de las diferencias entre una blockchain y una red centralizada (aquellas en las que una misma entidad tiene el control de todos los datos) es el lugar en el que se ejecuta. Mientras en una red centralizada tradicional hay una única entidad que se encarga de la ejecución, en una blockchain se ejecuta en múltiples ordenadores por todo el mundo. Gracias a esto, la blockchain presenta ventajas como una mayor privacidad, descentralización y seguridad. Sin embargo, también tiene una serie de desventajas asociadas, como un mayor consumo de recursos.

A pesar de que se suelen asociar las cadenas de bloques con redes que almacenan datos de pago, sus utilidades van mucho más allá. Así, podríamos tener cadenas de bloques dedicadas a almacenar datos médicos, logísticos o hasta recuentos electorales.

¿Cómo funciona?

El objetivo principal de una cadena de bloques es comunicar entre sus participantes información importante. Además, queremos hacerlo de un modo que sea seguro y sin la necesidad de confiar en los demás usuarios.

Supongamos el siguiente caso. En la próxima reunión de integración de Damavis, siete de sus empleados quieren echar una partida al popular juego Monopoly. Sin embargo, tras abrir la caja, descubren que falta un importante elemento del juego, el dinero. Para solucionarlo, Dani, uno de los jugadores, propone que todas las transacciones de dinero se apunten en una hoja de un cuaderno.

De esta forma, la partida comienza de manera habitual. Tras un rato de juego, el libro de cuentas tiene el siguiente aspecto:

Sin embargo, Álex, uno de los actores de la partida, está dispuesto a ganar a toda costa, por lo que cambia una de las operaciones de la siguiente forma:

Cuando llega el turno de Dani, este descubre la manipulación. Para evitar futuros ataques maliciosos, propone transformar las operaciones utilizando una función hash, la cual convierte el texto en un conjunto de números y letras. Esta transformación será añadida debajo de la cadena de texto correspondiente. De esta forma, el libro de cuentas quedaría como a continuación. (Nota: los hash son orientativos):

Una pequeña alteración en cualquier carácter de la cadena provocaría un hash totalmente diferente. Así, los jugadores comienzan a añadir cada función hash tras cada cadena de texto. Sin embargo, para Álex esto no supone ningún problema y es que, cambiando de nuevo la cadena de texto y calculando su nuevo hash, puede volver a salirse con la suya.

Para complicárselo aún más al atacante, se decide por consenso añadir el hash de la anterior operación a cada nueva entrada. De esta forma, las transacciones dependen unas de otras, por lo que si alguien quiere cambiar una entrada del medio de la cadena, debe también alterar las siguientes entradas. 

Sin embargo, Álex sigue decidido a hacer trampas, por lo que, en cuanto llega su turno, cambia rápidamente la transacción que le interesa y modifica los hash correspondientes.

Cansados de ver cómo constantemente hay un jugador alterando el libro de cuentas, se decide complicar el cálculo de cada nueva entrada. Para ello, tras cada operación, los jugadores acuerdan añadir un número a la transacción. A este número se le conoce como nonce y debe de cumplir que la función hash termine con dos ceros (en general el número de ceros viene determinado por la cantidad de participantes en la red, en este ejemplo se toman dos a modo ilustrativo).

Este sistema es a prueba de trampas, ya que si Álex quiere alterar una de las entradas del libro de cuentas debe de pasarse horas y horas calculando el nonce para cada una de las líneas posteriores al bloque que pretende modificar.

Ventajas de la tecnología Blockchain

En el anterior apartado hemos visto el funcionamiento de la cadena de bloques a pequeña escala. En general, en las blockchain con un gran número de participantes, entran en juego otros conceptos como los mineros, la dificultad de minado, los nodos y otros elementos. Sin embargo, en el ejemplo anterior ya hemos podido apreciar varias de las propiedades deseables de esta tecnología.

  • Seguridad: En general, las cadenas de bloques proporcionan un alto grado de seguridad frente a ataques o intentos de manipulación. Esto es debido a que, para añadir un nuevo bloque a la cadena, es necesario que los participantes lleguen a un consenso. La cadena de bloques estaría en peligro si más del 50% de los participantes se pusieran de acuerdo para manipular la red. A esto se le conoce como ataque del 51%.
  • Transparencia: Los participantes de la red pueden ver todas las transacciones, por lo que los datos son rastreables.
  • Descentralización: En el ejemplo anterior había un único libro de cuentas en el que se apuntaban las transacciones. En general, las blockchains cuentan con diferentes ordenadores que se encargan de validar cada una de las transacciones y a los que conocemos como nodos. Esta arquitectura descentralizada permite que la red nunca se venga abajo, de manera que, aunque uno de los nodos se desconecte de la red, ésta no correrá peligro.

¿Qué es el minado de criptomonedas?

El minado es el proceso mediante el cual los mineros añaden nuevos bloques a una blockchain. Además, se encarga de la creación de nuevas criptomonedas. Como hemos mencionado con anterioridad, para añadir un nuevo bloque a la cadena es necesario que los participantes de la red lleguen a un consenso. Para esto, existen diferentes protocolos, entre los que destacan:

  • Prueba de trabajo (PoW): es la más común en el minado de criptomonedas, y se basa en la resolución de complejos problemas matemáticos por parte de los mineros para validar las transacciones y añadir nuevos bloques a la cadena de bloques. En la PoW, el minero que resuelve el problema matemático recibe una recompensa en criptomoneda.
  • Prueba de participación (PoS): en este tipo de prueba de consenso, los nodos que validan las transacciones se eligen en función de la cantidad de criptomonedas que poseen, en lugar de en función de su poder de procesamiento. La idea es que cuantas más criptomonedas tenga un usuario, más interesado estará en que el sistema funcione correctamente, y por tanto, menos probable será que actúe de manera malintencionada.

Aplicaciones de la tecnología Blockchain

Una de las aplicaciones más interesantes de la tecnología Blockchain son los smart contracts. Los smart contracts son programas informáticos que ejecutan automáticamente los términos de un contrato acordado entre dos o más partes en una blockchain. Estos contratos son autoejecutables, lo que significa que no necesitan de la intervención de terceros, como abogados o notarios, para ser ejecutados.

Además, como están basados en la tecnología blockchain, son inmutables, transparentes y seguros. Esta transparencia le permite a las partes involucradas verificar el estado del contrato y su cumplimiento en cualquier momento.

Los smart contracts pueden ser utilizados en una amplia variedad de campos, desde finanzas y seguros hasta la cadena de suministro y la propiedad intelectual. En la partida de Monopoly, Alex y Agus podrían llegar a un acuerdo por la compra-venta de una propiedad pagando una cantidad fija cada turno. Cuando Alex hubiese acabado de pagar totalmente la cantidad acordada, la propiedad pasaría automáticamente a formar parte de él. 

En resumen, los smart contracts son una herramienta tecnológica que permite la creación y ejecución de contratos de forma más eficiente, segura y transparente.

Conclusión

La tecnología blockchain es una revolución que ha cambiado la forma en que entendemos la seguridad y la confianza en la era digital. Con su capacidad de ofrecer transparencia, inmutabilidad y descentralización, la blockchain ha desbloqueado un nuevo mundo de posibilidades para aplicaciones en diversos campos, desde las criptomonedas hasta los contratos inteligentes. En siguientes entradas del blog trataremos otros aspectos interesantes de esta revolución, como quién lo creó, quién lo usa o cómo programar un smart contract. Manteneros al tanto para estar actualizados!

Si te ha parecido útil este post, te animamos a ver otros artículos de la categoría Algoritmos en nuestro blog. No olvides compartirlo con tus contactos para que ellos también puedan leerlo y opinar. ¡Nos vemos en redes!
Alejandro Arias
Alejandro Arias
Artículos: 4