CD: Noticias de Bitcoin, Ethereum, ICO, Blockchain y Criptomonedas

Inmutabilidad de blockchain: ¿por qué la cadena de bloques de Bitcoin es inmutable?

La inmutabilidad de blockchain es uno de los rasgos más invocados de esta tecnología y refiere, en teoría, a su capacidad para conformar un registro inalterable de datos…

Pero en realidad, esto no sería aplicable a todas las blockchains existentes. Este atributo no corre para las cadenas de bloques privadas. Las blockchains privadas o permisionadas no son inmutables, ya que quienes tienen las autorizaciones de la red pueden realizar alteraciones según sus consideraciones.

Sin embargo, la blockchain de Bitcoin sí es inmutable.

O dicho diferente, la información almacenada o compartida en la cadena de bloques de Bitcoin no puede eliminarse ni modificarse, sin que ello no salte de inmediato.

Cuando se habla de la cualidad inmutable de Bitcoin no se debe, en rigor, a “la tecnología blockchain”, sino que específicamente a su método de consenso Proof of Work, el primer algoritmo de consenso implementado en un protocolo blockchain y motor de diferentes cadenas de bloques.

Lo más correcto sería decir que la blockchain de Bitcoin es inmutable debido al Proof of Work.

En términos muy sintéticos, la invocada inmutabilidad de blockchain se debe, básicamente, a los algoritmos de consenso y la criptografía.

Algortimos de consenso y la naturaleza inmutable del Bitcoin

Un atributo común de las plataformas que emplean la tecnología blockchain es que operan como redes descentralizadas, sin una autoridad central encargada de almacenar la información ni de validar las transacciones realizadas.

¿Cómo se toman, entonces, las decisiones? Las cadenas de bloques han incorporado en sus protocolos diferentes algoritmos de consenso, es decir mecanismos de tomas de decisiones para llegar a un acuerdo entre los distintos participantes de la red de forma descentralizada.

¿Qué sería, en concreto, aquello de la descentralización? Distribución de mineros y nodos

Al no existir en Bitcoin una autoridad, es decir un nodo central y único, todos los participantes de la red tienen una copia idéntica del libro mayor. Esos participantes son los “nodos”, los responsables de validar matemáticamente las transacciones y nuevos bloques.

Cada copia que tiene cada nodo posee el mismo histórico completo de todas las transacciones realizadas desde el origen (3 de enero del 2009).

Pero la verificación de transacciones/bloques no es en sí mismo minar, sino que implica validar que el trabajo de minería ha sido correcto, es decir las operaciones matemáticas efectuadas para la validación.

En caso de que la operación sea correcta, los nodos la agregan a su copia del libro. En caso contrario, es desechada por ellos.

Los nodos son los únicos actores del ecosistema con la facultad de validar. Los mineros, por su parte, se encargan de crear los bloques, piezas ineludibles para que las transacciones sean validadas y seguras.

Como aclara un artículo de Academy Bit2me, los nodos “no son mineros necesariamente”, sino que…

los nodos son todos aquellos ordenadores que están unidos a la red P2P Bitcoin. Los mineros también son nodos, pero con una funcionalidad activada para resolver problemas de minado, por lo que para ser un nodo no necesitas gastar electricidad más allá de lo que supone tener un ordenador encendido con conexión a Internet. La seguridad de Bitcoin (y todo sistema distribuido) es directamente proporcional a la descentralización de sus nodos“.

Si bien Bitcoin cuenta con millones de usuarios de todo el mundo, en agosto de 2018 sólo existían unos 10.000 nodos. Como la mayoría de los usuarios no posee su propio nodo, se usan nodos de otros (ej: usuarios de monederos online, de plataformas de intercambio, etc.)

¿Qué rol juegan los algoritmos de consenso?

La red de Bitcoin se encuentra programada para seguir la cadena de bloques más larga.

Si más del 51% de los nodos adoptan algo por cierto, esa sería “la verdad”, al tratarse del “veredicto” de la mayoría. Esa sería “la cadena más larga”, por contar con el apoyo del 51% de la red.

El algoritmo Proof of Work o “prueba de trabajo” exige que los nodos participantes de la red verifiquen las transacciones mediante un complejo puzzle matemático, que demanda una enorme cantidad de recursos computacionales.

Los nodos conectados a la red Bitcoin compiten para “minar” cada bloque de transacciones. El nodo que solucione el problema con éxito recibirá una recompensa en bitcoins a cambio, es decir incentivos para el necesario proceso de verificar las transacciones.

Mediante los algoritmos de consenso, las redes descentralizadas pueden validar que las transacciones sean legítimas, sin necesidad de acudir a un tercero de confianza, como ser otra empresa, institución o ente central.

Para confirmar que las transacciones realizadas son válidas, los nodos usan algoritmos que permiten verificar -para empezar- que tal usuario efectivamente tiene -por ejemplo- los 2 bitcoins que quiere enviar.

El poder o complejidad computacional que requiere la verificación de una transacción proporciona seguridad al sistema, ya que una vez alcanzado el consenso se necesitaría de una gigantezca cantidad de tiempo y consumo de energía para realizar cambios en la cadena de bloques.

Pese a su seguridad, la intensidad de recursos que supone el Proof of Work ha sido objeto de críticas y debates, principalmente por su creciente demanda de energía y por el hecho de que la minería se ha concentrado entre unos pocos (los que pueden pagar mejores equipos, o los que operan en lugares con energía eléctrica barata), amenazando con “centralizar” las redes por naturaleza descentralizadas.

Existen otros tantos métodos de consenso, como ser Proof of Stake, Proof of Authority, Delegated Proof of Stake, Proof of Weight, Byzantine Fault Tolerance, Directed Acyclic Graphs, entre otros tantos.

En el caso particular de Bitcoin, es su algoritmo de consenso Proof of Work lo que hace que la blockchain de Bitcoin sea inmutable y a prueba de manipulaciones.

El hash, las claves y las firmas

Todas las operaciones ejecutadas en la blockchain de Bitcoin se encuentran garantizadas a través de complejos algoritmos criptográficos, que permiten asegurar y autentificar la integridad de un conjunto de datos, esto es: que dichos datos no han sido alterados desde su creación.

Para entender, al menos por arriba, cómo funciona la encriptación en blockchain, cabe mencionar los siguientes componentes relacionados***:

  • el hash
  • la autenticación de clave pública / privada
  • las denominadas firmas digitales

*** Por razones de espacio y complejidad, no se mencionan conceptos claves como los “árboles de Merkle”, el nonce, cómo se encadenan los bloques, etc.

¿Qué es el hash?

Consiste en una función matemática, que posibilita tomar cualquier tipo de entrada (sea una letra, una frase, libros enteros, etc.) y crear una salida compuesta por letras y números. Por ejemplo, algo así:

1c336077bbd4761322f1d78d2915d96gthr89bca2fgty3tt6cc8b8dcb53b3c41

Un mínimo cambio en la entrada generará un hash totalmente diferente. Así sea que se agregue o quite un signo de interrogación en una frase, por ejemplo, no es que se modificará sólo uno de los caracteres del hash obtenido. La salida cambiará por completo.

Si bien existen varios tipos de funciones hash, algunos de los rasgos que comparten son:

  • Una misma entrada debe generar siempre la misma salida
  • Dos entradas diferentes no pueden crear la misma salida
  • No es posible determinar la entrada una vez obtenida la salida
  • Cualquier cambio (así sea pequeño) cambia completamente la salida.
  • Es posible tomar una gran cantidad de contenido y reducirla a un conjunto corto de caracteres.

¿Para qué se usa el hashing en los protocolos blockchain?

Las funciones hash son cruciales para la autenticación. Se consideran como una huella digital del contenido, dado que produce una cadena de caracteres única para un determinado archivo, mensaje, datos. Una variación mínima cambiará el resultado por completo.

Ademas de convertir una cantidad de contenido en un conjunto fijo y relativamente corto de caracteres, estas funciones matemáticas permiten verificar que dos archivos sean exactamente los mismos.

Al generar una huella digital de un conjunto de datos, el hash sirve para verificar que dichos datos no han sido alterados.

Es uno de los elementos que hacen posible la integración de los bloques, la creación de un registro inmutable de datos.

El hashing se emplea en los protocolos blockchain para crear firmas digitales y para integrar bloques de transacciones, conformando así el libro mayor inmutable.

Cifrado de clave pública / privada

También conocido como encriptación asimétrica, se trata de un método de cifrado que utiliza 2 claves:

  • una clave pública
  • una clave privada

Los usuarios comparten la clave pública, pero jamás la clave privada.

Ambas claves se encuentran matemáticamente vinculadas. En otras palabras, el contenido que se encripta usando la clave pública sólo podrá ser descifrado usando la clave privada.

Imagen: Bitcoin Blockchain – Under the Hood Galin Dinkov

Por ejemplo, si Roberto quiere enviarle un mensaje a Carlitos por medio del cifrado asimétrico, Roberto puede utilizar la clave pública de Carlitos para encriptar el mensaje. Una vez cifrado con la clave pública de Carlitos, el único modo de desencriptar ese mensaje sería usando la clave privada de Carlitos.

La importancia de este mecanismo es que posibilita a los usuarios intercambiar mensajes o datos sin tener que intercambiar sus claves privadas.

Firmas Digitales

Son posibles gracias al hash y al cifrado de clave pública/privada.

Las firmas digitales permiten verificar la identidad del remitente – el origen del envío- y confirmar que los datos enviados no han sido alterados.

¿Cómo funcionan las firmas digitales?

  • Primero, el remitente crea un hash de su mensaje.
  • Luego, el remitente cifra el archivo hash usando su clave privada y envía el archivo.
  • En tercer lugar, el receptor desencripta el mensaje utilizando la clave pública del remitente y así obtiene el hash del archivo.
  • En cuarto lugar, el receptor toma el archivo descifrado y genera el hash del mismo.
  • Por último, el receptor compara los dos hash para confirmar que coincidan.

La inmutabilidad de blockchain: la integración en cadena

Para registrar una transacción en la cadena de bloques, se requiere firmar la misma con una clave privada antes de su envío, garantizando de esta manera que nadie pueda alterar el contenido de dicha transacción.

Una vez propagada la transacción por la red, cada participante usará la firma digital para verificar su identidad (comprobando que la firma es efectivamente de tal usuario y no alguien pasándose por él) y la integridad (garantizando que los datos no han sido alterados por terceros). En caso contrario, la transacción será descartada de la red.

Para evitar las alteraciones, los datos contenidos en una blockchain se encuentran ligados entre sí a través de una estructura en cadena, donde cada bloque (como si fuera cada eslabón) está vinculado con su bloque anterior y posterior.

Conjugando los métodos de encriptación mencionados (el hash, la autenticación de clave pública / privada y las firmas digitales), los protocolos como el Proof of Work proporcionan una forma segura de enviar información a lo largo de una red.

Permite, a grandes rasgos, verificar quién envió la información, quién la recibió y sobre todo: que dichos datos no se han alterado en el camino.

Para acercarse a entender un poco más terminemos por el origen.

El “bloque Genesis” es el primer bloque en una blockchain, el primer eslabón de la cadena, el cual se encuentra codificado en la red y contiene los parámetros iniciales de la cadena. El 3 de enero de 2009 a las 18:15:05 horas (GMT) se generó el primer bloque de la cadena de bloques de Bitcoin.

Cuando las transacciones desde un “bloque Génesis” se validan, las mismas generan su hash para así identificar dicho bloque. Como dijimos, el hash opera como su huella digital.

Una vez el segundo bloque sea validado, las transacciones de este segundo bloque, así como el hash del primer bloque, se usan como entradas para crear el hash del segundo bloque.

Esta operación se realiza para cada bloque subsiguiente en la cadena, vinculando así los bloques entre sí.

Al ligar los bloques de este modo, el hash del bloque más reciente incorpora todas las transacciones que se han producido en la cadena hasta ese momento.

“…al acordar el valor hash más reciente, los mineros pueden llegar fácilmente a un consenso sobre el ‘estado actual de la cadena'”, explica Roy Walker en un extenso y clarísimo artículo en Medium acerca de los protocolos blockchain más conocidos.

Por ello, en teoría un hacker no podría hackear un bloque. Dado que los bloques se encuentran enlazados unos a otros, si se tratara de modificar los datos contenidos en un bloque ya validado, cambiaría también el hash de cada bloque subsiguiente, causando “un efecto dominó en el resto de la cadena”, grafica Walker.

En caso de que esto ocurra, esa anomalía sería detectada por los nodos que participan de la red.

Cualquier cambio de los datos almacenados en la blockchain de Bitcoin, por mínimo que fuera, quedaría instantánea y plenamente identificado.

Es, en este sentido, que la tecnología blockchain de Bitcoin ha sido concebida desde su génesis para garantizar la inmutabilidad de los datos que en ella se almacenan y ejecutan, utilizando para ello el algoritmo de consenso Proof of Work.

Te puede interesar:

El origen de blockchain: desde la criptografía, los algoritmos y los cyberpunk 

Fuentes consultadas:

Agregar comentario

Your Header Sidebar area is currently empty. Hurry up and add some widgets.