Tabla de Contenidos
ToggleComo muchos sabéis, la revolución de la blockchain consiste en crear un registro contable distribuido, también llamado ledger (libro mayor) distribuido. En este registro es donde viven y cambian de propiedad las criptomonedas. Su mantenimiento no depende de puntos centrales de fallo, es decir, es descentralizado.
Por esto las blockchains (si están bien construidas, con una moneda nativa) nos ofrecen acceso a plataformas monetarias y financieras libremente y sin confianza. Pero desde 2009, año de lanzamiento de Bitcoin, la investigación por crear mejores tecnologías no ha parado, y una de esas áreas en desarrollo son las criptomonedas basadas en Directed Acyclic Graph o simplemente DAG.
Como su propio nombre indica, la información de una blockchain está organizada en bloques enlazados. Cada bloque apunta a un bloque padre (el bloque anterior), concretamente con el hash de la cabecera del anterior bloque o «block header».
Realmente la estructura de cadena de bloques existía mucho antes de Bitcoin pero la verdadera innovación que traen las blockchains (de criptomonedas) son los protocolos de consenso, como el Proof of Work.
Estos protocolos hacen que las modificaciones en el registro tengan un coste acumulativo (en función de la altura de bloque), ofreciendo cierta garantía de que no se revertirán transacciones y se robe dinero. Todo esto lo consiguen usando las propiedades de la estructura de información que hemos descrito, la blockchain.
Es por esto que la palabra blockchain se usa para referirse, más que a la propia estructura de datos, a la tecnología de ledgers distribuidos (DLT).
En estos ledgers distribuidos, los bloques de la blockchain contienen transacciones, generalmente tienen un tamaño limitado para no causar centralización, y se producen en un intervalo que puede ir de segundos a minutos.
Directed Acyclic Graph es una estructura de datos diferente a la blockchain que proviene de la Teoría de Grafos. Los datos son representados como vértices o «nodos» y se conectan entre sí por medio de aristas. Las aristas representan a un vértice conectándose con otro anterior, de la misma forma que los bloques de la blockchain se enlazan entre sí.
«Directed» viene de que estas aristas tienen una dirección. Esto también ocurre en la blockchain dónde el bloque 70 apunta al 69, el 69 al 68, y así hasta el bloque génesis.
La parte de «Acyclic» viene de que no se pueden dar bucles, es acíclico. De nuevo, similar a la blockchain. El bloque 69 no puede apuntar al 70. De hecho, el bloque 70 se construye y añade después, por lo que el 69 no puede referenciarlo previamente.
Esto tiene todo el sentido del mundo porque este registro solamente consiste en añadir transacciones nuevas agrupadas en bloques, que se van transmitiendo por la red P2P sobre la marcha. La blockchain, por lo tanto, sólo crece en una dirección.
Pero lo que diferencia DAG de una blockchain es que un vértice puede referenciar a diferentes vértices anteriores, mientras que en la blockchain solo existe un bloque padre.
Las criptomonedas basadas en DAG funcionan sin utilizar los famosos bloques de transacciones. El registro de transacciones (ledger) pasa a ser un continuo de transacciones enlazadas entre sí (en vez de bloques). Las transacciones son los vértices del DAG y los enlaces (hashes) son las aristas.
Cuando un usuario quiere hacer una transacción tiene que resolver una prueba de trabajo (mucho menos costosa que la de Bitcoin). La prueba consiste en seguir un algoritmo para ver sobre qué transacciones construir (a qué transacciones apuntar con hashes) y verificar que estas transacciones sean válidas.
Una vez hecha esta prueba, el usuario transmite su transacción por la red y esta confirma las transacciones que referenció. De la misma manera la transacción del usuario queda sin confirmar hasta que es referenciada por otras transacciones. En general los algoritmos están implementados de forma que será más probable que se construya sobre transacciones con más confirmaciones acumuladas. Por ejemplo, será más probable construir sobre una transacción que ha confirmado 5, que sobre otra que solo referencia a 1.
Al igual que en Bitcoin una transacción es más difícil de revertir a mayor número de confirmaciones, lo mismo ocurriría aquí, aunque no sabemos cuántas confirmaciones serían necesarias para considerar que la transacción está lo suficientemente asegurada. Bajo este diseño no existe la figura del minero y el trabajo acumulado proviene de los usuarios.
Las reglas específicas para llegar al consenso dependen de cada implementación y podrían variar bastante, por ejemplo, usando servidores centralizados.
Entre las ventajas de este tipo de sistemas podemos encontrar mencionadas menores tiempos de confirmación, mayor escalabilidad al no estar sujetos a la limitación del tamaño de bloque y comisiones muy bajas o inexistentes.
Sin embargo, como ya hemos explicado en diferentes ocasiones, no existe almuerzo gratis en el mundo de las blockchains. Si la cantidad de transacciones no tiene un límite, el registro puede crecer demasiado en tamaño e impedir a los usuarios verificar la información sin confianza en terceros, provocando centralización.
Los menores tiempos de confirmación realmente son irrelevantes, porque lo que verdaderamente importa son las garantías de finalidad. Esperar 10 minutos en Bitcoin podría, por ejemplo, darte mil veces más seguridad que 10 minutos en un sistema DAG.
Otro problema es que estos sistemas no son totalmente descentralizados y dependen de puntos de fallo como servidores de coordinación. Las implementaciones también son centralizadas como ocurre en Hedera Hashgraph e IOTA.
En conclusión esta tecnología podría ser interesante si la descentralización no es una prioridad. El problema es que estos sistemas no están probados lo suficiente y pueden ser inseguros.
Al buscar la escalabilidad, en mi opinión, y seguramente en la opinión de muchos, es mucho mejor usar tecnologías de segunda capa como Lightning Network y ZK-Rollups que ya funcionan sobre blockchains seguras y descentralizadas.