Blockchain, qué es y cómo funciona

¿Qué es el blockchain?

La tecnología blockchain es un cambio radical en los procesos de registro e intercambio de información. Si tenemos en cuenta que estos procesos son un pilar fundamental en nuestra sociedad actual, podremos comprender porque esta tecnología podría llegar a impactar en muchos niveles de nuestras vidas.

Si nos referimos a la parte práctica del concepto, entonces deberemos explicar que  el blockchain se basa en la colaboración a través de internet de un conjunto de ordenadores (nodos) que de manera coordinada intercambian información y la almacenan en sus servidores. Cada ordenador tiene su propia base de datos registrada que  gracias a los protocolos de consenso se consigue que todas estas B.D. se actualicen de manera sincronizada y uniforme, garantizando así que cada ordenador tenga siempre los mismos registros y en el mismo orden. A efectos prácticos todos los ordenadores están viendo la misma base de datos y almacenando  exactamente los mismos datos en sus servidores.

En otras palabras, el blockchain es  un conjunto de bases de datos trabajando de manera sincronizada para conseguir el efecto de tener una única base de datos compartida.

Pero tener una base de datos compartida no es nada nuevo, hay sistemas de almacenamiento compartido como Dropbox que existen con este propósito. ¿Por qué entonces blockchain representa una tecnología revolucionaria?

Para contestar a esta pregunta deberemos seguir leyendo……

¿Cómo funciona el blockchain?

Para poner en marcha una red blockchain necesitaremos  que un grupo de ordenadores se conviertan en nodos instalando la correcta versión de software que incluye los protocolos y todas las reglas para garantizar la seguridad y un correcto funcionamiento de la red.

 La red blockchain empezará a funcionar a partir del momento en el que dos ordenadores con conexión a internet ejecuten el software instalado, estableciendo así un canal de comunicación entre ellos. A partir de ese momento cada vez que otro ordenador ejecute el software se unirá  al mismo canal de comunicación formando de esta manera la red de nodos o lo que sería lo mismo una red blockchain. Todos los ordenadores que formaran parte de esta red estarán registrando datos de manera sincronizada en sus servidores consiguiendo así que ésta no solo sea una base de datos compartida sino que también sea distribuida.

La estructura de la base de datos se basa en bloques de información unidos entre ellos. Los datos se agrupan en bloques de tamaño limitado (i.e. 1 MB, 5 MB…) principalmente por motivos de seguridad y escalabilidad. A cada bloque se le pone un “sello” o “huella digital” conocido como hash del bloque que permite identificar con el mayor nivel de precisión la información incluida en dicho bloque. Este hash sirve como identificador del bloque y en cada bloque se incluye el hash del bloque anterior. De esta manera se va formando una cadena de bloques que permite ordenar en el tiempo todos los datos registrados. Y lo más importante, con el mayor nivel de seguridad,  evitando  la manipulación de la información. Esa inmutabilidad de los datos viene dada porque solo cambiando un 0 por un 1 en alguno de los registros del bloque, el hash de ese bloque cambiaría por completo. Por lo tanto al cambiar un dato se estaría rompiendo la cadena y consecuentemente ésta quedaría invalidada.

No olvidemos en este punto que cada persona guarda una copia de la base de datos en sus servidores, por lo tanto si alguien intentara editar la B.D. registrada en su servidor, podría llegar a hacerlo pero al compartirlo con los demás nodos, éstos le dirían que las referencias de los bloques no cuadran con los que todos ellos tienen registrados y consecuentemente no aceptarían como válida dicha versión de la B.D. manipulada. Así pues la persona que quisiera manipular los datos, solo conseguiría manipular los suyos, y sería ignorado por la red, pasando a separarse de la misma.

Esta es la clave de la tecnología blockchain, su diseño para que desconocidos puedan confiar entre ellos, de tal forma que si alguien intenta manipular la información sería automáticamente apartado de la red.

¿Cómo se crean los bloques que se registran en la cadena de bloques?

Los bloques son creados por los mismos nodos de la blockchain. Éstos agrupan un conjunto de datos (transacciones, información…) y los empaquetan en lo que sería el cuerpo del bloque. Además añaden una cabecera con información clave del mismo bloque y el hash del bloque anterior. El creador del bloque envía estos datos a otros nodos, y estos a otros más, siguiendo así una evolución exponencial hasta que todos los nodos reciben la misma información y la colocan como el último bloque de su cadena de bloques.

Cómo todos los nodos siempre tendrán la misma información registrada y en el mismo orden (cadenas de bloques exactamente idénticas), se acostumbra a hacer referencia a una cadena de bloques global que a nivel conceptual sería el conjunto de todas las copias registradas por los nodo de la red. Esta cadena conceptual global es lo que llamamos comúnmente “cadena de bloques” o “blockchain”.

Cada bloque es creado por un nodo distinto que ha sido elegido por un protocolo de consenso. La selección del creador se acostumbra a realizar de una manera semi-aleatoria a través de un algoritmo de consenso incluido en el protocolo. Normalmente no es aleatorio del todo para evitar que alguien se instale una cantidad muy elevada de nodos en el mismo ordenador y sea seleccionado la mayoría de las veces (sería un grave problema de seguridad). Por este motivo se añade en el proceso de selección, unos recursos limitados que cada participante debe reunir y que representan la probabilidad de ser seleccionado como creador del siguiente bloque (independientemente del número de nodos que tenga bajo control). Un ejemplo de recurso limitado sería la capacidad computacional. Una única persona nunca intentará hacerse con decenas de miles de súper ordenadores con el objetivo de reunir la mayor parte de este recurso limitado. Sería absurdamente caro de comprar e instalar y nunca se recuperaría ni una fracción del dinero invertido

Para entenderlo imaginemos  el siguiente ejemplo. Una lotería online en la que para participar solo tuvieses que hacer un clic en el botón “participar”, y que pudieses repetirlo las veces que quisieras. Eso sería un problema porque podría haber alguien haciendo millones de clics con un “sistema automatizado”, y de esta manera la mayoría de las veces le tocaría la lotería al mismo o a los mismos. Pero ahora imaginaros el mismo sistema pero con la diferencia de que para participar se necesita pagar 10 € aparte de hacer clic en el botón. Entonces ya nadie podría permitirse participar millones de veces ya que no tendría suficiente dinero (recurso limitado). Consecuentemente, así se conseguiría tener un sistema de lotería mucho más fiable.

Hay muchos protocolos de consenso distintos y cada blockchain puede elegir el sistema que encaje mejor con los objetivos de la red (escalabilidad, seguridad, consistencia…)

¿Cómo funcionan los protocolos de consenso de una blockchain?

Los protocolos de consenso son la parte clave de la tecnología. Como hemos dicho, hay muchos tipos pero todos tienen el mismo objetivo: Seleccionar cuál de los nodos de la red será el creador del siguiente bloque.

Cada protocolo funciona con sus propias normas y usando recursos limitados diferentes para garantizar un buen nivel de aleatoriedad. También es importante tener en cuenta que los recursos limitados solo son imprescindibles en las blockchain públicas, ya que en éstas se conectan nodos desconocidos entre ellos y existe esta falta de confianza que obliga a tomar estas “medidas”. Por otro lado, existen las blockchain permisionadas, en las que todos los miembros de la red se conocen entre ellos. En este tipo de blockchain no se requiere usar recursos limitados ya que la legitimidad del proceso se garantiza por la confianza entre los miembros de la red, pudiendo incluso firmar acuerdos de colaboración.

¿Cuáles son los principales protocolos usados en la tecnología blockchain?

En el caso de la blockchain de Bitcoin se usa el protocolo Proof-of-Work (prueba de trabajo o PoW), en el que el recurso limitado es la capacidad computacional. El Proof of Work funciona como una competición entre todos los nodos para ver quién es el primero en resolver un complejo ejercicio matemático.

El Proof of Stake (Prueba de participación o PoS) también es otro de los protocolos más usados en el ecosistema blockchain. Esta tecnología usa como recurso limitado la cantidad de monedas asociadas a la blockchain en cuestión. Funciona como un tipo de lotería en la que cada token sería un ticket de lotería. La blockchain de Ethereum actualmente usa el PoW pero tiene planeado usar el proof of stake en un futuro.

Proof of Authority, este protocolo es usado, a diferencia de los dos anteriores, en blockchain privadas, el motivo es que no usa ningún recurso limitado, simplemente se hace una selección aleatoria del creador del siguiente bloque, con ciertas restricciones.

Para saber los 20 protocolos más usados puedes consultar este artículo.

¿Cuáles son las aplicaciones del blockchain?

Lo más interesante de la tecnología de la cadena de bloques es que transforma la manera de registrar y almacenar información. En otras palabras, consiste en una disrupción en los sistemas de información que da pié a la creación de aplicaciones y soluciones nuevas.

Todas las empresas y organizaciones del mundo tienen un sistema de información, ya sea más complejo o más simple. Por este motivo se dice que el blockchain puede tener un gran impacto en nuestra sociedad porque  se puede aplicar de maneras muy distintas en campos completamente diferentes. Esto no significa que todas las empresas puedan aprovechar las ventajas de esta tecnología, pero  sí que podrá ayudar a muchas de ellas. A continuación mostramos una lista con las principales aplicaciones del blockchain:

  • Registros más seguros
  • Identidad digital
  • Eliminación de intermediarios
  • Acuerdos autoejecutables
  • Aumento de transparencia
  • Aplicaciones sin administrador (no se pueden manipular de ninguna manera)
  • Digitalización de valor y activos
  • Infraestructura de pagos sin dependencia de terceros (bancos, tarjetas…)

¿Cómo se escribe, block chain, cadena de bloques o blockchain?

Ésta es una pregunta que me han hecho a menudo.  La  respuesta es que el termino blockchain se escribe todo junto “blockchain” o también se puede usar el término “cadena de bloques”, pero nunca  se dice“Block chain”, éste es un  término que no existe.

¿Dónde puedo aprender más sobre la tecnología blockchain?

Si alguien está interesado en utilizar la tecnología blockchain a nivel profesional es muy importante formarse antes. En Blockchain School for Management ofrecemos varios programas para este propósito.

Blockchain Wiki

Significado blockchain: base de datos descentralizada formada por distintos nodos que guardan de manera individual una copia idéntica y sincronizada de todos los registros introducidos en el sistema.

Protocolo blockchain: Es el sistema a través del cual la tecnología de la cadena de bloques elige al creador del siguiente bloque

Nodo: Es un ordenador que forma parte de la red y que tiene una copia de la base de datos registrada que se sincroniza uniformemente con los otros nodos.