Blockchain para principiantes

La tecnología Blockchain es un tema al que le hemos prestado bastante atención. Ya que esta es la base de las criptomonedas actuales como el Bitcoin, Ethereum o Litecoin. Aún así nunca se ha explicado esta con un enfoque sencillo para personas que no tienen una base técnica. En esta entrada se explicará el origen y las principales características que ofrece la tecnología Blockchain para principiantes.

El término Blockchain suele traducirse como “cadena de bloques”. Así que cuando escucha de la tecnología de cadena de bloques están hablando también de Blockchain. Aunque esta es la traducción correcta es más habitual escuchar el término en inglés.

¿Cómo surge el Blockchain?

La tecnología Blockchain surgió como una parte de la criptomoneda Bitcoin. Esto ha provocado que mucha gente confunda ambos términos. El Bitcoin es una criptomoneda que fue diseñada para ser descentralizada, en la que no exista una entidad central que registre las operaciones y decida cuales son válidas. Para conseguir esto es necesario difundir públicamente todas las transacciones realizadas con la criptomoneda de una forma segura y que no pueda ser modificada. En este punto es donde aparece la tecnología Blockchain. Permitiendo registrar todas las transacciones y facilitando que los ordenadores puedan llegar a un consenso. Es decir, llegar a un acuerdo sobre qué transacciones han ocurrido y quién posee qué. Sin tener que recurrir a una autoridad central para ello. Lo que almacena el Blockchain es un libro de contabilidad público (“public ledger”). El cual se encuentra disponible para que cualquiera pueda verificar en cualquier momento las transacciones.

El hecho de que todas las transacciones permite conocer el saldo existente en cada cuenta (“Wallet”) de Bitcoin. Aunque, como no existe una entidad central, no es fácil saber a quién pertenece esta. El completo anonimato de los datos almacenados en Blockchain es uno de los mitos más habituales que circula acerca de esta tecnología.

¿En qué consiste la tecnología Blockchain?

Básicamente Blockchain permite hacer lo mismo que con una base de datos tradicional: almacenar información. Lo que las diferencia es una serie de características únicas que tiene Blockchain:

  • Descentralización: ninguna entidad tiene la capacidad de decidir qué registro se almacena y cual no.
  • Consenso: el contenido del Blockchain es almacenado en múltiples ubicaciones, para decidir qué datos son los contenidos en es necesario que la mayoría esté de acuerdo.
  • Solo escritura: los datos almacenados ya no se pueden editar ni borrar, solo es posible agregar nuevos datos.
  • Integridad: los nuevos datos no pueden entrar en conflicto con lo que ya se ha agregado previamente.
  • Acceso universal: todos los usuarios de la red pueden acceder y replicar la información.

La característica más importante de Blockchain, y la que la diferencia de una base de datos tradicional, es la descentralización. Al existir copias de los datos del Blockchain en ordenadores de todo el mundo, ninguna autoridad central para tomar decisiones acerca de su contenido.

¿Cómo funciona Blockchain para principiantes?

Blockchain registra las transacciones en un proceso de cinco pasos:

  1. Las transacciones realizadas utilizando un protocolo específico y se agrupan en un “bloque” y un identificador único llamado “hash”.
  2. Los ordenadores de la red intentan validan el bloque. Para ello, en la mayoría de las implementaciones actuales, realizan una “prueba de trabajo”, aunque existen otras alternativas. Las pruebas de trabajo consisten en resolver un problema que requiere un gran poder computacional para resolverse, pero una vez obtenida la solución es fácil de validar. Generalmente el primero en solucionar el problema recibe algún tipo de premio como incentivo para mantener la mayor cantidad de ordenadores trabajando en la red. En el caso del Bitcoin es una cantidad de monedas. Este es lo que se denomina “proceso de minado” o sencillamente “minería”.
  3. Una vez que un ordenador valida el bloque la solución se transmite al resto de la red Blockchain. Esta solución se ha de validar por la mayoría de los participantes para que sea admitida.
  4. Tras la validación del bloque, este se agrega al Blockchain existente y se utiliza como punto de partida para el siguiente bloque. De esta manera, cada bloque se vincula de forma intrínsecamente a todos los que lo han precedido. Garantizando así la integridad de todos los datos existentes en el Blockchain.
  5. El registro completo de bloques es distribuido a toda la red, pudiendo ser inspeccionado por cualquiera.

¿Cómo se enlazan los bloques en un Blockchain?

En el paso 4 de la sección anterior se ha comentado que cada uno de los bloques se vincula con el anterior. Siendo esto lo que garantiza la integridad del Blockchain. El enlace se suele realizar mediante el hash. Los hashes son valores que se obtienen a partir de los datos del bloque utilizando una función de hash que no es reversible. Es decir, a partir del conjunto de datos se puede obtener el hash, pero no al revés. Además, una de las propiedades de las funciones de hash es que un pequeño cambio en los datos cambiará completamente el resultado de una forma que no es fácil de predecir. Por este motivo a las funciones de hash también se les conoce como “funciones de resumen” y a los hashes como “huellas digitales”.

Cada uno de los bloques en un Blockchain contiene básicamente tres tipos de información.

  • Los datos para almacenar
  • El hash del bloque.
  • El hash del bloque anterior.

Además, también puede contener información como el id del bloque dentro del Blockchain o una marca de tiempo. El hash del bloque se calcula automáticamente mediante una función de hash. En caso de que se cambien los datos o el hash del bloque anterior el resultado cambiará completamente. Así el enlace entre los bloques se realiza mediante los hashes al apuntar cada bloque al inmediatamente anterior. Esto es lo que se muestra en la siguiente figura.

Esquema de una cadena de bloques
Esquema de una cadena de bloques o Blockchain

Así, para modificar un bloque es necesario modificar toda la cadena a partir de el. Ya que al cambiar el hash el siguiente bloque de la cadena no apuntaría al modificado. Pudiéndose detectar fácilmente de este modo el punto en el que se ha modificado la cadena.

¿Cómo funciona la seguridad en Blockchain para principiantes?

La seguridad del Blockchain reside en la gran cantidad de ordenadores y las grandes necesidades de procesado necesarias para crear los bloques. En teoría es posible que un atacante malintencionado modifique un bloque de la cadena. Pero, como se ha visto anteriormente, esto le obligaría a modificar toda la cadena a partir de ese bloque. Lo que incluye calcular de nuevo las pruebas de trabajo para todos ellos. La potencia de cálculo necesario para esto es necesariamente superior a la de toda la red Blockchain, ya que el atacante ha de minar más rápido que la propia red. Algo que se hace exponencialmente más difícil a medida que aumenta el tamaño de la red y del Blockchain. Siendo una tarea casi imposible en grandes redes como puede ser la de Bitcoin. Lo que hace que un ataque de este tipo sea posible únicamente en las redes más pequeñas.

Las redes también son vulnerables a lo que se denomina un “ataque del 51%”. Si un determinado agente controlará el 51% de la capacidad de procesamiento de una red, este podrá decidir el contenido de los nuevos bloques. Aunque esto no afecta a la integridad de los bloques ya consolidados, solamente a los nuevos. Este tipo de ataque también es difícil de llevar a cabo debido a los recursos necesarios. Además, su complejidad aumenta con el tamaño de la red.

Conclusiones

Blockchain o de cadenas de bloques es una tecnología que ha llegado para quedarse entre nosotros. En esta entrada se ha visto las bases de la tecnología Blockchain para principiantes. Explicando el origen, su funcionamiento básico y demostrando así porque es una tecnología segura.

Actualmente la aplicación más conicidad de la tecnología Blockchain son las criptomonedas. Otra aplicación también popular son los contratos inteligentes (“smart contracts”). Aunque es una herramienta que permite almacenar de forma no centralizada y segura cualquier tipo de dato.

Esta no ha sido una entrada técnica. Para aquellos que deseen profundizar en el tema puede consultar la serie en la que explica cómo implementar una cadena de bloques básica en Python.

Imágenes: Pixabay (Tumisu)

Sin votos
Por favor espera...

Contenido relacionado

Deja un comentario

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