Tutoriales

Blockchain: una tecnología más allá de Bitcoin

Últimamente la tecnología blockchain (cadena de bloques en castellano) está en boca de todos, no solo por las criptomonedas, sino por las capacidades que ofrece. El término es una representación más bien aproximada, ya que realmente serían algo más bien como archivos que almacenan determinada información.

Qué es blockchain

Es un registro único de todo lo que está sucediendo dentro de una red donde todos los nodos conectados a la misma tienen una copia. Los bloques de una blockchain almacenan información del bloque que les preceden y ceden información al siguiente bloque que se creara.

Dentro de cada bloque se almacena diferente información. El elemento más importante que se almacena en un bloque es una determinada cantidad de transacciones. Adicionalmente un bloque puede albergar otros datos importantes, como el identificador del bloque anterior, una marca de tiempo o el nonce. Es precisamente el bloque y los elementos que almacena combinados con la criptografía es lo que dota de seguridad a la tecnología blockchain.

Cualquier intento de manipular una transacción en un bloque almacenado en la cadena, será estéril. Esto se debe a que todos los elementos del bloque se almacenan matemáticamente en un hash, que cambiara si cambiamos cualquier parámetro del bloque. La red detectara el intento de engaño y lo rechazara. Además, cuanto más antiguo es el bloque, menor es la probabilidad de manipulación, ya que obligaría a alterar los bloques posteriores al que ha sido manipulado.

Os dejamos un ejemplo de como el más mínimo cambio altera el hash de salida:

Texto original Texto comprimido con SHA256
Estoy leyendo Profesional Review 12861b1456906e905b0506de6206f5a8c42411b235abea2b46ba470d36341eb4
Estoy leyendo profesional review 5fcbbd53c1257c083700ee4d012ec97545e9e61beead619ddeff4ec37682e161
Estoy leyendo ProfesionalReview 79cc02fa392fff995a9e1add051d62b4a5645b45a004064994c7804f01b80bb8

Como podemos ver, cambiando las mayúsculas por minúsculas o eliminar un simple espacio genera un hash diferente.

Origen de la tecnología blockchain

Aunque Bitcoin y el resto de criptomonedas hacen uso de la cadena de bloques, realmente esta tecnología no fue desarrollada por Satoshi Nakamoto. La tecnología blockchain surge en 1991 de la mano de Stuart Haber y W. Scott Stornett. Su primera implementación de esta tecnología buscaba crear una cadena de bloques basada en la criptografía en la que no se podían manipular las marcas de tiempo (timestamp) de los documentos.

Posteriormente, en 1992, mejoraron el sistema introduciendo los Árboles de Merkle, mejorando la eficiencia. Este mecanismo permitía almacenar muchos más documentos en un único bloque.

Adam Back, en 1997, desarrollo HashCash, un sistema monetario alternativo basado precisamente en los preceptos indicados. Wei Dai, en 1998, conceptualizado B-Mony y en 1998, Nick Szabo, quien desarrollo la idea de los smart contract, anunciaba Bit Gold. Tanto B-Money como Bit Gold jamás se llegaron a desarrollar y se quedaron como elementos conceptuales. Indicar que muchos opinan que Bit Gold sirvió como base para crear Bitcoin.

Pintando el salón de casa

Un hombre entra en una tienda de pintura y solicita al dependiente un bote de amarillo canario de un litro.

El dependiente consulta en el ordenador los tintes de colores que debe usar y las proporciones para convertir un bote de color blanco en un bote de color amarillo canario. Tras esto el dependiente añade los tintes al bote, más una pequeña cantidad de pintura de un bote indeterminado. Cierra el bote y lo introduce en una máquina que lo agita un rato hasta que todo está mezclado y obtenemos el color deseado.

Antes de entregar el bote, el dependiente revisa que el color es correcto y recoge una muestra muy pequeña de la pintura. Este entrega al bote al cliente, le paga y se va a su casa para pintar.

Del bote de pintura al bloque de la cadena de bloques

Según nuestro ejemplo, un bloque es prácticamente igual a un bote de pintura. La salvedad es que en nuestro bloque hay información en vez de pintura.

Los tintes introducidos al color blanco para obtener el amarillo canario son sencillamente las transacciones y otros datos que se almacenan un bloque. En nuestro ejemplo obtenemos un color, pero en un bloque lo que obtenemos es un hash, un identificador único basado en toda la información contenida.

¿Te acuerdas del bote indeterminado de pintura que añadimos? Pues esta muestra de pintura es del cliente anterior. Cuando se genera un nuevo bloque, este almacena información del bloque que le precede, para evitar que entre medias se pueda introducir un nuevo bloque. Y la muestra de pintura que coge antes de vender el bote de pintura, es la información para generar el próximo bloque.

Una cosa más, ¿te acuerdas que el cliente le ha pagado al vendedor? Pues bien, cuando se genera un nuevo bloque, al minero que lo ha creado se le paga con nuevas criptomonedas que pasan a estar en circulación y que antes no «existían»

Características de la tecnología blockchain

Hay algunos elementos que se deben cumplir para que hablemos de tecnología blockchain, al menos de la construcción desarrollada para las criptomonedas. Estas características son:

  • Distribuida: La tecnología blockchain, lejos de lo que se suele indicar que es una red descentralizada, es una tecnología distribuida. Todos los nodos de la red son iguales, tienen una copia de la información de la blockchain y que uno de ellos se desconecte no afecta en absolutamente nada a la red.
  • Consenso: Para cada criptomoneda existen una serie de normas que todos los miembros de la red deben cumplir. Estas reglas establecen el funcionamiento de la red y el mecanismo de validación de las transacciones y el proceso de generación de los bloques.
  • Publica: Todas las transacciones y todas las operaciones de la red son públicas, pudiéndose leer por cualquiera.
  • Seguridad: La información de los procesos realizados se almacena en bloques impidiendo la manipulación de la información y el doble gasto.
  • Inmutable: Como la tecnología blockchain se basa en la criptografía, cualquier mero intento de alterar la información de un bloque, se detecta fácilmente. Los intentos de manipulación se detectan rápidamente por el resto de nodos y se rechaza la cadena o el bloque con la información alterada. De este punto se deriva que sea resistente a la censura.
  • Permisionless: Hablamos de una tecnología accesible a todo el mundo, donde no necesitamos el permiso de nadie para acceder a la red. Simplemente debemos descargar alguno de las wallets disponibles y empezar a operar.
  • Trazabilidad: Se puede seguir el rastro de cualquier transacción realizada, ya que las transacciones son públicas. Esto permite auditar y seguir cualquier transacción. Precisamente este parámetro es el que hace que criptomonedas como Bitcoin o Ethereum no sean óptimas para las actividades ilícitas.
  • Privacidad: No se almacena información alguna de los usuarios que operan en la red. Se confunde muchas veces la privacidad con el anonimato, algo que nativamente la tecnología blockchain no ofrece, aunque se puede conseguir en algunas monedas, como Monero. El anonimato sería la imposibilidad de rastrear las transacciones, haciendo imposible conocer al emisor y receptor de los fondos. Dentro de Bitcoin o Ethereum se puede saber quien es el emisor y el receptor, al menos sus carteras. La privacidad se rompe si revelamos que una clave pública (o dirección) es de nuestra propiedad y esto se puede hacer mediante un pago o usando una exchange.
  • Open source: El código de la tecnología blockchain es accesible a todo el mundo, ya que está publicado a disposición de todos. Cualquiera puede bajarse el código, auditarlo, modificarlo y hacer lo que quiera con este código (menos lucrarse, claro).

Actualmente se habla mucho de blockchains para usos privados, lo cual rompe con muchos de los aspectos descritos en este apartado. Estas blockchains «privadas» requieren permiso para acceder a usarlas, el código no es accesible, no son redes distribuidas, no existe capacidad de trazar todos los movimientos y tampoco son públicos, no son resistentes a la censura y carecen de privacidad, ya que para acceder a estas redes centralizadas y opacas debemos identificarnos.

Qué se almacena en un bloque

Más o menos podemos tener claro que es una cadena de bloques, pero para entenderla bien debemos saber que se almacena en un bloque. Es precisamente la información almacenada en un bloque el elemento clave, y esta es:

  • TX Root: Es una construcción de Árbol de Merkle que combina el hash de todas las transacciones en un hash root que las engloba a todas. Vendría a ser una compresión de todas las transacciones como si fueran una, simplificando la creación del bloque.
  • Timestamp: Las marcas de tiempo son otro elemento muy importante dentro de los bloques. Es un registro de la fecha y la hora, según el tiempo UTC que nos dice cuando y a que hora se generó este bloque.
  • Nonce: Es un número aleatorio que solamente se puede usar solo una vez y que requiere de una gran capacidad de cómputo. Los nonce se utilizan para garantizar que el bloque no ha sido manipulado.
  • Coinbase: Cantidad de monedas que se ponen en circulación con el bloque generado. En el caso de Bitcoin, el coinbase es de 6.25 BTC por bloque y en Ethereum es de 2 ether por bloque.
  • Dificultad: Valor matemático que nos dice la dificultad para la generación de un hash válido.
  • Height: Indicador de la altura de bloque. Sencillamente nos dice cuál es el número del bloque y sirve también para saber cuantos bloques hay en la blockchain.
  • Tamaño (en bytes): Es el peso total del bloque que normalmente se presenta en bytes.
  • Transmisor: Nos dice quien ha sido el minero o el pool de minería que ha generado el bloque.
  • Encabezado: Es una información que se genera vital para la creación del siguiente bloque.
  • Volumen: La cantidad de criptomonedas que se han movido entre todas las transacciones almacenadas en este bloque.
  • Block fee: Suma de todas las comisiones de las transacciones del bloque.

Porblema de los Generales Bizantinos

Es posiblemente que esto no te suene de absolutamente nada, pero es muy importante. El Problema de los Generales Bizantinos fue postulado en la década de 1980 y describe un dilema entre participantes aislados los cuales se deben coordinar para realizar unas acciones.

Se describe un grupo de generales con sus tropas que están rodeando una gran ciudad. Estos generales deben decidir si atacan o no, y solo lo pueden hacer comunicándose mediante mensajeros.

Los generales pueden optar por apoyar un ataque o por retirarse. No importa en absoluto la decisión que tome cada uno, siempre y cuando el resto de los generales tomen la misma decisión. Además, si deciden lanzar un ataque, este solo tendrá éxito si todos atacan al unísono.

El problema reside en dos circunstancias claves. La primera, que el mensajero sea interceptado con el mensaje, en el cual se indica que «atacaremos al anochecer» de ese mismo día. Dicho mensaje puede ser reemplazado por otro que indique que «atacaremos mañana al alba». La segunda circunstancia es que uno de los generales sea un traidor (como en Among Us) y engañe al resto de miembros para que sean derrotados.

Se requiere desarrollar un mecanismo de consenso, aún con la existencia de un miembro malicioso o el mensaje sea interceptado. Mantener la integridad de una base de datos, responde al mismo principio. Pero en la tecnología blockchain no hay un tercero confiable que se encargue de validar la información, ya que los usuarios se comunican entre sí.

Dentro de la tecnología blockchain existen una serie de reglas firmes aceptadas por todos, denominado consenso. Además, todos los miembros de la red tienen una copia de toda la información. Se consigue con esto una resistencia a usuarios maliciosos que puedan corromper la red. Precisamente este conjunto de elementos permite conseguir una Tolerancia a Fallas Bizantinas.

Palabras finalaes sobre blockchain

Una cadena de bloques podemos definirla de manera básica como una serie de documentos que almacenan información y que están «unidos«. Podríamos incluso identificarlo como un libro enorme al que se le van añadiendo páginas y páginas. Todas las páginas están numeradas, contienen una serie de datos que hemos comentado y de la que todos los miembros de la red tienen una copia.

Te explicamos qué son y cuáles son las características de las criptomonedas

Esta tecnología lo que nos aporta es seguridad y elimina la necesidad de tener a terceros confiables que controlen la red. Cualquier intento de manipulación será fácilmente detectado por los miembros de la red y será inmediatamente rechazada. Además, el atacante malicioso será expulsado de la red por parte de los miembros confiables.

Recent Posts

  • Tutoriales

Actualiza tu equipo en estas fiestas de la mano de NVIDIA GeForce RTX con estas ofertas

NVIDIA no solo da razones teóricas, sino fundamentos en forma de ofertas de todo GeForce…

2 horas atrás
  • Tarjetas gráficas

Nvidia Blackwell: Los problemas de temperaturas habrían sido solucionados

Hace algunos meses salió una información que indicaba que las aceleradoras de IA Nvidia Blackwell…

3 horas atrás
  • Tarjetas gráficas

Jaguar Shores es revelado como el sucesor de Falcon Shores, la próxima aceleradora de IA de Intel

Intel revela sus próximas aceleradoras Jaguar Shores, que van a llegar después del lanzamiento de…

4 horas atrás