En los últimos meses, se ha podido comprobar que el término Blockchain está, cada vez más, en boca de todos, tanto por las noticias que lo sitúan como una de los posibles impulsores de la próxima revolución tecnológica como por las voces que manifiestan su desconocimiento sobre este nuevo paradigma.
Por ello, en los siguientes párrafos, se pretende introducir el concepto de Blockchain tomando, como base, los conceptos y tecnologías sobre los que se soporta, de manera que sirva como un primer barniz teórico para tener claro qué significa, en qué se basa y qué implica su uso.
Este artículo queda enmarcado dentro de un trabajo de un ámbito más global, realizado junto a Gonzalo García-Marcos Mendoza y Elena del Moral Moreno, compañeros de Ingeniería de Clientes especializados en Cloud en Telefónica, que se titula “Encadenados al Blockchain”. En él, además de definir Blockchain a partir de sus tecnologías habilitadoras, se analizó con mayor profundidad teórica el funcionamiento de Blockchain y se presentaron los casos de uso más relevantes del mismo.
Índice de temas
Definición de cadena de bloques (Blockchain)
Si bien es cierto que el concepto de Blockchain está adquiriendo un mayor peso en la actualidad tecnológica, resulta difícil encontrar una definición concreta del mismo. En una primera aproximación, cabría pensar que Blockchain es Bitcoin, pero hay que dejar atrás esa idea preconcebida. Si bien Blockchain nació gracias a esta famosa criptomoneda, es una tecnología mucho más general, con un mayor ámbito de aplicación, que está enmarcada dentro de las tecnologías conocidas como Distributed Ledger (o “libro mayor distribuido”).
Cabría pensar que Blockchain es Bitcoin, pero hay que dejar atrás esa idea preconcebida
Profundizando en su definición, se puede decir que Blockchain es un “sistema de almacenamiento distribuido, descentralizado, sincronizado por consenso y tolerante a fallos que registra transacciones entre pares en bloques enlazados y protegidos mediante criptografía de forma eficiente, verificable y permanente”. A continuación, se verá qué implicaciones tienen cada uno de los términos que aparecen en dicha definición sobre la propia tecnología de cadena de bloques.
Habilitadores de la tecnología Blockchain
En primer lugar, Blockchain es, en esencia, un sistema distribuido, que no deja de ser un conjunto de componentes, localizados en computadores, que están conectados en red y que se comunican y coordinan sus acciones mediante paso de mensajes.
Este sistema distribuido es, además, descentralizado. Y es que la información almacenada en cada nodo (ese “libro mayor”) se replica, comparte y sincroniza entre múltiples nodos geográficamente separados y repartidos por toda la red, sin contar con un administrador central. La red subyacente que permite este tipo de sistemas es una red P2P, en la que los nodos se comportan como iguales entre sí y no presentan roles diferenciados, como podría ocurrir en una arquitectura cliente-servidor:
Para decidir el “libro mayor” correcto, se requiere la ejecución de algoritmos de consenso entre los nodos participantes, en los que se siguen dos reglas principales: la cadena más larga se considerará más correcta, y primará la cadena que más apoyo reciba de los nodos de la red. En el segundo caso, para determinar el apoyo, se definen diferentes algoritmos basados en teoría de juegos. Y una vez se llega a un consenso, la transacción queda registrada y permanece inmutable en la red.
Además, Blockchain hace uso de esos mecanismos de consenso para hacer frente a la tolerancia a fallos. En concreto, tratan de enfrentarse a la semántica de fallo más problemática: los fallos arbitrarios o bizantinos (que provienen del Problema de los Generales Bizantinos), en los que se supone que puede ocurrir cualquier fallo; desde problemas en un componente hasta intentos de alterar la información por parte de un atacante.
De cara a los usuarios finales, estos utilizan el sistema para intercambiar información mediante transacciones, esa información transmitida se denomina token
De cara a los usuarios finales, estos utilizan el sistema para intercambiar información mediante transacciones. Esa información transmitida se denomina token, y puede ser cualquier recurso que represente valor para los usuarios de la red y que se pueda utilizar dentro de un ecosistema para participar en un servicio (no solo criptomonedas). Tanto transacciones como tokens son visibles para cualquier usuario que tenga acceso al sistema, de cara a la trazabilidad de las operaciones realizadas.
Sin embargo, esta trazabilidad parece comprometer la anonimidad de las transacciones, en el sentido de que todo es público. Este problema se resuelve mediante el uso de direcciones únicas para transacciones, nodos y usuarios, generadas de forma que no permitan desvelar, a priori, quién se encuentra detrás del movimiento.
Para terminar con las tecnologías que aparecen en la definición de Blockchain, las transacciones confirmadas en un período determinado se agrupan en bloques, que se encadenan entre sí utilizando técnicas criptográficas (funciones hash, principalmente) para formar el “libro mayor” que se almacena en cada nodo de la red. Además, para garantizar la confidencialidad de la información y verificación de la identidad en las transacciones, se utiliza como base la criptografía asimétrica o de clave pública, o alguna de sus variantes (como la criptografía de curva elíptica en Bitcoin).
De los orígenes de Blockchain a la búsqueda de la aplicación definitiva
Si se analizan con detalle, los conceptos vistos anteriormente no resultan nuevos. De hecho, existen antecedentes a Blockchain de sistemas y protocolos P2P descentralizados que tuvieron su impacto en el campo del almacenamiento distribuido y compartición de información; desde Napster hasta BitTorrent, pasando por eDonkey o Gnutella. Eso sí; salvo en el último caso, todos los sistemas necesitaban, de alguna manera, un servidor centralizado para poder dar la funcionalidad que servían a los usuarios.
Con este ecosistema presente, Blockchain apareció, por primera vez, en 2008, con la publicación del paper en el que se explicaba el funcionamiento de Bitcoin, a manos de Satoshi Nakamoto. A partir de ahí, comenzó la carrera de estudio e intento de adopción de Blockchain en la que nos encontramos actualmente, con Bitcoin y Ethereum como grandes (y casi únicos) casos de éxito, y con multitud de empresas, universidades y departamentos de investigación tratando de buscar el caso de uso cuya eficiencia se maximice gracias al uso de Blockchain.
¿Se encontrará esa aplicación definitiva?
Desde luego, no será cosa de un día para otro. Hoy en día, Blockchain todavía está muy ligado a Bitcoin y, por ende, se le asocian también los términos de burbuja y especulación que giran en torno a la criptodivisa. Además, Bitcoin parece tender a un modelo de red que no es P2P pura, en la medida de que aparecen diferentes roles participantes en el sistema (como pueden ser los mineros), lo que afecta a la definición teórica de Blockchain. Eso sí, parece claro que es un claro candidato para provocar una nueva revolución tecnológica, siempre supeditado a encontrar esa aplicación o aplicaciones que den sentido a este sistema.