¿Qué es un DAG? ¿Cómo funciona? ¿Cuáles son sus ventajas e inconvenientes?

Rubén Colomer, 12 febrero 2021

Si hay una palabra que nos viene a la mente cuando hablamos de criptomoneda esa es blockchain. Desde que se creó el Bitcoin, han surgido cientos de otras criptomonedas y 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. Sin embargo, la forma de funcionar de la blockchain del Bitcoin tiene muchas limitaciones y por ello han surgido otras blockchains basadas en otros conceptos. Una de las más revolucionarias son las blockchains basadas en DAG (Directed Acyclic Graph o Grafo Acíclico Dirigido) y en este artículo vamos a ver en qué consisten.

Blockchain

La cadena de bloques o blockchain es un conjunto de bloques al que se le añaden nuevos bloques creando una cadena en continuo crecimiento. En cada uno de estos bloques hay transacciones de dichas criptomonedas y cada bloque está conectado al anterior con una especie de enlace criptográfico (concretamente, un hash), lo cual convierte a estos bloques que podrían ser entes separados en una cadena unida por dichos hashes.

Lógicamente, la generación de dicho bloques requiere de ordenadores que calculen las operaciones y, además, lleva un tiempo determinado. Es como si piensas en un tren, dependiendo del tamaño de los vagones (en este caso bloques) verás pasar un vagón cada más o menos tiempo. Además, algunos piensan que dichas limitaciones producirán problemas de escalabilidad a largo plazo que impedirán su adopción masiva.

Sin embargo, muchos otros expertos creen que el futuro de las redes de pago de criptomonedas reside en una arquitectura totalmente diferente: los grafos acíclicos dirigidos (Directed Acyclic Graph o DAG).

¿Qué es un DAG?

Un Directed Acyclic Graph o Grafo Acíclico Dirigido (DAG) es un tipo de representación esquemática con la cual se puede representar una serie de datos relacionados entre sí. Estos datos se presentan visualmente como un conjunto de círculos o nodos. Cada uno de estos círculos o nodos, representa un determinado conjunto de datos dentro de todo el grupo. A la vez, estos nodos están conectados por líneas, que representan el flujo de datos de un punto a otro dentro del grafo. Cada círculo se conoce como un “vértice” y cada línea se conoce como un “borde”.

Puedes pensar en un DAG como una base de datos que conecta diferentes piezas de información y se caracteriza por:

  • Grafo: formado por vértices (las esferas) y aristas (las líneas que los conectan)
  • Dirigido: la información se dirige en una dirección (puedes ver esto ilustrado con las flechas)
  • Acíclicos: no hay bucles ni ciclos en el gráfico, si empiezas en un punto y sigues el gráfico, no puedes volver a ese mismo punto

Estas estructuras de datos se utilizan generalmente para modelar datos. En los campos científicos o médicos se puede recurrir a un DAG para observar la relación entre las variables y determinar cómo se influyen mutuamente. Por ejemplo, se podrían tomar elementos como la nutrición, los ciclos de sueño y los síntomas físicos, de modo que se puedan establecer vínculos entre ellos para determinar cómo afectan a un paciente. En nuestro caso, estamos más interesados en cómo pueden ayudar a lograr el consenso en una red distribuida de criptomonedas.

Los DAG son un concepto nacido en el seno de la Teoría de Grafos, y son parte esencial de las Ciencias de la computación.

¿Cómo funciona un DAG?

Confirmación

En una criptomoneda basada en DAG, cada vértice de la estructura representa una transacción y no existen los bloques como entidad. Tampoco se requiere la minería para “ampliar” la base de datos. Así que en lugar de reunir las transacciones en bloques, cada transacción se construye sobre otra. Aun así, hay una pequeña operación PoW o de prueba de trabajo que se realiza cuando un nodo envía una transacción. Esto asegura que la red no sea objeto de spam y también valida las transacciones anteriores.

Para que una nueva transacción sea añadida, debe construirse sobre las anteriores. Supongamos que Pepe crea una nueva transacción. Para que sea reconocida, esta transacción debe hacer referencia a las anteriores. Es un poco como si un bloque en Bitcoin hiciera referencia a uno anterior, pero hay múltiples transacciones referenciadas. Las transacciones sobre las que se basará Pepe no están confirmadas. Pero una vez que Pepe hace referencia a ellas, se convierten en confirmadas. La transacción de Pepe está ahora sin confirmar, por lo que otra persona debe construir sobre ella antes de que sea aceptada. Es más probable que los usuarios confirmen transacciones con un peso “mayor” para que el sistema siga creciendo. De lo contrario, no habría nada que impidiera a los usuarios construir continuamente sobre transacciones más antiguas.

Protección contra el doble gasto

Con las cadenas de bloques o blockchains, la protección contra el doble gasto es bastante fácil. Como los mismos fondos no pueden gastarse dos veces en un bloque, los nodos pueden detectar fácilmente cualquier intento y rechazarán cualquier bloque que contenga transacciones conflictivas. Como a los mineros les resulta tan caro producir bloques, se les incentiva a jugar limpio.

Los DAG también tienen un mecanismo para evitar el doble gasto. Es algo parecido, pero sin mineros. Cuando un nodo confirma transacciones más antiguas, evalúa todo el camino hasta la primera transacción del DAG para asegurarse de que el remitente tiene un saldo suficiente. Puede haber varios caminos, pero solo hay que verificar uno. Si los usuarios construyen una ruta no válida, corren el riesgo de que su propia transacción sea ignorada. La suya podría ser legítima, pero como la anterior no lo era, nadie querrá ampliar ese camino concreto.

Pero ¿no se podría llegar a una situación en la que existieran múltiples ramas que no se conocieran entre sí? Entonces, ¿no podría la gente gastar los mismos fondos en estas diferentes ramas? Esa es una posibilidad, pero se resuelve con un algoritmo de selección que favorece a los extremos con mayor peso acumulado. Eso significa que, con el tiempo, acabará habiendo una rama mucho más fuerte que el resto. Las más débiles serán abandonadas, y la red seguirá construyendo sobre la más pesada.

Confirmación

Al igual que ocurre con las cadenas de bloques, no existe una finalidad absoluta: nunca se puede estar seguro al 100% de que una transacción no será revertida. Es increíblemente improbable, pero en teoría se podría “deshacer” un bloque de Bitcoin o Ethereum, anulando todas las transacciones que contiene. Cuantos más bloques se añadan después de aquel en el que se encuentra tu transacción, más confianza podrás tener en ella. Por eso se recomienda esperar seis confirmaciones antes de gastar los fondos.

En un DAG como el Tangle de IOTA, hay una idea de confianza de confirmación. El algoritmo de selección se ejecuta 100 veces, y se cuenta cuántas veces su transacción ha sido directa o indirectamente aprobada en los extremos seleccionados. Cuanto más alto sea el porcentaje, más confianza puede tener en que su transacción seguirá siendo “aprobada”. Esto podría parecer que conduce a una mala experiencia de usuario. Pero no es así. Si Pepe envía a Ana 10 Tokens, no tiene que preocuparse de seleccionar las puntas correctas del gráfico. De manera automática, su wallet o billetera podría hacer lo siguiente:

  • Seleccionar los extremos más pesados (recuerda que son los que tienen más confirmaciones acumuladas)
  • Sigue el camino hacia atrás a través de las transacciones anteriores para asegurarse de que las cuentas tienen un saldo suficiente para gastar
  • Una vez satisfechos, añaden su transacción al DAG, confirmando las transacciones en las que se basan
  • Para Pepe, esto se parecerá al flujo de trabajo normal de la criptomoneda. Ella introduce la dirección de Ana y la cantidad que quiere gastar, luego presiona enviar. Y la transacción se creará.

Ventajas de los DAG

  • Velocidad: sin restricciones por los tiempos de creación de bloques, cualquiera puede emitir y procesar sus transacciones en cualquier momento. No hay límite en el número de transacciones que los usuarios envían, siempre que confirmen las más antiguas a medida que lo hacen.
  • No requiere minería: los DAG no utilizan los algoritmos de consenso PoW a los que estamos acostumbrados. Por lo tanto, su huella de carbono es una fracción de la de las criptomonedas que dependen de la minería para asegurar su red de blockchain.
  • No hay tasas de transacción o comisiones: como no hay mineros, los usuarios no necesitan pagar tasas para transmitir sus transacciones. Dicho esto, algunas requieren que se pague una pequeña cuota a tipos especiales de nodos. Las tarifas bajas son atractivas para los micropagos.
  • No tiene problemas de escalabilidad: al no estar limitados por los tiempos de los bloques, los DAGs pueden procesar muchas más transacciones por segundo que las redes tradicionales de blockchain. Muchos defensores creen que esta característica hará despegar los DAG en el Internet de las Cosas o IoT, donde todo tipo de máquinas podrán interactuarán millones de veces entre sí.

Desventajas de los DAG

  • No están totalmente descentralizados: los protocolos que se basan en DAG tienen varios elementos de centralización. Para algunos, se supone que es una solución a corto plazo para arrancar la red, pero está por ver si los DAG pueden prosperar sin la intervención de terceros. Si no es así, se abren a vectores de ataque que podrían acabar paralizando sus redes.
  • No se ha probado a escala: aunque las criptomonedas basadas en DAG existen desde hace unos años, tienen un largo camino por recorrer antes de ver un uso generalizado. Por ello, es difícil predecir qué incentivos podrían tener los usuarios para explotar el sistema en el futuro.
Lemming at Work puede usar cookies para recopilar estadísticas, optimizar la funcionalidad del sitio y ofrecerte publicidad basada en tus intereses. Si sigues navegando estarás aceptando su uso. Más información de nuestras políticas.