Informes

Fundamentos de la Blockchain

DecentraLAB.tech

Aunque originalmente la cadena de bloques fue creada para almacenar el historial de transacciones del bitcoin, con el paso del tiempo se le ha visto gran potencial para ser aplicada en otros ámbitos debido a las propiedades que ofrece. La blockchain proporciona una base de datos distribuida inmutable basada en una secuencia creciente de bloques. Estos bloques, al ser públicos, conforman un sistema abierto que potencia la confianza en base a la transparencia y a la solidez de la técnica de construcción de la blockchain. El sistema, aunque es abierto, es también semi-anónimo: los usuarios se identifican con claves públicas (pseudónimos), no con sus identidades reales. 

En este contexto, podemos encontrar una primera relación entre la blockchain y big data: la necesidad de asegurar un

entorno de pagos legal y libre de fraudes ha llevado al desarrollo de herramientas de análisis basadas en técnicas de big data para procesar la gran cantidad de datos representados en la blockchain.

Fundamentos de la Blockchain

La cadena de bloques es una base de datos que puede ser compartida por una gran cantidad de usuarios en forma peer-to-peer y que permite almacenar información de forma inmutable y ordenada. En el caso de bitcoin, la información añadida a la blockchain es pública y puede ser consultada en cualquier momento por cualquier usuario de la red. La información solo puede ser añadida a la cadena de bloques si existe un acuerdo entre la mayoría de las partes. Transcurrido un cierto tiempo, se puede asumir que la información

agregada en un bloque ya no podrá ser modificada (inmutabilidad). La creación de nuevos bloques es realizada por nodos denominados «mineros».

Los mineros son nodos de la red que participan en el proceso de escritura de datos en la blockchain a cambio de una recompensa económica. La validez de la escritura de un bloque por parte de un minero es revisada y acordada tácitamente por el resto de participantes.

El proceso que permite alcanzar un consenso con garantías entre los mineros de la blockchain para el orden de escritura de bloques es la denominada prueba de trabajo o Proof-of-work (PoW). En concreto, para que un bloque sea aceptado, el minero tiene que ser el primero en completar una PoW para el siguiente bloque de la blockchain. El PoW es un rompecabezas matemático de dificultad ajustable.

En particular, la PoW consiste en encontrar un parámetro (nonce) que consiga que al hacer el hash sobre todo el bloque (incluido el nonce) se obtenga un valor inferior a la dificultad actual establecida por la red. Dicho de otra forma, se trata de encontrar un nonce que consiga un valor hash del bloque con un determinado número de ceros al inicio. Debido a las características de la función de hash, no es posible calcular estos valores analíticamente, es decir, para obtener un bloque válido, el minero debe recurrir a la fuerza bruta: probar valores del parámetro nonce hasta hallar uno válido. El proceso de probar valores o fuerza bruta es un proceso computacionalmente costoso, de ahí que este mecanismo se conozca como «prueba de trabajo».

La PoW hace que la creación de bloques con la intención de subvertir el consenso tenga un coste alto para el atacante. Por otra parte, la dificultad de este rompecabezas criptográfico es fácilmente ajustable: se puede incrementar la dificultad aumentando el número de ceros necesarios para completar la PoW o decrementarla reduciendo dicho número de ceros. En particular, en bitcoin la dificultad se reajusta cada 2016 bloques (que equivalen a catorce días), con tal de que la creación de nuevos bloques tenga una frecuencia aproximada de un bloque cada diez minutos.

La Blockchain o cadena de bloques es una base de datos digital distribuida, segura e inmutable.

Es distribuida porque todos los registros están enlazados y porque cada usuario que participa de ella guarda una copia, es decir, todos cuentan con la misma información. Esta es una de las ventajas de blockchain: la descentralización de la información, que hace que los intermediarios no sean necesarios para generar confianza en las transacciones.  

Es segura porque los registros están cifrados para proteger la privacidad y la seguridad de las transacciones. Por estas características, una cadena de bloques no puede ser modificada por un usuario sin la validación del resto de participantes.

Y es inmutable ya que toda la información registrada en este gran libro contable no puede ser borrada.

No existe una única blockchain, sino que se pueden generar tantas como se desee.

Blockchain no sólo es descentralizada, sino una red distribuida y por tanto menos vulnerable a los ataques.

Existen varios tipos de blockchain:

Públicas: abiertas a todo el mundo, como por ejemplo la de Bitcoin.

Privadas: a las que solo se puede acceder por invitación de los propietarios de la cadena.

Híbridas: en las que los participantes son privados, pero las transacciones son públicas.

La creación de una Blockchain o cadena de bloques consta de diversos procesos: almacenamiento, transmisión y validación.

Glosario técnico del Blockchain

Esta tecnología se basa en varios conceptos, ya existentes antes de la disrupción de Blockchain. Hagamos un repaso de los más importantes:

Nodos: se refiere a los usuarios que conforman la red; es decir, a cada ordenador que guarda una copia de los registros de la Blockchain.

P2P (Peer to peer): es una red descentralizada donde todas las partes interactúan entre sí, en contraposición a una red con servidor central.

Bloque: paquete de datos que contiene las transacciones realizadas en un determinado período de tiempo. Es cada una de las divisiones de la cadena.

Hash: una función criptográfica que aplica un algoritmo a la entrada de datos. Así, marca los bloques con una salida alfanumérica que resume y protege la información. El hash garantiza la inmutabilidad de los registros.

Cadena: es el enlace criptográfico que a través del hash mantiene cada bloque unido con el anterior.

Minería de datos o Data Mining: es el proceso de resolución de problemas criptográficos que mediante el uso de hardware informático añade bloques recién creados y encriptados mediante la función hash. Los mineros de datos o data miners consiguen mediante la validación de bloques que se puedan añadir nuevos y por ello son recompensados.

Consenso: es una de las bases del Blockchain. Al ser una BBDD distribuida, la validación de los datos no se realiza desde un usuario u organismo central, sino a través del consenso de todos los participantes de la red. Este consenso se consigue estableciendo un algoritmo de validación que es el que siguen los mineros para verificar las transacciones. Los más conocidos son el Hashcash-SHA256, Hashcash-Scrypt y Hashcash-CryptoNight.

¿Cómo funciona Blockchain?

Como hemos visto, una cadena de bloques se basa en la autovalidación inviolable de los datos para seguir desarrollándose. La clave es la función hash.

El hashing, o hash, es un término frecuente cuando se habla de la tecnología de blockchain. El hashing se refiere a la transformación y generación de datos de entrada de cualquier longitud en una cadena de tamaño fijo, que se realiza mediante un algoritmo específico.

La implementación de una función de hash criptográfica sirve para evitar transacciones fraudulentas, duplicar gastos en blockchain y almacenar contraseñas.

En resumen, se trata de un número único que no es duplicable según el algoritmo. Por lo tanto, se utiliza con frecuencia para verificar la autenticidad de un archivo. Para contextualizar, cuando hay un cambio en un archivo con hash, su hash también cambiará automáticamente. Y cada hash posterior está vinculado al anterior, lo que garantiza la coherencia de todos los bloques.

Ethereum le ha dado una vuelta de tuerca más al concepto de blockchain. Su principal objetivo es convertirse en una plataforma de computación y su propuesta de valor: la creación de contratos inteligentes. Algo que va mucho más allá de las transferencias económicas.

Un smart contract o contrato inteligente es un contrato con la capacidad de autocumplirse.

¿Cómo? Se trata de una pieza de código generado por un software informático que, al ejecutarse de manera automática, facilita, asegura y hace cumplir los términos de un contrato a medida que se cumplen las condiciones estipuladas previamente por las partes implicadas y firmantes.

Las ventajas que aportan los contratos inteligentes es que son inmutables (no hay posibilidad de modificarlos ni falsificarlos) y son seguros, puesto que se ejecutan en una red distribuida y no es un servidor central. Como están programados para ejecutarse automáticamente y cumplir tareas, los smart contracts no necesitan de intervención directa de un intermediario, ni están sujetos a la interpretación de alguna de las partes: si tiene lugar el evento A, la consecuencia B se pondrá en marcha de forma automática.

Ethereum es toda una revolución también para programadores y desarrolladores. Los equipos encargados de desarrollar contratos inteligentes se enfrentan a varios retos, por las propias características de estos contratos.

Por un lado, los desarrolladores deberán tener un sólido conocimiento de Blockchain y del lenguaje correspondiente. En Ethereum los contratos inteligentes se programan con Solidity, un lenguaje de programación.

CONCLUSIÓN

La blockchain permite implementar una base de datos distribuida, pública e inmutable basada en una secuencia creciente de bloques. Esta base de datos proporciona de forma intrínseca tolerancia a fallos en nodos, robustez frente a manipulación y al ser pública,

transparencia. Los usos de esta tecnología son potencialmente inmensos y por ello se considera como una de las tecnologías con más potencial disruptivo de los

últimos años.

La posibilidad de tener una base de datos distribuida e inmutable a posteriori tiene un sinfín de utilidades prácticas que solo empiezan a vislumbrarse. Las cripto-monedas han sido su primera aplicación de éxito debido a las necesidades de seguridad y transparencia de los

sistemas de pago y a la posibilidad de eliminar intermediarios. En el futuro, sin embargo, es posible que encontremos sistemas de blockchain en una infinidad de contextos y sistemas. 

Related Posts