{"id":5442,"date":"2023-01-17T15:33:46","date_gmt":"2023-01-17T15:33:46","guid":{"rendered":"https:\/\/www.bitnovo.com\/blog\/?p=5442"},"modified":"2022-04-29T11:18:17","modified_gmt":"2022-04-29T11:18:17","slug":"que-es-directed-acyclic-graph-dag","status":"publish","type":"post","link":"https:\/\/www.bitnovo.com\/blog\/que-es-directed-acyclic-graph-dag","title":{"rendered":"\u00bfQu\u00e9 es Directed Acyclic Graph (DAG)?"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Alternar tabla de contenidos\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #ffffff;color:#ffffff\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #ffffff;color:#ffffff\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.bitnovo.com\/blog\/que-es-directed-acyclic-graph-dag\/#estructura_de_datos_de_la_blockchain\" >Estructura de datos de la blockchain<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.bitnovo.com\/blog\/que-es-directed-acyclic-graph-dag\/#estructura_dag_y_diferencia_con_blockchain\" >Estructura DAG y diferencia con blockchain<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.bitnovo.com\/blog\/que-es-directed-acyclic-graph-dag\/#ledger_distribuido_basado_en_dag\" >Ledger distribuido basado en DAG<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.bitnovo.com\/blog\/que-es-directed-acyclic-graph-dag\/#ventajas_y_problemas\" >Ventajas y problemas<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tiempo de lectura:<\/span> <span class=\"rt-time\"> 4<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span><p>Como muchos sab\u00e9is, la revoluci\u00f3n de la\u00a0<strong>blockchain<\/strong>\u00a0consiste en crear un registro contable distribuido, tambi\u00e9n llamado\u00a0<strong>ledger<\/strong>\u00a0(libro mayor)\u00a0<strong>distribuido<\/strong>. En este registro es donde viven y cambian de propiedad las\u00a0<strong>criptomonedas<\/strong>. Su mantenimiento no depende de puntos centrales de fallo, es decir, es\u00a0<strong>descentralizado<\/strong>.<\/p>\n<p>Por esto las blockchains (si est\u00e1n bien construidas, con una moneda nativa) nos ofrecen acceso a\u00a0<strong>plataformas monetarias y financieras<\/strong>\u00a0libremente y sin confianza. Pero desde 2009, a\u00f1o de lanzamiento de Bitcoin, la\u00a0<a href=\"https:\/\/www.bitnovo.com\/blog\/que-es-la-blockchain-de-tercera-generacion\/\"><strong>investigaci\u00f3n<\/strong><\/a>\u00a0por crear mejores tecnolog\u00edas no ha parado, y una de esas \u00e1reas en desarrollo son las criptomonedas basadas en\u00a0<strong>Directed Acyclic Graph<\/strong>\u00a0o simplemente\u00a0<strong>DAG<\/strong>.<\/p>\n<div class=\"is-divider divider clearfix\"><\/div>\n<h2><span class=\"ez-toc-section\" id=\"estructura_de_datos_de_la_blockchain\"><\/span><strong>Estructura de datos de la blockchain<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Como su propio nombre indica, la informaci\u00f3n de una blockchain est\u00e1 organizada en\u00a0<strong>bloques enlazados<\/strong>. Cada bloque\u00a0<strong>apunta<\/strong>\u00a0a un\u00a0<strong>bloque padre<\/strong>\u00a0(el bloque anterior), concretamente con el\u00a0<a href=\"https:\/\/www.bitnovo.com\/blog\/que-es-un-hash\/\"><strong>hash<\/strong><\/a>\u00a0de la cabecera del anterior bloque o \u00abblock header\u00bb.<\/p>\n<p>Realmente la estructura de\u00a0<strong>cadena de bloques<\/strong>\u00a0exist\u00eda mucho\u00a0<strong>antes de Bitcoin<\/strong>\u00a0pero la verdadera innovaci\u00f3n que traen las blockchains (de criptomonedas) son los\u00a0<strong>protocolos de consenso<\/strong>, como el\u00a0<a href=\"https:\/\/www.bitnovo.com\/blog\/que-es-proof-of-work-el-protocolo-de-consenso-de-bitcoin\/\"><strong>Proof of Work<\/strong><\/a>.<\/p>\n<p>Estos protocolos hacen que las modificaciones en el registro tengan un\u00a0<strong>coste acumulativo<\/strong>\u00a0(en funci\u00f3n de la\u00a0<a href=\"https:\/\/www.bitnovo.com\/blog\/que-es-la-altura-de-bloque\/\"><strong>altura de bloque<\/strong><\/a>), ofreciendo cierta garant\u00eda de que\u00a0<strong>no se revertir\u00e1n transacciones y se\u00a0<a href=\"https:\/\/www.bitnovo.com\/blog\/que-es-un-ataque-de-doble-gasto\/\">robe dinero<\/a><\/strong>. Todo esto lo consiguen usando las propiedades de la estructura de informaci\u00f3n que hemos descrito, la blockchain.<\/p>\n<p>Es por esto que la palabra blockchain se usa para referirse, m\u00e1s que a la propia\u00a0<strong>estructura de datos<\/strong>, a la tecnolog\u00eda de\u00a0<strong>ledgers distribuidos<\/strong>\u00a0(DLT).<\/p>\n<p>En estos ledgers distribuidos, los bloques de la blockchain\u00a0<strong>contienen transacciones<\/strong>, generalmente tienen un\u00a0<strong>tama\u00f1o limitado<\/strong>\u00a0para no causar centralizaci\u00f3n, y\u00a0<strong>se producen en un intervalo<\/strong>\u00a0que puede ir de segundos a minutos.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"estructura_dag_y_diferencia_con_blockchain\"><\/span><strong>Estructura DAG y diferencia con blockchain<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>Directed Acyclic Graph<\/strong>\u00a0es una\u00a0<strong>estructura de datos diferente<\/strong>\u00a0a la blockchain que proviene de la\u00a0<strong>Teor\u00eda de Grafos<\/strong>. Los datos son representados como\u00a0<strong>v\u00e9rtices<\/strong>\u00a0o \u00ab<strong>nodos<\/strong>\u00bb y se conectan entre s\u00ed por medio de\u00a0<strong>aristas<\/strong>. Las aristas representan a un v\u00e9rtice conect\u00e1ndose con otro anterior, de la misma forma que los bloques de la blockchain se enlazan entre s\u00ed.<\/p>\n<p>\u00abDirected\u00bb viene de que estas aristas tienen una\u00a0<strong>direcci\u00f3n<\/strong>. Esto tambi\u00e9n ocurre en la blockchain d\u00f3nde el bloque 70 apunta al 69, el 69 al 68, y as\u00ed hasta el\u00a0<a href=\"https:\/\/www.bitnovo.com\/blog\/que-es-un-bloque-genesis\/\"><strong>bloque g\u00e9nesis<\/strong><\/a>.<\/p>\n<p>La parte de \u00abAcyclic\u00bb viene de que no se pueden dar bucles, es\u00a0<strong>ac\u00edclico<\/strong>. De nuevo, similar a la blockchain. El bloque 69 no puede apuntar al 70. De hecho, el bloque 70 se construye y a\u00f1ade despu\u00e9s, por lo que el 69 no puede referenciarlo previamente.<\/p>\n<p>Esto tiene todo el sentido del mundo porque este registro solamente\u00a0<strong>consiste en a\u00f1adir transacciones nuevas agrupadas en bloques<\/strong>, que se van transmitiendo por la\u00a0<a href=\"https:\/\/www.bitnovo.com\/blog\/que-es-red-peer-to-peer\/\">red P2P<\/a>\u00a0sobre la marcha. La blockchain, por lo tanto, s\u00f3lo crece en\u00a0<strong>una direcci\u00f3n<\/strong>.<\/p>\n<p>Pero\u00a0<strong>lo que diferencia DAG de una blockchain<\/strong>\u00a0es que un v\u00e9rtice puede referenciar a diferentes v\u00e9rtices anteriores, mientras que en la blockchain solo existe un bloque padre.<\/p>\n<div id=\"image_727237279\" class=\"img has-hover x md-x lg-x y md-y lg-y\">\n<div class=\"img-inner dark\"><img fetchpriority=\"high\" decoding=\"async\" class=\"attachment-large size-large lazyloaded\" src=\"https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/08\/Que-es-Directed-Acyclic-Graph-DAG.jpg\" sizes=\"(max-width: 768px) 100vw, 768px\" srcset=\"https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/08\/Que-es-Directed-Acyclic-Graph-DAG.jpg 768w, https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/08\/Que-es-Directed-Acyclic-Graph-DAG-300x205.jpg 300w\" alt=\"\u00bfQu\u00e9 es Directed Acyclic Graph (DAG)?\" width=\"768\" height=\"526\" data-srcset=\"https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/08\/Que-es-Directed-Acyclic-Graph-DAG.jpg 768w, https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/08\/Que-es-Directed-Acyclic-Graph-DAG-300x205.jpg 300w\" data-src=\"https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/08\/Que-es-Directed-Acyclic-Graph-DAG.jpg\" data-sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"ledger_distribuido_basado_en_dag\"><\/span><strong>Ledger distribuido basado en DAG<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Las\u00a0<strong>criptomonedas basadas en DAG<\/strong>\u00a0funcionan sin utilizar los famosos bloques de transacciones. El\u00a0<strong>registro de transacciones<\/strong>\u00a0(ledger) pasa a ser un\u00a0<strong>continuo de transacciones enlazadas<\/strong>\u00a0entre s\u00ed (en vez de bloques). Las\u00a0<strong>transacciones<\/strong>\u00a0son los\u00a0<strong>v\u00e9rtices del DAG<\/strong>\u00a0y los\u00a0<strong>enlaces<\/strong>\u00a0(hashes) son las\u00a0<strong>aristas<\/strong>.<\/p>\n<p>Cuando un usuario quiere hacer una transacci\u00f3n tiene que\u00a0<strong>resolver una prueba de trabajo<\/strong>\u00a0(mucho menos costosa que la de Bitcoin). La prueba consiste en\u00a0<strong>seguir un algoritmo<\/strong>\u00a0para ver\u00a0<strong>sobre qu\u00e9 transacciones construir<\/strong>\u00a0(a qu\u00e9 transacciones apuntar con hashes) y\u00a0<strong>verificar<\/strong>\u00a0que estas transacciones\u00a0<strong>sean v\u00e1lidas<\/strong>.<\/p>\n<p>Una vez hecha esta prueba, el usuario\u00a0<strong>transmite su transacci\u00f3n<\/strong>\u00a0por la red y esta\u00a0<strong>confirma las transacciones que referenci\u00f3<\/strong>. De la misma manera la transacci\u00f3n del usuario queda\u00a0<strong>sin confirmar<\/strong>\u00a0hasta que es\u00a0<strong>referenciada por otras transacciones<\/strong>. En general los algoritmos est\u00e1n implementados de forma que ser\u00e1 m\u00e1s probable que se construya sobre transacciones con m\u00e1s\u00a0<strong>confirmaciones acumuladas<\/strong>. Por ejemplo, ser\u00e1 m\u00e1s probable construir sobre una transacci\u00f3n que ha confirmado 5, que sobre otra que solo referencia a 1.<\/p>\n<p>Al igual que en Bitcoin una transacci\u00f3n es\u00a0<strong>m\u00e1s dif\u00edcil de revertir<\/strong>\u00a0a\u00a0<strong>mayor n\u00famero de confirmaciones<\/strong>, lo mismo ocurrir\u00eda aqu\u00ed, aunque no sabemos cu\u00e1ntas confirmaciones ser\u00edan necesarias para considerar que la transacci\u00f3n est\u00e1 lo suficientemente asegurada. Bajo este dise\u00f1o\u00a0<strong>no existe<\/strong>\u00a0la figura del\u00a0<strong>minero<\/strong>\u00a0y el trabajo acumulado proviene de los usuarios.<\/p>\n<p>Las reglas espec\u00edficas para llegar al consenso\u00a0<strong>dependen de cada implementaci\u00f3n<\/strong>\u00a0y podr\u00edan variar bastante, por ejemplo, usando servidores centralizados.<\/p>\n<div class=\"is-divider divider clearfix\"><\/div>\n<div id=\"image_1171573994\" class=\"img has-hover x md-x lg-x y md-y lg-y\">\n<div class=\"img-inner dark\"><img decoding=\"async\" class=\"attachment-large size-large lazyloaded\" src=\"https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/08\/Que-es-Directed-Acyclic-Graph-DAG1.jpg\" sizes=\"(max-width: 768px) 100vw, 768px\" srcset=\"https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/08\/Que-es-Directed-Acyclic-Graph-DAG1.jpg 768w, https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/08\/Que-es-Directed-Acyclic-Graph-DAG1-300x205.jpg 300w\" alt=\"\u00bfQu\u00e9 es Directed Acyclic Graph (DAG)?\" width=\"768\" height=\"526\" data-srcset=\"https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/08\/Que-es-Directed-Acyclic-Graph-DAG1.jpg 768w, https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/08\/Que-es-Directed-Acyclic-Graph-DAG1-300x205.jpg 300w\" data-src=\"https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/08\/Que-es-Directed-Acyclic-Graph-DAG1.jpg\" data-sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"ventajas_y_problemas\"><\/span>Ventajas y problemas<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Entre las ventajas de este tipo de sistemas podemos encontrar mencionadas\u00a0<strong>menores tiempos de confirmaci\u00f3n<\/strong>,\u00a0<strong>mayor escalabilidad<\/strong>\u00a0al no estar sujetos a la limitaci\u00f3n del tama\u00f1o de bloque y\u00a0<strong><a href=\"https:\/\/www.bitnovo.com\/blog\/que-son-las-comisiones-de-red\/\">comisiones<\/a>\u00a0muy bajas o inexistentes<\/strong>.<\/p>\n<p>Sin embargo, como ya hemos explicado en diferentes ocasiones,\u00a0<strong>no existe almuerzo gratis<\/strong>\u00a0en el mundo de las blockchains. Si la cantidad de transacciones no tiene un l\u00edmite, el registro puede\u00a0<strong>crecer demasiado<\/strong>\u00a0en tama\u00f1o e impedir a los usuarios verificar la informaci\u00f3n sin confianza en terceros, provocando\u00a0<strong>centralizaci\u00f3n<\/strong>.<\/p>\n<p>Los menores tiempos de confirmaci\u00f3n realmente son irrelevantes, porque lo que verdaderamente importa son las\u00a0<strong>garant\u00edas de finalidad<\/strong>. Esperar 10 minutos en Bitcoin podr\u00eda, por ejemplo, darte mil veces m\u00e1s seguridad que 10 minutos en un sistema DAG.<\/p>\n<p>Otro problema es que estos sistemas no son totalmente descentralizados y\u00a0<strong>dependen de puntos de fallo<\/strong>\u00a0como\u00a0<strong>servidores de coordinaci\u00f3n<\/strong>. Las implementaciones tambi\u00e9n son centralizadas como ocurre en Hedera Hashgraph e\u00a0<a href=\"https:\/\/www.bitnovo.com\/blog\/que-es-iota-el-proyecto-que-se-aleja-de-las-blockchains\/\">IOTA<\/a>.<\/p>\n<p>En conclusi\u00f3n esta tecnolog\u00eda podr\u00eda ser interesante\u00a0<strong>si la descentralizaci\u00f3n no es una prioridad<\/strong>. El problema es que estos sistemas\u00a0<strong>no est\u00e1n probados<\/strong>\u00a0lo suficiente y pueden ser\u00a0<strong>inseguros<\/strong>.<\/p>\n<p>Al buscar la\u00a0<strong>escalabilidad<\/strong>, en mi opini\u00f3n, y seguramente en la opini\u00f3n de muchos, es mucho mejor usar\u00a0<strong>tecnolog\u00edas de segunda capa<\/strong>\u00a0como\u00a0<a href=\"https:\/\/www.bitnovo.com\/blog\/que-es-la-lightning-network\/\">Lightning Network<\/a>\u00a0y ZK-Rollups que ya funcionan\u00a0<strong>sobre blockchains seguras y descentralizadas<\/strong>.<\/p>\n<div class=\"is-divider divider clearfix\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tiempo de lectura:<\/span> <span class=\"rt-time\"> 4<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span>Como muchos sab\u00e9is, la revoluci\u00f3n de la\u00a0blockchain\u00a0consiste en crear un registro contable distribuido, tambi\u00e9n llamado\u00a0ledger\u00a0(libro mayor)\u00a0distribuido. En este registro es donde viven y cambian de propiedad las\u00a0criptomonedas. Su mantenimiento no depende de puntos centrales de fallo, es decir, es\u00a0descentralizado. Por esto las blockchains (si est\u00e1n bien construidas, con una moneda nativa) nos ofrecen acceso a\u00a0plataformas [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":5444,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[146],"tags":[],"class_list":["post-5442","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blockchain"],"_links":{"self":[{"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/posts\/5442","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/comments?post=5442"}],"version-history":[{"count":0,"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/posts\/5442\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/media\/5444"}],"wp:attachment":[{"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/media?parent=5442"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/categories?post=5442"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/tags?post=5442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}