22
octubre
2019

Blockchain

blockchain

El blokchain (o cadena de bloques) es una tecnología que permite crear transacciones seguras, privadas, y sin terceros de confianza (descentralizada) utilizando sistemas criptográficos.

En esencia, blockchain es una base de datos distribuida, y se modela como una cadena virtual (electrónica) de bloques, enlazados secuencialmente uno detrás de otro, donde cada uno de ellos contiene información.

Una blockchain no es más que una lista de transacciones almacenadas en muchas máquinas diferentes. También llamado distributed ledger o “libro mayor distribuido”, las modificaciones en esta lista transaccional se replican a todas las máquinas conectadas, conocidos como peers o “pares”, muy rápidamente.

Una blockchain se implementa en un software que contiene una base de datos replicada en red, capaz de notificar a otros pares cuando se modifican los datos y que garantiza que todos los pares mantengan los mismos datos.

La blockchain puede entenderse como un método para registrar datos de forma compartida, pues existen copias en la red y en los dispositivos de cada participante en la creación de cada transacción, al que no puede accederse sin determinados permisos y en el que no se puede borrar información, solo añadir nuevos registros, lo que permite que la colectividad se encargue de proteger los datos que contiene, alertando de posibles faltas de concordancia derivadas de cada actualización. Gracias a ello, se protege la integridad de toda la cadena.

La implementación de una blockchain proporciona diferentes sistemas de permiso para establecer quién puede leer y escribir transacciones, y como característica muy importante, garantiza criptográficamente mediante la infraestructura de clave pública o asimétrica (PKI) la validez de las mismas, haciendo que las modificaciones maliciosas sean notoriamente obvias o absolutamente imposibles.

La información básica del contenido de un bloque que conforma la cadena de bloques (blockchain), puede entenderse como:

  • Una cantidad determinada de registros o transacciones válidas.
  • Información referente al bloque (metadatos).
  • Vinculación con el bloque anterior y el siguiente a través del hash de cada bloque, entendido como un código único de identificación, que funciona como la huella digital del bloque.

Por lo tanto, cada bloque tiene un lugar específico e inamovible dentro de la cadena, ya que cada uno contiene información del hash del bloque anterior. La cadena completa se guarda en cada nodo de la red que conforma la blockchain, por lo que se almacena una copia exacta de la cadena en todos los participantes de la red.

A medida que se crean nuevos registros, estos son primeramente verificados y validados por los nodos de la red, y luego añadidos a un nuevo bloque que se enlaza a la cadena.

Las computadoras que ejecutan el software de la blockchain dentro de la red, y verifican la validez transaccional, son “recompensadas” por cada transacción que procesan; este proceso es conocido como “minería”.

El cálculo involucrado en la verificación y adición de las transacciones es muy difícil y, por lo tanto, requiere de computadoras potentes que consumen grandes cantidades de electricidad.

La dificultad de estos algoritmos aumenta a medida que más pares se crean con la esperanza de verificar transacciones para obtener “recompensas”, lo que significa que el costo monetario de energía, equipamiento y espacio físico, se incrementa considerablemente a medida que aumenta el uso de la red.

Seguridad en Blockchain

Al constituir blockchain una tecnología distribuida, donde cada nodo de la red almacena una copia exacta de la cadena, se garantiza la disponibilidad de la información en todo momento.

En caso de que un atacante quisiera provocar una denegación de servicio, debería anular todos los nodos de la red, ya que basta con que al menos uno esté operativo para que la información esté disponible.

Por otro lado, al ser un registro consensuado, donde todos los nodos contienen la misma información, resulta casi imposible alterar la misma, asegurando su integridad, dado que cada bloque está matemáticamente vinculado al bloque siguiente, y una vez que se añade uno nuevo a la cadena, el mismo se vuelve inalterable.

Si un bloque se modifica su relación con la cadena se rompe, es decir, que toda la información registrada en los bloques es inmutable y perpetua. De esta forma la tecnología permite almacenar información que jamás se podrá perder, modificar o eliminar.

Además, cada nodo de la red utiliza certificados y firmas digitales para verificar la información y validar las transacciones y los datos almacenados en la cadena, lo que permite asegurar la autenticidad de dicha información.

Ataque del 51%

No obstante, si un atacante quisiera modificar la información en la cadena de bloques, debería modificar la cadena completa en más del 50% de los nodos mineros de la red. Este incidente es conocido como Ataque del 51%.

Para que este tipo de ataque se produzca, es necesario que el atacante disponga de suficiente “hardware minero” para exceder la capacidad de todos los demás mineros de la red blockchain, lo que supone un elevadísimo costo en equipamiento, que se incrementará en el tiempo.

Como toda la información transaccional en la cadena de bloques es pública, las acciones fraudulentas en corto tiempo serían notadas, pues la ecuación matemática a resolver por el software de minería detectaría el fraude y dejaría en evidencia al atacante, haciendo que su inversión en equipamiento no fuera rentable.

Siempre que el coste de establecer una mayoría de nodos maliciosos resulte prohibitivo y existan mejores incentivos para actuar de forma honesta, el sistema será capaz de prosperar sin perturbaciones significativas. No obstante, vale la pena señalar, que las redes blockchain de menor tamaño son ciertamente susceptibles a estos ataques.

Fork o Bifurcación

Otra de las amenazas puestas en evidencia sobre la tecnología blockchain se conoce como fork o bifurcación, pues bajo determinadas circunstancias es posible que una cadena de bloques se divida en ramas separadas.

En una red blockchain, cada minero (entendido como el equipo que verifica las transacciones), alcanza una recompensa por incorporar nuevos bloques a la cadena. En este sentido, puede ocurrir que más de uno intente incorporar un bloque al mismo tiempo (teniendo como incentivo obtener la recompensa), cuando esto sucede, existe la probabilidad de que una parte de la red reciba el bloque de uno de ellos, y la otra parte el otro bloque; en este momento ocurre la bifurcación de la cadena.

Producto de la bifurcación, la cadena o fork que reciba su siguiente bloque más pronto se adelantará a la otra. Con el fin de consolidar sus futuras recompensas en la cadena de consenso (la más adelantada), los equipos mineros que aún están en la cadena perdedora (la más atrasada) migrarán rápidamente, pues mientras más tiempo permanezcan en la atrasada, sus transacciones no se verán reflejadas en la cadena de bloques adelantada, y por tanto no alcanzarán las recompensas consensuadas por la red.

El incentivo de los mineros es obtener las recompensas, por lo que determinar la cadena ganadora ante una bifurcación o fork es muy importante, para migrar rápidamente a ella. Por lo general, este problema se resuelve en 6 bloques o menos, que equivale en promedio a una hora de transacciones en la actualidad; en otras palabras, se considera como cadena consensuada (ganadora) aquella que logra que se superpongan hasta 5 bloques más sobre el que contiene la bifurcación.

En este sentido, un atacante que de alguna manera obtiene control de la mayoría del poder minero de una red blockchain (ataque del 51%), puede engañar a otros usuarios enviándoles transacciones falsas, y luego crear una versión alternativa de la cadena.

No obstante, llevar adelante un ataque del 51% sobre una red blockchain con el objetivo de crear una bifurcación, puede resultar demasiado costoso por el poder de cómputo que requiere y el costo de conseguirlo, lo que implica que su objetivo esté dirigido fundamentalmente a redes de cadena de bloques pequeñas.

Brechas en Smart Contracts

La tecnología blockchain también se utiliza para los denominados contratos inteligentes entre pares (smart contract por sus siglas en inglés). El objetivo de estas plataformas es permitir a una red de pares administrar sus propios contratos inteligentes creados por los usuarios.

Primero se escribe un contrato mediante un código y se sube a la cadena de bloques mediante una transacción. Una vez en la cadena de bloques el contrato se acepta como válido, y puede ser utilizado para el intercambio de transacciones; de esta forma, si se cumple una determinada condición (verificable por un sistema informático) se realice o desencadene una cierta operación.

Un atacante puede explotar una falla en la elaboración de un contrato inteligente activo contenido sobre blockchain, ya que, al no poder reescribirse, sino solo actualizarse mediante otro bloque agregado a la cadena, el tiempo que medie entre estas acciones, una vez que el ataque es descubierto, puede resultar muy costoso.

La única forma de recuperarse es volver al punto de la cadena de bloques previo al ataque, crear un fork para una nueva cadena, y lograr que toda la red acepte usar esa blockchain en lugar de la otra.

En el Futuro

Al basarse en operaciones matemáticas, el blockchain es hasta ahora uno de los métodos más seguros que existen para crear, modificar, compartir y almacenar información, por lo que podría aplicarse a cualquier ámbito que necesitara realizar alguna de esas acciones, sobre todo si en ellas tienen que participan múltiples usuarios.

La integración de blockchain con otras tecnologías como el IoT: Internet de las Cosas, puede resultar extremadamente útil para el intercambio de transacciones que requieran de una verificación.

Mientras exista la necesidad de realizar transferencias de valor entre partes, en un entorno de desconfianza y medios inseguros, el blockchain tendrá cabida, pues promete transacciones seguras sin necesidad de intermediarios.

La tecnología blockchain continúa siendo una gran herramienta para garantizar la seguridad, aunque se han identificado casos que la han convertido en vulnerable. El paso del tiempo y el desarrollo natural del ecosistema tecnológico, incluyendo la evolución del ciberataque, crean desafíos que la ponen a prueba, pues como afirma una regla en el mundo de la seguridad: toda tecnología es vulnerable.