Cuando piensa en criptomonedas, es probable que le vengan a la mente los términos «blockchain» o «tecnología de contabilidad distribuida». Desde el lanzamiento de Bitcoin, se han creado cientos de otras criptomonedas. 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. Algunos creen que el futuro de las redes de pagos con criptomonedas radica en una arquitectura completamente diferente: gráficos acíclicos dirigidos (o DAG).
En una cadena de bloques, se agrega periódicamente un nuevo bloque a una cadena de bloques en crecimiento. Cada bloque está conectado al anterior con una especie de enlace criptográfico (en concreto, un hash). En cada uno de estos bloques se encuentran las transacciones recientes que han sido difundidas por los usuarios.
Pero a menudo hay un período de espera entre la transmisión de una transacción y su inclusión en un bloque. Piense en ello como esperar un tren en una estación. Dependiendo del tamaño de los vagones (tamaño del bloque) y la cantidad de otras personas esperando (transacciones pendientes), es posible que ni siquiera pueda tomar el siguiente tren. O incluso el siguiente. Puede estar esperando desde segundos hasta horas para que se confirme la transacción.
Para muchos, esta es una compensación decente. Después de todo, proporciona un alto grado de seguridad sin depender de un coordinador centralizado. Para otros, la tecnología blockchain tiene una fecha de vencimiento. Los detractores creen que, a largo plazo, los problemas de escalabilidad que enfrenta la tecnología blockchain evitarán la adopción masiva.
¿Qué es un DAG?
Un DAG es un tipo diferente de estructura de datos; considérelo como una base de datos que conecta diferentes piezas de información. «Gráfico acíclico dirigido» es un término cargado, así que comencemos por desglosarlo.
Conceptualmente, los DAG se parecen a los anteriores. Están formados por vértices (las esferas) y los bordes (las líneas que los conectan). Están dirigidos porque van en una dirección (puede ver esto ilustrado con las flechas). Son acíclicos (es decir, no cíclicos) porque los vértices no se repiten sobre sí mismos; si comienzas en un punto y sigues el gráfico, no puedes volver al mismo punto. Esto se aclarará en breve.
Estas estructuras de datos se utilizan generalmente para modelar datos. Puede confiar en un DAG en campos científicos o médicos para observar la relación entre las variables y determinar cómo se impactan entre sí. Por ejemplo, puede tomar cosas como nutrición, ciclos de sueño y síntomas físicos, de modo que pueda establecer vínculos entre ellos para establecer cómo afectan a un paciente.
Para nuestros propósitos, estamos más interesados en cómo pueden ayudar a lograr el consenso en una red distribuida de criptomonedas.
¿Cómo Funciona un DAG?
En una criptomoneda basada en DAG, cada vértice en la estructura representa una transacción. Aquí no hay noción de bloques, ni se requiere minería para extender la base de datos. Entonces, en lugar de reunir transacciones en bloques, cada transacción se construye encima de otra. Aún así, hay una pequeña operación de prueba de trabajo que se realiza cuando un nodo envía una transacción. Esto asegura que la red no reciba spam y también valida las transacciones anteriores.
Para que se agregue una nueva transacción, debe basarse en las anteriores. Suponga que Alice crea una nueva transacción. Para que sea reconocida, esta transacción debe hacer referencia a las anteriores. Un poco como la forma en que un bloque en Bitcoin hace referencia al anterior, pero hay varias transacciones a las que se hace referencia.
En algunos sistemas, un algoritmo seleccionará las transacciones (o «sugerencias») sobre las que debe basarse una nueva transacción. Las puntas que tienen más probabilidades de ser seleccionadas son aquellas que tienen más peso acumulado, una medida de cuántas confirmaciones tiene el camino hacia la punta.
Las transacciones sobre las que Alice construirá no están confirmadas. Pero una vez que Alice hace referencia a ellos, se confirman. La transacción de Alice ahora no está confirmada, por lo que alguien más debe construir sobre ella antes de que sea aceptada. Es más probable que los usuarios confirmen transacciones con un peso «más pesado» para que el sistema siga creciendo. De lo contrario, no habría nada que impidiera que los usuarios construyeran continuamente sobre transacciones más antiguas.
Con blockchains, la protección de doble gasto es bastante fácil. Los mismos fondos no se pueden gastar dos veces en un bloque: los nodos pueden detectar fácilmente cualquier intento y rechazarán cualquier bloque que contenga transacciones en conflicto. Dado que es tan caro para los mineros producir bloques en primer lugar, se les incentiva 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 más antiguas, evalúa una ruta completa de regreso a la primera transacción del DAG para asegurarse de que el remitente tenga un saldo suficiente. Puede haber varias rutas, pero solo es necesario verificar una.
Si los usuarios se basan en una ruta no válida, corren el riesgo de que se ignore su propia transacción. El suyo podría ser legítimo, pero como el anterior no lo era, nadie querrá extender ese camino en particular. Parece poco intuitivo al principio: ¿no podría terminar en una situación en la que existen múltiples ramas que no se conocen entre sí? Entonces, ¿no podría la gente 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 propinas con un mayor peso acumulado. Eso significa que, con el tiempo, terminarás con una rama mucho más fuerte que el resto. Los más débiles serán abandonados y la red continuará construyendo sobre el más pesado.
Al igual que con las cadenas de bloques, no existe una finalidad absoluta: nunca puede 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 internas. Cuantos más bloques se agreguen después del que se encuentra su transacción, más confianza puede tener en ella. Es por eso que se recomienda que espere seis confirmaciones antes de gastar fondos.
En un DAG como Tangle de IOTA, hay una idea de confianza de confirmación. El algoritmo de selección se ejecuta 100 veces y usted cuenta cuántas veces su transacción ha sido aprobada directa o indirectamente en los consejos seleccionados. Cuanto mayor sea el porcentaje, más confianza podrá tener en que su transacción permanecerá «liquidada».
Esto puede parecer que conduce a una mala experiencia de usuario. Pero ese no es el caso. Si Alice envía a Bob 10 MagicDAGTokens, no tiene que preocuparse por seleccionar las puntas correctas del gráfico. Debajo del capó, su billetera podría hacer lo siguiente:
- Seleccione las propinas pesadas (recuerde, estas son las que tienen más confirmaciones acumuladas).
- Siga el camino de regreso a través de transacciones anteriores para asegurarse de que las propinas 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 las criptomonedas. Ingresa la dirección de Bob y la cantidad que quiere gastar, luego presiona enviar. La lista anterior es la Prueba de trabajo que cada participante ejecuta al crear una transacción.
Pros y Contras de los Gráficos Acíclicos Dirigidos
Ventajas de los DAG
- Velocidad: Sin restricciones por tiempos de bloqueo, cualquiera 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 de PoW de la forma en 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 blockchain.
- Sin tarifas de transacción: Debido a que no hay mineros, los usuarios no necesitan pagar tarifas para transmitir sus transacciones. Dicho esto, algunos requieren que se pague una pequeña tarifa a tipos especiales de nodos. Las tarifas bajas (o mejor, tarifas cero) son atractivas para los micropagos, ya que su propósito se ve frustrado con tarifas de red significativas.
- Sin problemas de escalabilidad: Sin restricciones por tiempos de bloqueo, los DAG pueden procesar muchas más transacciones por segundo que las redes tradicionales de blockchain. 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 DAG
- No completamente descentralizado: Los protocolos que se basan en 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. De lo contrario, se abren a los vectores de ataque que eventualmente podrían paralizar sus redes.
- No 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.
Pensamientos Finales
Los gráficos acíclicos dirigidos son sin duda una tecnología interesante para construir redes de criptomonedas. Hasta ahora, hay relativamente pocos proyectos que utilizan la estructura de datos y aún no han evolucionado por completo. Dicho esto, si pueden desarrollar su potencial, podrían impulsar ecosistemas enormemente escalables. La tecnología DAG tiene una gran variedad de casos de uso en áreas que requieren un alto rendimiento y sin tarifas, como Internet de las cosas (IoT) y micropagos.