Nivel técnico del artículo

Blockchain y las Distributed Ledger Technologies (DLTs) han sido una de las tecnologías con más hype que se recuerdan. Primero tuvimos el runrun de las criptomonedas, que nadie tenía muy claro para qué servían o dónde usarlas y de repente… el mundo siguió sin saber para que utilizarlas, pero se dedicó a especular salvajemente con ellas.

Después avanzamos.

Pasamos al boom de los DLTs y de blockchain, la tecnología que hay por debajo de las criptomonedas, y aquí cambiamos el enfoque. De repente, blockchain servía para todo, para banca, para logística, para salud, para cambiar una rueda de la bici, daba igual para que, ahí estaba blockchain, salvando al mundo.

Sin embargo, las DLTs son una tecnología extremadamente útil, pero, como todo, sirven para lo que sirven. Los DLTs tienen ciertas características clave, como la inmutabilidad, el no repudio o una naturaleza distribuida. Es una herramienta muy potente, su principal misión podríamos decir que es la de permitir interactuar con otros actores en los que no necesariamente confiamos, sin necesitar agentes de confianza, porque tenemos un sistema donde todo puede ser verificado.

Esto, que suena raro, es relativamente sencillo de explicar. Pensemos en el ejemplo de las criptomonedas y bitcoin. El sistema con el que nos compararíamos sería el sistema bancario. Pongamos que hemos de hacer una transferencia de 100€. La transferencia se la puedo hacer a alguien como mi madre, de quien me fío (o no :D). Sin embargo, podría hacérsela a un desconocido que podría recibir el dinero y decir que no lo ha hecho. O yo podría no mandárselo y decirle que lo he hecho. ¿Por qué no sucede esto? Porque tenemos a un banco en quien confiamos (ehem, ehem) y nos dice que el dinero ha sido enviado y que ha llegado correctamente. Una red tipo Bitcoin ofrece las mismas garantías, pero sin el banco. La garantía la ofrece la red directamente. Si alguien hace una transacción y es aceptada, esta figurará en el «ledger» (es decir, libro de cuentas, log, registro), si no es aceptada, no lo hará. Si alguien ha hecho una transacción, no podrá desdecirse de ella, porque el ledger no puede ser manipulado, si figura como ordenante, es el ordenante, fin.

Pero bueno, ¿tanta monserga para tener un sistema bancario alternativo? No. Como decimos, las DLTs tienen muchas aplicaciones. Por ejemplo, todo aquello en lo que existan intercambios de archivos o documentos entre distintos actores, como pedidos, albaranes, documentación referente a la calidad de un producto, análisis, etc. Estos casos son particularmente interesantes porque de estos documentos (digitales) pueden obtenerse hashes (codificaciones) que pueden ser almacenados y utilizados para probar si ha habido alguna manipulación de este archivo con fecha posterior a su registro. En estos casos la utilidad va más allá de guardar un simple registro inmutable de estos documentos (que ya es), además, las DLTs constituyen una herramienta eficaz para la auditoría y depuración de responsabilidades. Con este objetivo han surgido numerosas herramientas como Tradelens, impulsada por IBM y basada en Hyperledger.

Sin embargo, hay que tener en cuenta que esta utilidad se ve limitada si lo que queremos registrar son activos no digitales, como una casa, alimentos, etc. ¿Por qué? porque en estos casos no se puede registrar una prueba en el DLT de que el activo no ha sido manipulado. En esta situación, la información que se almacenara no podría ser manipulada, pero no tendríamos garantía de su certeza.

De igual manera, es necesario tener claro que las DLTs han de ser utilizadas en entornos distribuidos, con múltiples actores, ya que sus características de inmutabilidad, no repudio o seguridad vienen dadas, principalmente, porque todos o muchos de esos actores van a tener una copia del ledger. Modificar el estado del DLT es tremendamente complicado, debido a su encriptación y otras de sus características, como su replicación y naturaleza distribuida. Si quisiéramos alterar realmente el estado del sistema, deberíamos modificar todas las copias existentes, lo cual no sólo es terriblemente complicado, sino que además requeriría capacidades de cómputo ingentes y ser realizado en un muy breve periodo de tiempo, antes de que un nuevo bloque fuera publicado en la cadena. Si pretendemos utilizar esto en un entorno no distribuido, estamos invalidando la tecnología.

Por ello es importante comprender la tecnología en sí, sus características, sus implementaciones y sus utilidades, así como estudiar casos de uso y reflexionar sobre su corrección o no. Un buen punto de partida puede ser el webinar que hicimos el pasado mes de mayo. Te invitamos a verlo aquí.

Autor
Jordi Arjona - ITI
Jordi Arjona | Coordinador del grupo de Sistemas Distribuidos (SiDi) de ITI
Categorías