¿Qué es un Directed Acyclic Graph (DAG) en las criptomonedas?
Inicio
Artículos
¿Qué es un Directed Acyclic Graph (DAG) en las criptomonedas?

¿Qué es un Directed Acyclic Graph (DAG) en las criptomonedas?

Intermedio
Publicación: Jul 19, 2020Actualización: Dec 27, 2022
8m

Introducción

Cuando uno piensa en criptomonedas, es probable que los términos blockchain o "tecnología de registros distribuidos" le vengan a la mente. Desde el lanzamiento de Bitcoin, cientos de criptomonedas distintas han sido creadas. La mayoría de ellas se basan en una arquitectura de red similar. Sus estructuras de datos permiten a los usuarios transferir valor o interactuar con aplicaciones descentralizadas.
En una blockchain, nuevos bloques se añaden periódicamente a una creciente cadena de bloques. Cada bloque se conecta con el previo mediante una especie de eslabón criptográfico (específicamente, un hash). En cada uno de estos bloques hay transacciones recientes que han sido difundidas por los usuarios.
Pero a menudo existe un tiempo de espera entre el momento en que una transacción se transmite y el momento en que se incluye en un bloque. Imagínatelo como esperar un tren en una estación. Dependiendo del tamaño de los vagones (tamaño de bloque), y el número de personas que esperan (transacciones pendientes), es posible que no puedas llegar a tomar el siguiente tren. Ni siquiere el que viene después. Podrías acabar esperando desde segundos a horas a que las transacciones sean confirmadas.
Para muchos, se trata de una contrapartida aceptable. Después de todo, proporciona un alto grado de seguridad sin necesidad de apoyarse en un coordinador centralizado. Para otros, la tecnología blockchain tiene fecha de caducidad. Los detractores creen que, a largo plazo, los problemas de escalabilidad a que se enfrenta la tecnología blockchain impedirán una adopción masiva de la misma.

Algunos creen que el futuro de las redes de pagos con criptomonedas pasa por una arquitectura totalmente diferente – los directed acyclic graphs (o DAGs).


¿Qué es un DAG?

Un DAG es un tipo de estructura de datos diferente – imagínatela como una base de datos que conecta distintos fragmentos de información. "Directed acyclic graph" es un término cargado de connotaciones, así que empecemos por desglosarlo.


Un Directed Acyclic Graph.


Conceptualmente, los DAGs se parecen de alguna forma a lo de arriba. Están formados por vértices (las esferas) y aristas (las líneas que los conectan). Se los denomina directed (dirigidos) porque van en una dirección (puedes ver que se ha ilustrado mediante fechas). Y son acyclic o acíclicos (es decir, no cíclicos) porque sus vértices porque no generan un bucle sobre sí mismos – si empiezas en un punto y sigues el grafo, no puedes regresar al mismo punto. A continuación, quedará más claro.

Dichas estructuras de datos se utilizan, generalmente, para modelar la información. Uno puede apoyarse en un DAG, en campos científicos o médicos, para observar la relación entre variables, y determinar cómo influyen las unas en las otras. Por ejemplo, podrías tomar elementos como la nutrición, los ciclos del sueño y los síntomas físicos, para poder trazar los vínculos entre ellos y así determinar cómo afectan al paciente.

Para nuestro propósito, nos interesa más cómo ayudan a alcanzar consenso en la red distribuida de una criptomoneda.


¿Cómo funciona un DAG?

En una criptomoneda basada en DAG, cada vértice de la estructura representa una transacción. No existe aquí la noción de bloques, ni se requiere minería para extender la base de datos. En lugar de reunir las transacciones en bloques, cada una de ellas se construye encima de otra. Aún así, habrá una pequeña operación de tipo Proof-of-Work que se lleva a cabo cuando un nodo transmite una transacción. Esto garantiza que la red no sea "spameada" y también valida las transacciones previas.

Para que una nueva transacción sea añadida, deberá crearse encima de otras más antiguas. Pongamos por caso que Alice crea una nueva transacción. Para que ésta sea reconocida, deberá apuntar a otras anteriores. Algo así como la manera en que un bloque de Bitcoin apunta al que lo antecede, pero con múltiples transacciones referenciadas.

En algunos sistemas, un algoritmo determinará sobre qué transacciones (o "tips") la nueva transacción debe crearse. Las "tips" que es más probable que resulten seleccionadas son aquellas que tienen más peso acumulado – medida de la cantidad de transacciones que la ruta hacia la "tip" en cuestión tiene.

La transacciones sobre las que construirá Alice no han sido confirmadas. Pero en cuanto Alice apunta a ellas, pasan a estar confirmadas. La transacción de Alice quedará ahora como no confirmada, por lo que otra persona deberá crear sobre ella para que sea aceptada.

Los usuarios son más propensos a confirmar transacciones "más pesadas" porque así el sistema sigue creciendo. De lo contrario, nada impediría a éstos construir continuamente sobre transacciones más antiguas.

Con las blockchains, la protección contra el doble gasto (double-spend) es bastante fácil. Los mismos fondos no pueden ser gastados dos veces en un bloque – los nodos pueden detectar con facilidad los intentos, y rechazarán cualquier bloque que contenga transacciones en conflicto. Dado que, en primer lugar, a los mineros les resulta muy caro producir bloques, éstos estarán incentivados a jugar limpio.

Los DAG también tienen un mecanismo para evitar el doble gasto. Es algo similar, pero sin mineros. Cuando un nodo confirma transacciones anteriores, evalúan una ruta completa de regreso a la primera transacción del DAG para asegurarse de que el remitente tenga un saldo suficiente. Podría haber múltiples rutas, pero solo una necesita ser verificada.



Si los usuarios se basan en una ruta no válida, corren el riesgo de que se ignore su propia transacción. La suya podría ser legítima, pero debido a que la anterior no lo fue, nadie querrá extender ese camino en particular.

Al principio parece poco intuitivo: ¿no podrías terminar en una situación en la que existen varias ramas que no se conocen entre sí? Entonces, ¿no podrían las personas gastar los mismos fondos en estas diferentes ramas?



De hecho, es una posibilidad, pero se resuelve con un algoritmo de selección que favorece las puntas con un peso acumulado más pesado. Eso significa que, con el tiempo, terminarás con una rama que es mucho más fuerte que el resto. Las más débiles serán abandonadas, y la red continuará construyendo sobre la más pesada.

Al igual que con las blockchains, no hay una finalidad absoluta: nunca puedes estar 100% seguro de que una transacción no se revertirá. Es increíblemente improbable, pero teóricamente podrías "deshacer" un bloque de Bitcoin o Ethereum, revirtiendo todas las transacciones dentro. Cuantos más bloques se agreguen después de la transacción, más confianza puedes tener en ella. Es por eso que se recomienda esperar seis confirmaciones antes de gastar fondos.
En un DAG como IOTA's Tangle, existe una idea de confirmación de confianza. El algoritmo de selección se ejecuta 100 veces, y tu cuentas cuántas veces tu transacción ha sido aprobada directa o indirectamente en los consejos seleccionados. Cuanto mayor sea el porcentaje, más confianza puedes tener de que tu transacción permanecerá "establecida".

Esto puede parecer que conduce a una mala experiencia del usuario. Pero ese no es el caso. Si Alice envía a Bob 10 MagicDAGTokens, no necesita preocuparse por seleccionar las tips correctas del gráfico. Debajo del capó, su cartera podría hacer lo siguiente:

  • Selecciona tips pesadas (recuerda, estos son las que tienen las confirmaciones más acumuladas)
  • Sigue el camino de regreso a través de transacciones anteriores para asegurarte de que las tips tengan un saldo suficiente para gastar.
  • Una vez satisfechos, agregan su transacción al DAG, confirmando las transacciones en las que se basan.
Para Alice, esto se verá como el flujo de trabajo normal de la criptomoneda. Ella ingresa la dirección de Bob y la cantidad que quiere gastar, luego presiona enviar. La lista anterior es la Proof of Work que cada participante ejecuta al crear una transacción.



Pros y contras de los directed acyclic graphs

Pros de los DAGs

Velocidad

Sin restricciones por tiempos de bloqueo, cualquier persona puede transmitir y procesar sus transacciones en cualquier momento. No hay límite en la cantidad de transacciones que envían los usuarios, siempre que confirmen las más antiguas como lo hacen.


Sin minería

Los DAG no usan algoritmos de consenso PoW de la forma en que estamos acostumbrados. Su huella de carbono es, por lo tanto, una fracción de la de las criptomonedas que dependen de la minería para asegurar su red de blockchain.


Sin costo por transacción

Debido a que no hay mineros, los usuarios no necesitan pagar comisiones para transmitir sus transacciones. Dicho esto, algunos requieren que se pague una pequeña comisión a tipos especiales de nodos. Las comisiones bajas (o mejor, cero comisiones) son atractivas para los micropagos, ya que su objetivo es derrotado con comisiones de red significativas.


No hay problemas de escalabilidad

Sin restricciones por los tiempos de bloqueo, los DAG pueden procesar muchas más transacciones por segundo que las redes de blockchain tradicionales. Muchos defensores creen que esto los hará valiosos en los casos de uso de Internet de las cosas (IoT), donde todo tipo de máquinas interactuarán entre sí.


Contras de los DAGs

No es completamente descentralizado

Los protocolos que dependen de DAG tienen varios elementos de centralización. Para algunos, supuestamente es una solución a corto plazo para arrancar la red, pero queda por ver si los DAG pueden prosperar sin la intervención de terceros. Si no, se abren a los vectores de ataque que eventualmente podrían paralizar sus redes.


No ha sido probado a escala

Aunque las criptomonedas basadas en DAG han existido durante algunos años, tienen un largo camino por recorrer antes de ver un uso generalizado. Como tal, es difícil predecir qué incentivos podrían tener los usuarios para explotar el sistema en el futuro.


Conclusión

Los Directed Acyclic Graphs son ciertamente una tecnología interesante para construir redes de criptomonedas. Hasta ahora, hay relativamente pocos proyectos que utilizan la estructura de datos, y todavía tienen que evolucionar completamente. 

Dicho esto, si pueden aprovechar su potencial, podrían impulsar ecosistemas masivamente escalables. La tecnología DAG tiene una gran variedad de casos de uso en áreas que requieren un alto rendimiento y sin comisiones, como en Internet de las cosas (IoT) y micropagos.