Blockchain es simplemente un sistema de base de datos distribuida, inmutable y transparente. Esto significa que los datos se almacenan en multitud de nodos de una red informática, sin que haya ninguna entidad concreta que la controle. Cada nodo tiene su propia copia que se actualiza a medida que se confirman y agregan nuevos datos. Los datos registrados son inmutables, esto es, se pueden guardar nuevos registros, pero no modificar los existentes. Por último, cualquier persona puede consultarlos o formar parte de la red. Veamos qué es blockchain y para qué sirve.
Tradicionalmente, las bases de datos públicas necesitan que haya una tercera persona de confianza (un banco, notario, registrador, etc.) que certifique que los registros de los datos que contiene son veraces. La técnica de blockchain elimina la necesidad de los terceros de confianza, pudiendo registrar transacciones con total garantía.
Aunque las aplicaciones más conocidas de blockchain son las criptomonedas (como bitcoin o ether), esta tecnología se puede utilizar para almacenar cualquier tipo de registros. Las implementaciones de soluciones de blockchain crecen a un ritmo cada vez mayor. Por ejemplo, hoy en día hay más de diez mil criptomonedas activas basadas en blockchain y varios cientos de aplicaciones de blockchain distintas de las criptomonedas. Como veremos, las posibilidades de esta tecnología son muchas.
Cómo funciona la base de datos de blockchain
Como hemos visto, la tecnología Blockchain o cadena de bloques está pensada para crear una base de datos. Lo particular de esta base de datos es que los datos no se guardan en el disco duro del ordenador de una empresa. No señor, no hay ninguna persona o empresa que gestione esta base de datos. Se trata de una base de datos distribuida, descentralizada. Los datos se guardan en multitud de nodos de una red informática. Todos los nodos son iguales y, en caso de inconsistencia (por error o mala intención), se valida la versión de los datos que tiene un mayor número de nodos.
Las bases de datos de blockchain recopilan la información en grupos de datos conocidos como bloques. Los bloques tienen una cierta capacidad de almacenamiento. Cuando se llena un bloque, se cierra y se vincula con el bloque anterior (el bloque que se había llenado previamente). Por tanto, la base de datos es realmente una cadena de bloques sellados. De ahí el nombre, blockchain.
Sellar un bloque significa que se crea una firma criptográfica de tipo hash que garantiza la integridad de los datos del bloque, junto con los del bloque anterior. Si se modificase mínimamente algún bit del bloque, la firma perdería la consistencia y se detectaría. Esto le proporciona a cada bloque una especie de lacrado que hace imposible su modificación. La firma electrónica cifrada une cada bloque con el anterior, garantizando la continuidad temporal.
La bases de datos blockchain van registrando sus datos de acuerdo a una línea de tiempo inquebrantable. Cuando se sella un bloque, sus datos se ‘graban en piedra’ y pasan a formar parte de su línea de tiempo. Los datos guardados de esta forma son inmutables.
Las bases de datos tradicionales estructuran sus datos en tablas. Los programas de gestión de estas bases de datos (como SQL) se encargan de relacionar estos datos para gestionarlos de la forma deseada. Pueden sustituir un dato por otro o mostrarlos de forma diversa. La cadena de bloques no hace ningún trabajo de gestión, simplemente almacena datos de forma secuencial con marca de tiempo. Esto hace que, aunque se puedan almacenar diferentes tipos de datos, el uso más común de la tecnología de cadena de bloques sea como libro mayor para transacciones. En contabilidad se le llama libro mayor a los documentos que registran cronológicamente los movimientos económicos. En el caso de bitcoin, con blockchain se registra cada una de las transacciones de efectivo entre las distintas cuentas.
Los datos registrados en la cadena de bloque pueden consultarse de forma transparente desde cada nodo. Por otro lado, existe un software específico conocido como exploradores de cadenas de bloques que permiten que cualquier usuario pueda consultar los registros.
Dicho de otra forma, blockchain no está pensado para gestionar una base de datos dinámica, sino para registrar información que no se puede modificar, eliminar o destruir.
Qué significa base de datos distribuida
La cadena de bloques que forma la base de datos podría almacenarse en unos grandes ordenadores situados en un edificio altamente protegido. No obstante, por mucha protección que tuviera, siempre sería susceptible de que el edificio se quemara, se cortara su conexión a Internet, sufriera un ataque informático o, simplemente, que un operario se equivocara al introducir un comando y acabara borrando toda la información.
La alternativa propuesta por blockchain a este sistema centralizado es tener miles de copias de la base de datos distribuidas por todo el mundo. No existe una sola copia de la base de datos, sino miles de ellas. Además, estas copias, estos nodos, están interconectadas entre si formando una red. Esto permite que no solo haya redundancia, sino que se mantenga la fidelidad de los datos. Si alguien intentara alterar un registro en uno de los nodos, todos los demás se cruzarían entre sí y señalarían fácilmente al nodo con la información incorrecta. Ningún nodo individual de la red puede alterar la información contenida dentro de ella.
La validación de la información que se va añadiendo a la base de datos se consigue por consenso. Existen unos mecanismos, en los que participan todos los nodos, que permiten ir aceptando los nuevos bloques que se van añadiendo a la cadena. Una vez añadido, si surge alguna incongruencia, la copia válida es la que tenga el 51% de los nodos.
A la tecnología blockchain o de cadena de bloques también se la conoce como tecnología de registro distribuido o DLT (Distributed Ledger Technology). Una DLT es una base de datos que no está centralizada, no hay ninguna autoridad que ejerza de árbitro y verificador. En su lugar, es gestionada por varios participantes.
Las bases de datos DLT son más transparentes y en ellas es más difícil el fraude o la manipulación. Existen distintos tipos de tecnologías DLT. En las de tipo registros sin permiso (permissionless ledgers) todos los usuarios de Internet pueden acceder al registro y aportar datos. Este es el tipo utilizado, por ejemplo, por bitcoin. También existen las de tipo registros con permiso (permissioned ledgers) donde solo algunos participantes tienen el poder de aportar datos. En este caso, los datos pueden ser de acceso público (cualquiera puede verlos) o privado (solo los usuarios autorizados pueden verlos).
Qué es la prueba de trabajo o PoW
El posible inconveniente de las bases de datos distribuidas es que actores no autorizados (malos actores) intenten validar transacciones ilegítimas. Al igual que ocurre con el spam del correo electrónico, estas acciones podrían inundar la red con una carga de trabajo extra innecesario.
Para resolver este problema, en el mecanismo de consenso para validar nuevos bloques, se incluyó un mecanismo conocido como prueba de trabajo (PoW, Proof of work). Se trata de un sistema que, para poder validar un registro, es necesario resolver un algoritmo que requiere una gran potencia de cálculo (un gran trabajo). La idea es que este gran esfuerzo necesario desincentive que usuarios maliciosos (por interés) o frívolos (por curiosidad) se atrevan a intentar registrar transacciones fraudulentas.
Por ejemplo, en el caso de bitcoin, este trabajo de cálculo lo realizan actores independientes que se conocen como mineros. Para validar cada bloque es necesario que un minero resuelva el algoritmo de ese bloque. El primer minero que lo resuelva se lleva la pequeña recompensa económica asociada. El mundo de la minería de bitcoins es muy competitivo y existen miles de ordenadores de mineros compitiendo por ser el primero en resolver cada bloque. En este entorno resulta realmente difícil que pueda intervenir un actor malicioso. Por otro lado, en el remoto caso de que lo consiguiera, como los registros son inmutables, se podría identificar el error.
En definitiva, la prueba de trabajo es un mecanismo de consenso descentralizado que requiere que los miembros de una red se esfuercen por resolver un rompecabezas matemático arbitrario para evitar que alguien juegue con el sistema. Gracias a la prueba de trabajo, sistemas como bitcoin permiten procesar los registros sin la necesidad de un tercero de confianza. Es un sistema de igual a igual (peer to peer) porque cualquiera puede participar en el sistema y todos tienen las mismas oportunidades (no hay una autoridad).
Qué es la prueba de participación o PoS
La prueba de trabajo supone que miles de ordenadores estén continuamente compitiendo por resolver los algoritmos para que la recompensa se la lleve solo uno de ellos. Esto supone un gran gasto de potencia de cálculo y, por tanto, de energía eléctrica. El mayor gasto de los mineros de bitcoin es el consumo eléctrico. Para que nos hagamos una idea, los mineros de bitcoin consumen más energía eléctrica que Noruega.
Para resolver este problema se pesó en un nuevo mecanismo conocido como prueba de participación (PoS, Proof of stake). En este caso, quien valida cada bloque se selecciona al azar bajo ciertas condiciones. PoS sustituye un mecanismo basado en la competencia (con gran consumo de energía) por uno basado en el azar. Ethereum utiliza el sistema PoS. En este caso, los bloques son validados por más de un validador y, cuando un número específico de validadores verifica que el bloque es preciso, se finaliza y se cierra.
En PoW se les llama mineros a los que validan bloques, mientras que en PoS se les llama validadores. Al igual que los mineros, los validadores reciben tarifas de transacción como recompensa.
Por cierto, en PoS, la probabilidad de que un nodo sea elegido para validar un bloque depende de la cantidad de tokens que el nodo tenga en su billetera. Dicho de otra forma, su capacidad para validar una transacción depende de la cantidad de ‘participación’ que tenga en la red.
Los orígenes de blockchain
El concepto de cadena de bloque fue propuesto por primera vez en 1991 por Stuart Haber y W. Scott Stornetta. Se trataba de dos investigadores que buscaban poner en marcha un sistema en el que no pudiesen alterarse las marcas de tiempo de los documentos. Esto es, para que documentos digitales firmados con determinada fecha no pudieran ser manipulados y falseadas sus fechas de firma original. Aunque al año siguiente le hicieron alguna mejoras, lo cierto es que esta tecnología no se usó y la patente expiró en 2004.
En 2004, Hal Finney realizó una aportación importante a la tecnología de blockchain al resolver el problema del doble gasto. Se conoce como problema del doble gasto el hecho de que una persona pueda pagar más de una vez con una misma unidad monetaria. Finney desarrolló un procedimiento de validación que impedía este doble uso de una misma moneda. El sistema de Finney se conoce como RPoW (Reusable Proof of Work). Podría decirse que RPoW fue el primer prototipo en la historia de las criptomonedas.
Gracias a Finney se podían tener entidades digitales únicas que no se pueden duplicar. Por tanto, se podía mantener un registro de propiedad en tiempo real de entidades digitales como, por ejemplo, una unidad monetaria.
Creación de bitcoin
A finales de 2008, una persona o grupo de personas publicaron un documento que describía un sistema electrónico de pago descentralizado entre pares (Bitcoin: A Peer-to-Peer Electronic Cash System) al que llamaban bitcoin. El documento se publicó con el seudónimo de Satoshi Nakamoto y todavía no se conoce quién hay detrás de este nombre.
La protección de doble gasto en Bitcoin la proporciona un protocolo descentralizado entre pares para rastrear y verificar las transacciones. Utiliza un algoritmo de prueba de trabajo (PoW) en lugar del algoritmo RPoW utilizado por Finney. Satoshi Nakamoto se refirió a bitcoin como un nuevo sistema de efectivo electrónico en el que no hay un tercero de confianza, no hay un gobierno o un banco que lo controle.
Satoshi Nakamoto creo el primer bloque de bitcoins el 3 de enero de 2009. Hal Finney fue la primea persona que recibió una transferencia de bitcoins. Satoshi Nakamoto le hizo una transferencia de 10 bitcoins el 12 de enero de 2009. Hoy en día, esos 10 bitcoins valdrían unos doscientos mil euros (aunque existe una gran volatilidad).
Bitcoin es una moneda digital que utiliza la tecnología blockchain para registrar de manera transparente los pagos que se llevan a cabo. Se trata de un libro de pagos. Cada vez que se hace un pago, queda registrada la cantidad, cuenta de quien paga y cuenta de quien cobra. La privacidad se mantiene porque no se conoce quien es el propietario de cada cuenta.
Creación de Ethereum
Vitalik Buterin fue uno de los primeros desarrolladores del código base de bitcoin. Planteó que el modelo de bitcoin no aprovechaba todas las capacidades de la tecnología blockchain y que, para ello, era necesario desarrollar un lenguaje de secuencias de comandos con el que se pudieran crear aplicaciones descentralizadas. Sus propuestas no fueron aceptadas, así que en 2013 comenzó el desarrollo de una nueva plataforma informática distribuida basada en blockchain. Su plataforma Ethereum se lanzó oficialmente en 2015.
La gran aportación de Ethereum es que ofrece una funcionalidad a la que llama contratos inteligentes. Un contrato es un agente que crea el sistema Ethereum para recibir y enviar transacciones, así como guardar los balances de esas transacciones. Los contratos inteligentes son programas que se implementan y ejecutan en la cadena de bloques Ethereum. Los contratos se escriben en un lenguaje de programación específico que son ejecutados por una máquina virtual descentralizada, llamada máquina virtual de Ethereum (EVM).
Las EVM pueden ejecutar todo tipo de aplicaciones dentro de la cadena de bloques de Ethereum. A estas aplicaciones se las conoce como DApps (aplicaciones descentralizadas) y ya hay cientos de ellas ejecutándose en Ethereum. Bajo este modelo de contratos inteligentes se han creado juegos de apuestas o de intercambio financiero. Ethereum ha creado también una criptomoneda llamada Ether (ETH).
Ethereum se ha convertido en una de las aplicaciones más grandes de la tecnología blockchain.
Otras aplicaciones de blockchain
Como ya se ha comentado, la tecnología blockchain no se limita a las criptomonedas. La naturaleza de la inmutabilidad, descentralización y transparencia de blockchain hace que decenas de miles de proyectos busquen implementar esta tecnología en una gran variedad de formas.
Algunas de estas aplicaciones son las siguientes:
- Finanzas descentralizadas. En las finanzas centralizadas, su dinero está en manos de bancos u otros terceros que facilitan el movimiento de dinero entre las partes, y cada uno cobra un comisión por sus servicios. Las finanzas descentralizadas eliminan a los intermediarios al permitir que las personas, los comerciantes y las empresas realicen transacciones financieras a través de blockchain. Solo hay que utilizar un software que registra y verifica las acciones financieras en bases de datos distribuidas.
- NFT (Non-Fungible Token o tokens no fungibles). Un token es un título de propiedad. En este entorno, no fungible significa que el artículo (token) es único o distinguible. Una moneda de euro es fungible porque es exactamente igual que otra moneda, es indistinguible. Mediante NFT se identifican virtualmente artículos del mundo real (físicos o digitales), como obras de arte, y permite comercializarlas. Los NFT son activos criptográficos con códigos de identificación únicos e irremplazable (no se pueden replicar). Existen mercados onlines de activos NFT como OpenSea, Rarible o SuperRare.
- Contratos inteligentes. Se trata de contratos autoejecutables donde se escriben directamente en líneas de código los términos del acuerdo entre las partes. El propio código controla la ejecución del acuerdo, así como las transacciones, que son rastreables e irreversibles. Los contratos inteligentes permiten que partes dispares y anónimas puedan realizar acuerdos con confianza, sin la necesidad de una autoridad central, un sistema legal o un mecanismo de aplicación externo.
- Voto electrónico. En la solución blockchain de voto electrónico, cada ciudadano recibe un voto (token) que se lo puede traspasar al candidato de su elección. La naturaleza de la inmutabilidad de blockchain significa que la votación fraudulenta sería mucho más difícil de realizar. Al ser rastreable la transferencia de votos, se eliminaría la necesidad del conteo humano.
- Trazabilidad de los alimentos. El uso de blockchain ofrece la posibilidad de rastrear la ruta seguida por un producto alimenticio desde su origen. Se puede registrar cada paso, cada transformación, hasta que finalmente se le entrega al consumidor. Si se descubre que un alimento está contaminado, se puede rastrear todo el camino hasta su origen. Esto permite detectar rápidamente el problema y, potencialmente, salvar vidas. Por ejemplo, IBM ha creado una solución de este tipo a la que llama Food Trust.
El número de aplicaciones de la tecnología blockchain es mucho más extenso que los mostrados en los ejemplos anteriores. Como se ha repetido en este artículo, el poder registrar información de forma descentralizada, inmutable y transparente abre a un mundo de posibilidades. Aunque la tecnología blockchain sea todavía un gran misterio para el ciudadano medio y no le ofrezca la misma confianza que un notario o el registro de la propiedad, el tiempo dirá cómo evolucionará esta percepción. Recordemos que la tecnología blockchain puede ser utilizada también para crear registros privados (sin acceso público) que son gestionados por empresas u organismos oficiales.
Beneficios de la tecnología blockchain
Como se ha visto a lo largo de este artículo, la tecnología de blockchain está claramente diferenciada de los sistemas tradicionales de registro, lo que la convierte en única. Esto le da una serie de ventajas que merece la pena destacar:
- Reducciones de costes. Se elimina la necesidad de participación de terceros y, con ello, sus costes asociados.
- Descentralización. No se almacena ninguna de sus informaciones en una ubicación central. La cadena de bloques se copia y se distribuye a través de una red de ordenadores, lo que dificulta su manipulación. Si una copia de la cadena de bloques cae en manos de un pirata, solo se verá comprometida esa y no toda la red, lo que permite que sea aislada.
- Transacciones eficientes. Las transacciones realizadas por sistema tradicionales (bancos, etc.) pueden tardar hasta varios días en liquidarse. Con blockchain las transacciones se resuelven en minutos, los 365 días del año. Las transacciones se pueden completar en tan solo 10 minutos y pueden considerarse seguras después de unas pocas horas.
- Transacciones privadas. Muchas soluciones de blockchain funcionan como bases de datos públicas. Esto quiere decir que cualquier persona puede ver una lista del historial de transacciones de la red. No obstante, no existe un acceso público a la información de identificación de los usuarios que realizan esas transacciones. Las redes blockchain, como bitcoin, no son anónimas, pero sí son confidenciales.
- Transacciones seguras. Una vez que se registra una transacción, se agrega al bloque de la cadena de bloques y se firma digitalmente (hash). Esta firma impide que se puedan editar los datos sin ser detectada esta modificación.
- Transparencia. La mayoría de las soluciones de blockchains se desarrollan con software de código abierto. Esto significa que cualquiera puede ver su código, lo que les da a los auditores la capacidad de revisarlo y certificar su seguridad. Por otro lado, no existe una autoridad real que controle el código y cualquiera puede sugerir cambios o actualizaciones al sistema. Si la mayoría de los usuarios de la red está de acuerdo en que la nueva versión del código con la actualización es sólida y vale la pena, entonces se podrá actualizar.
- Precisión. Las transacciones son aprobadas por una red de ordenadores, eliminando casi toda la participación humana en el proceso de verificación, lo que genera menos errores humanos y un registro preciso de la información.
Inconvenientes de la tecnología blockchain
A pesar de las grandes expectativas, lo cierto es que las particularidades de la tecnología blockchain también cuenta con inconvenientes. Entre los principales podemos mencionar:
- Coste alto de funcionamiento. Para que la red sea confiable, requiere de un gran número de nodos y validadores (mineros). Cada uno de estos recursos tiene un coste. Por ejemplo, los mineros de bitcoin reciben una compensación por su trabajo. En el caso de las criptomonedas este coste puede sufragarse aplicando pequeñas comisiones a cada transacción, pero en otras soluciones puede suponer un problema.
- Escalabilidad limitada. El sistema PoW (bitcoin) tarda unos 10 minutos en agregar un nuevo bloque a la cadena, lo que limita el número total de transacciones por segundo (TPS) que se pueden registrar. Las soluciones de blockchain más eficientes consiguen unas 30.000 TPS, mientras que empresas como VISA procesan más de 65.000 TPS.
- Cobijo de actividades ilegales. La confidencialidad de la red protege a sus usuarios y preserva la privacidad. Sin embargo, estas características también facilitan el comercio ilegal. Utilizando criptomonedas, los usuarios pueden comprar y vender productos ilegales sin poder ser rastreados. A pesar de esto, hay que decir que, actualmente, la actividad ilegal representa solo una fracción muy pequeña de todas las transacciones.
- Incertidumbre regulatoria. En general, el uso de blockchain y de las criptomonedas no está regulado. En teoría, un gobierno podría ilegalizar la posesión de criptomonedas o la participación en sus redes. Esto genera incertidumbre en este tipo de soluciones.
Conclusiones
La tecnología blockchain es una base de datos que registra datos de forma secuencial e inmutable. Dispone de mecanismos orientados a ofrecer seguridad y confianza a sus usuarios. Debido a la naturaleza descentralizada, no existe una tercera parte de confianza que la controle o gestione. Cualquier persona puede ver los registros en tiempo real de manera transparente al instalar un nodo o usar exploradores de cadenas de bloque.
A pesar de toda su complejidad, el potencial de blockchain es casi ilimitado. Esta tecnología es muy apropiada para ser utilizada por cualquier aplicación que pueda sacar provecho del almacenamiento inmutable de registros. Esto abarca sectores tan diversos como el financiero (registro de transacciones), sanitario (registro de historiales), catastro (registro de la propiedad), cadena de suministro (registro de la trazabilidad) o divisa (billetera electrónica), entre otras muchas aplicaciones.
Hoy en día estamos viendo una proliferación de NFT y lo que se podría llamar tokenización de activos. El tiempo dirá cómo evoluciona esta tecnología.
Más información
En este artículo se ha desvelado lo que es blockchain y para qué sirve. Básicamente nos hemos limitado a esbozar los puntos más significativos sobre el tema. Si se tiene interés, este blog dispone de muchos otros contenidos relacionados. Por favor, utilice el buscador de contenidos que tenemos en la cabecera del blog.
Por otro lado, estos son algunos otros artículos que pueden ser de interés: