Generación automática y explicación de modelos con Azure
30 diciembre, 2019

El Blockchain o cadena de bloques, hay que entenderlo como un libro de contabilidad único y distribuido que contiene de forma pública todas las transacciones (Bloques) que han ocurrido a lo largo del tiempo. Teniendo en cuenta las transacciones que han ocurrido previamente, se va avanzando en el tiempo de forma encadenada (Cadena).

En este Post, vamos a comprender cómo funciona esta tecnología, cuáles son sus ventajas y desventajas y por qué se considera que va a ser una revolución en diversos sectores, al plantear una nueva forma de entender las transacciones entre partes.

Características de BlockChain

Como características principales podemos nombrar las siguientes:

  • No existen intermediarios. Toda la gente tiene el mismo Blockchain dentro de la red, por lo que las transacciones son inmediatas y si alguien quiere trampear alguna transacción existirán muchas partes en muchos puntos del mundo que no lo permitirán, esto fomenta la transparencia.
  • No hay ninguna persona o gobierno que tenga un control total.
  • El sistema está plenamente basado en la criptografía.
  • Las transacciones se concentran en bloques que almacenan la información cronológicamente.
  • Una vez aceptada, la información no se puede borrar ni modificar, por lo que se puede consultar en cualquier momento.
  • Un Blockchain puede ser público o privado.

Entendiendo Blockchain

Los pasos que sigue cualquier transacción en Blockchain son los siguientes:

  1. Pedro quiere enviar dinero a Alba.
  2. La transacción se incluye dentro de un bloque de la red.
  3. El bloque se trasmite a todas las partes de la red.
  4. Los que están en la red aprueban que las transacciones son correctas.
  5. El bloque entonces puede añadirse a la cadena, lo que proporciona un registro de todas las transacciones que hubiera en el bloque.
  6. El dinero se mueve de Pedro a Alba.

Por ahora, nosotros vamos a ahondar en lo que denominamos “Bloque” para entender su importancia dentro de la Blockchain. Para ello hay que conocer los siguientes conceptos:

 

El Hast

Un Hast es una función criptográfica a la que se aplica un texto y genera un resultado de 64 caracteres (en el caso de SHA256), que siempre será el mismo para un mismo texto idéntico.  Gracias a esto es casi imposible trampear el sistema puesto que si se cambia una sola letra nos devolverá un resultado diferente.

Además de la seguridad, nos permite de una forma sencilla verificar si se ha modificado una cadena, ya que solo habría que introducir el texto y el HAST que se obtuvo en una función para validar si el texto se ha modificado sin necesidad siquiera de leer el texto.

Si alguien cambiara una transacción en el bloque anterior (el Hast obtenido para el siguiente bloque es producto del Hast anterior), el resultado sería totalmente diferente y el sistema no lo permitiría.

Por ejemplo:

Hola = 0085efc2026f2b8630a78e62bf4e277b6760225d05dff732505488c86245449e

Lola= 3e38b59e2c4708dca486b2c935a51f727ad7bf0ea38e9d442d0d595cb51f522a

Solo hemos cambiado una letra de la palabra y como se puede observar se ha generado un Hast totalmente diferente.

 

La Minería

Sirve para verificar la seguridad del sistema además de otras tareas, dependiendo de las reglas de cada red.

En el caso de Bitcoin también se utilizan para crear nuevos Bitcoins.

El Minero se encarga de validar las transacciones y verificarlas para generar el HAST que se usará en siguiente bloque a partir del verificado.

Para una tercera persona es muy fácil validar si el Minero ha resuelto el problema. Para ello solo tiene que aplicar el HAST SHA256 al HAST ANTERIOR + NONCE + TRANSACCIÓN + NBLOQUE.

“😉 No os preocupéis, lo explicaremos más adelante”.

 

Bloques

Un bloque es un contenedor de transacciones que se han realizado en la red Blockchain.

Para poder encadenar estos bloques cobra importancia la siguiente información

Información dentro de la cadena

Tamaño del bloque

Es la posición en la que está cada bloque dentro de la red o de la cadena.

Bloque y Hast Blockchain

El Hast

Lo utilizamos para resolver el problema matemático que se nos plantea dependiendo del tipo de red para dar por válidas las transacciones. En el caso de Bitcoin, por ejemplo, cogemos las transacciones del bloque + el Hast previo + Nonce, y le aplicamos un algoritmo de criptografía SHA256 para resolver el problema.

 

Información dentro del bloque

El Hast Anterior

A esta información se le denomina el eslabón. Lo usamos para encadenar las transacciones. La razón es que en todo momento sepamos cuál es el HAST anterior y lo utilicemos para generar el siguiente bloque.

Al estar encadenado, si alguien intentará hackear o trampear alguna transacción ya realizada, cambiaría automáticamente el Hast de toda la cadena permitiendo al sistema y a los usuarios dentro de la red detectar y no permitir confirmar la acción.

Bloque Hast anterior

 

TimeStamp

Es una fecha aproximada en la que el bloque está resuelto y fue confirmado.

Importante: Por motivos de seguridad para dar por resuelta una transacción se necesita un número determinado de confirmaciones (Normalmente 3, pero depende de las reglas estipuladas en la red).

Se recomienda esperar una hora de confirmación de bloques para dar una transacción por resuelta.

Bloque TimeStamp

La dificultad

Se utiliza como medio de control de transacciones.

Por ejemplo, en Bitcoin, se definió de forma transparente la cantidad de emisión de moneda hasta el año 2040. Pare ello se estimó que cada vez que un minero quiere resolver un bloque debe tardar aproximadamente 10 minutos. Para controlar esto se utiliza la dificultad.

Este sistema mira cada dos semanas cuántos bloques se han resuelto. Si en ese periodo de tiempo se han resuelto > 2016 bloques se baja la dificultad y si < 2016 se sube la dificultad del problema matemático.

Esto provoca que, aunque la tecnología evolucione y sea más rápida, no se pueda terminar de emitir la moneda antes del plazo definido de forma transparente.

Por ejemplo:

imaginaros que la dificultad radica en que tengo que hallar un Hast que valide de forma criptográfica la transacción, y que empiece por 4 ceros a partir de una serie de datos definidos por las reglas de la red en cuestión.

Bloque Hast y dificultad de red Blockchain

“Como podéis ver, hemos gastado una potencia computacional de 9239 intentos para hallar un Hast válido que empiece por 4 ceros”.

Si se encontrara de forma rápida, el sistema subiría la dificultad obligando a los mineros a resolver un problema consistente en encontrar un Hast que valide la transacción y empiece por 5 ceros, como mostramos en el siguiente ejemplo.

Bloque Blockchain mas dificultad

“En este caso, hemos gastado una potencia computacional de 235284 intentos para hallar un Hast válido que empiece por 5 ceros”.

 

Nonce

Es un número aleatorio que los mineros tienen que averiguar para resolver el problema matemático. Una vez resuelto, se dará por verificada la transacción y una vez confirmada, se generará un HAST que se enlazará con la siguiente cadena de bloques.

Si se aumentará la dificultad debido a que se resuelven cada dos semanas más de 2016 bloques, el sistema pondría como problema que el HAST a resolver fuera más difícil de obtener. Esto provocaría que fuera más difícil y se necesitara más coste computacional para dar con la solución.

 

Tx_Root

Por último, mencionaremos la parte del bloque que contiene las transacciones.

Bloque Datos transacciones Blockchain

Si se modificara cualquier dato dentro de un bloque de la cadena, de forma automática alteraría el resto de bloques, detectando de forma inmediata que se está intentando alterar la cadena. El sistema no permitiría realizar ese cambio y se podría detectar de forma ágil en qué punto de la cadena se sucede el ataque.

Por ejemplo: tenemos 3 bloques con transacciones encadenadas y validadas.

Bloques encadenados

“Fijaros que en el segundo bloque hay una transacción de Lola a Alba de 200€”.

Si yo fuera un Hacker y quisiera alterar esa información indicando que Lola ha transferido a Alba 2000€ en lugar de los 200€, alteraría toda la cadena de bloques a partir del bloque atacado, por lo que detectaría de forma sencilla a qué bloque y transacción se está atacando.

Bloque cadena rota

 

Función para resolver el problema que plantea el Hast

El problema consiste en hallar un Hast que al aplicarle el algoritmo criptográfico SHA256, valide la cadena de texto resultante de unir:

“La posición del bloque en la cadena” + “Numero aleatorio” + “Transacciones” + “Hast anterior”.

Además, el Hast que cumpla con la regla anterior, debe empezar por 4 ceros.

Como ejemplo sencillo, lo haríamos de la siguiente forma.

Función para resolver el problema

Codigo para resolver el problema de la red

 

Algoritmo criptográfico SHA265

SHA256

Blockchain en la actualidad

Actualmente se están abriendo muchos frentes para poder usar esta tecnología para diversos sectores, más allá del financiero o de las criptomonedas.

Destacamos los siguientes:

 

Colored Coins:

Se basa en Intercambios de activos en la red. Denominamos activo a una casa, un coche, un móvil….

Ventajas:

  • Se utiliza la red de Bitcoin como ventaja de todo su poder transaccional.
  • Intercambias un activo por otro o por una moneda sin la necesidad de transportarnos.
  • Las comisiones son muy inferiores a la de las transacciones tradicionales.
  • Menos burocracia y papeleo.

Desventajas:

  • Solo podemos hacerlo mediante Wallet especiales para estas Colored Coins.
  • Puede darse la posibilidad que estas Colored Coins, se pierdan dentro del Wallet y se pierda una propiedad.

 

Por ejemplo:

Si tienes una casa alquilada dándote beneficios, puedes venderla con el alquiler para que siga dando los beneficios al nuevo propietario.

 

Almacenamiento en la nube

Almacenamos a diario en la nube nuestros datos en servidores de terceros. Aunque nos dicen que son seguros, realmente no sabemos el uso que se está dando a nuestros datos.

Los datos de todo el mundo van a los mismos servidores de forma que toda la información está centralizada, con el agujero de seguridad que esto genera, ya que los Hacker se pueden centrar en un punto para obtener toda la información.

Blockchain solventa este problema replicando la información en distintos nodos, se encripta y se sube a la red con un meta-dato que nos permite acceder a la misma.

Si se hackean estos servidores necesitan de nuestras claves para acceder a la información. Si, por el contrario, alguien consigue nuestras claves debería saber en qué servidores está guardada la información para poder acceder a ella.

 

Registro de verificación de datos

Gracias al Hast y a la red de Blockchain sabemos que los datos que nos ofrecen no han sido modificados. Esto nos permite guardar documentos en la red con la seguridad de que nadie va a poder modificarlos sin que nos enteremos.

 

Contratos (Smart Contract)

Un sistema de contratos para compraventas. Una vez que se ejecuta no se puede modificar por lo que tendremos la seguridad de que se cumple.

Por ejemplo: en el sector de las apuestas…

Hacemos un contrato (Smart Contract) en el que:

si se da un resultado en un partido de fútbol se obtiene un beneficio y si se da otro se obtiene otro diferente.

Una vez confirmado el contrato, tenemos la seguridad de que cuando se den las circunstancias plasmadas en el mismo, se ejecutará el contrato y tendremos el beneficio o pérdida estipulada.

 

Supply Chain

Para verificar de dónde viene un producto.

Por ejemplo, a la hora de vender un cuadro…

Con el “TimeStamp” y la red Blockchain podemos saber de qué mano a qué mano ha ido pasando, hasta dar con el autor del cuadro y la fecha en la que se hizo.

 

Notaría

Tenemos la posibilidad de verificar y controlar todos nuestros documentos y subirlos a la red con la seguridad de que nadie lo va a modificar.

Seguridad automatizada y alquileres

Se basa en sistemas de seguridad a través de Blockchain para acceder a determinados sitios.

Por ejemplo, si alquilas una casa…

Se te da un Token o id único. Este se va regenerando según pagas las mensualidades. Tu llave y la puerta van asociadas a ese Token. Por lo que si no pagas el alquiler ese mes la llave no abre la puerta, por lo que no puedes entrar en la casa.

Ya se está utilizando esta tecnología en Hoteles con puertas que se abren mediante códigos. De forma que puedes adquirir un código de uso por el tiempo contratado dentro de la red Blockchain. De este modo, puedes alquilar una habitación en un hotel o una casa en Japón desde Madrid y una vez allí, ir directamente a la misma sin pasar por recepción o quedar con los dueños de la casa.

Votación

Implica que gracias al Blockchain podríais votar de forma secreta y una sola vez, ya que quedaría registrado quién ha votado sin conocer a quién he votado.

Además, como este sistema esta des-regularizado, nadie o ningún estado podría influir o modificar mi voto y si alguien lo hiciera se vería claramente.

 

Gestión eléctrica

Mediante la red Blockchain podrías comprar energía directamente a los productores.

De esa forma, la gente que genere o compre más energía de la que consume podría vender el excedente a sus vecinos. La ejecución de esta operación se realizaría, por un lado, a través de una pequeña red energética integrada en los contadores inteligentes, que se encargarían de registrar el uso de la energía. Por otro lado, una plataforma Blockchain para llevar a cabo las transacciones (P2P).

 

IOTs

La idea es que los dispositivos inteligentes sean capaces de negociar con otros dispositivos los mejores contratos.

Ejemplo, un coche eléctrico circula por la calle y cuando tenga niveles de batería bajos podrá conectarse de forma automática con un semáforo o cualquier sistema eléctrico que haya por la zona para negociar el mejor contrato, para recargar la batería con el sobrante eléctrico más ventajoso de forma inalámbrica o electromagnética.

 

Artefacto

Para poder representar las explicaciones dadas en este Post, he creado un artefacto que podéis descargar después de leerlo, para terminar de entender la tecnología Blockchain.

Artefacto Blockchain Kabel

 

Si os apasiona el tema y queréis conocer más a fondo sobre esta tecnología podéis acceder a la academia de Bit2Me, que aunque está especializado en compra venta de Bitcoins, te informan perfectamente sobre toda la tecnología que hay por debajo y cómo empezar a desarrollar sobre ella.

Espero que os haya gustado este artículo y lo más importante, que os haya servido para entender un poco más esta tecnología.

Hasta el Próximo. 😉

Puedes descargarte aquí el Artefacto. Para descomprimirlo tienes que usar la siguiente contraseña: kabel

 

Si queréis comentarnos lo que sea podéis hacerlo en info@kabel.es
También podéis seguirnos en Twitter, LinkedIn, Facebook

 

Kabel

 

Licencia de Creative CommonsEste obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial 4.0 Internacional.

Compártelo: Share on FacebookTweet about this on TwitterShare on LinkedInPin on Pinterest

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

NEWSLETTER