Os DAG ou Directed Acyclic Graphs são uma construção matemática e computacional que permitiria a criação de sistemas e redes distribuídas com muitas semelhanças funcionais com aqueles oferecidos com a tecnologia blockchain.

A criação de tecnologia blockchain por Satoshi Nakamoto foi uma revolução tecnológica sem igual e, desde então, muitos desenvolvimentos tentaram se posicionar como o próximo grande passo, sendo uma dessas tentativas os DAG.

As iniciais DAG significa Directed Acyclic Graph ou Grafo Acíclico Dirigido, é uma construção conhecida no mundo da matemática e da computação há muitos anos. Na verdade, são muito mais antigos que a tecnologia blockchain. Mas recentemente chamaram a atenção devido à possibilidade técnica de construir sistemas distribuídos idênticos aos criados hoje usando a tecnologia blockchain.

Interessante, não acha? Esta tecnologia "desconhecida" e empolgante é entendida por alguns como uma ferramenta capaz de nos oferecer a funcionalidade da blockchain, prometendo também melhorias importantes. Mas o que é verdade em tudo isto? O que realmente são DAGs? Quais são as suas origens? Os DAGs são realmente a evolução da tecnologia Blockchain? Por que Satoshi Nakamoto em toda a sua grandiosidade não os usou em primeiro lugar? Responderemos a estas e outras perguntas a seguir.

O que é DAG e qual é a sua origem?

Em primeiro lugar, deve saber que os DAG não são um conceito novo. Na verdade, os DAG são conhecidos desde o desenvolvimento das Teorias de grafos em matemática e que mais tarde foram usados ​​na computação devido à sua enorme utilidade neste campo. Como mencionamos, quando falamos sobre DAG, estamos a falar sobre um gráfico com duas propriedades muito interessantes: são dirigidos e acíclicos. Mas o que isso significa?

Em primeiro lugar, um grafo é direcionado, quando todos os nós (ou vértices) que fazem parte do grafo são conectados por arestas que indicam uma direção bem definida.

Segundo, falamos de um grafo acíclico, quando estamos diante de um grafo onde não há ciclos de deslocamento para o mesmo. Por outras palavras, é impossível ir de um vértice do grafo, passar pelos demais vértices e terminar no vértice onde a jornada começou.

Graças a esses conceitos básicos, podemos dizer que:

Um grafo acíclico dirigido, ou DAG na sua sigla em inglês, é um grafo dirigido finito sem ciclos dirigidos. Isto significa que os seus vértices estão conectados por arestas com uma direção específica e a rota de todo o grafo leva-nos do ponto A ao B, sem haver a possibilidade de retornar ao ponto A de forma alguma.

O estudo deste tipo de estruturas começou em 1878, quando James Joseph Sylvester, um reconhecido matemático inglês, iniciou os seus estudos de grafos. Desde então, tem se dedicado a estudar a Teoria dos Grafos e classificar estes tipos de estruturas especialmente úteis em matemática, física, informática, linguística e outras áreas da ciência.

Matemática e grafos. O que tem isto a ver com criptomoedas?

Agora que conhece a origem e o conceito de um DAG, certamente deve-se perguntar: o que tudo isto tem a ver com criptomoedas e blockchain? Como podemos usar um DAG para fazer o mesmo que a blockchain?

Bem, ambas as perguntas são muito válidas e as respostas são igualmente válidas e darão uma nova perspetiva sobre como a blockchain pode ou poderia evoluir. Para fazer isso, vamos imaginar o seguinte:

Uma blockchain ou cadeia de blocos é o que o seu nome diz: informações que agrupadas em conjuntos estão relacionadas de forma ordenada e criptográfica com o conjunto anterior. E essa relação não pode ser quebrada em nenhum ponto anterior da cadeia sem substituir imediatamente os blocos seguintes.

Algo parecido com o que se mostra no gráfico a seguir, onde vemos uma cadeia sem modificação na sua história e outra com modificação na mesma.

Exemplo de um blockchain versus um DAG

Pois bem, essa estrutura de unir blocos de uma forma específica para criar uma história imutável com eles, e se for modificada, será gerado um fork (como mostra o gráfico acima), também podemos fazer isso com um DAG.

Para isso, veja o seguinte exemplo:

Exemplo de um DAG

Se olhar com atenção, verá que existe uma relação entre os vértices (que na blockchain são blocos) e essa relação é dada pelas arestas (o de hash e a Merkle Root de blocos em blockchain). Se modificarmos uma aresta no DAG, seja ela qual for, o seu relacionamento será reescrito, gerando um novo DAG e, portanto, um histórico diferente (uma bifurcação na blockchain).

Exemplo de um DAG com relacionamento modificado

Este outro DAG modificado é uma bifurcação ou reescritura do DAG do exercício original e nos mostra que é possível recriar a mesma relação dada na blockchain, usando este tipo de gráfico.

Propriedades dos DAG

Agora, os DAG têm certas propriedades que são vitais para que funcionem como:

  1. Têm um ponto de partida (origem) e um ponto de chegada ou final. Ao sermos direcionados, isso garante que a nossa rota vai sempre de um ponto de origem a um ponto final, e não podemos retornar por essa rota. Se a construção dessa estrutura for aplicada consecutivamente, estaremos a criar um histórico incremental dentro do DAG, como acontece em blockchain.
  2. Modificar uma relação entre vértices reescreve todo o DAG, porque a sua estrutura e peso foram alterados.  Isto é equivalente a se modificarmos um bloco na blockchain, o resultado será uma blockchain diferente daquele ponto em diante.
  3. São paralelizáveis. Um DAG pode ter geração paralela e caminhos de valores diferentes entre vértices diferentes. Isto otimiza a sua geração e a capacidade de verificar a relação entre os vértices e as informações que eles podem conter.
  4. São redutíveis. Uma propriedade exclusiva dos DAGs é que sua estrutura pode ser reduzida a um ponto ideal onde seu caminho atende a todos os relacionamentos especificados nele sem qualquer perda. Basicamente, significa que é possível reduzir as relações dos vértices (ou blocos) a um ponto mínimo onde tal redução não afete a capacidade de verificar a informação de qualquer vértice a qualquer momento. Isso é especialmente útil, por exemplo, em light wallets o SPV.

DAG vs Blockchain, o que é melhor?

Agora, que sabemos o que são DAGs, as suas propriedades e que podem fazer o mesmo trabalho que uma blockchain, podemos fazer a pergunta, o que é melhor?

Bem, a resposta para isso é complexa e respondê-la depende de levar várias coisas em perspectiva. Em primeiro lugar embora a estrutura da blockchain possa ser considerada, ainda hoje com mais de 10 anos após a sua criação, uma tecnologia experimental, os DAG são uma tecnologia que no momento é altamente experimental no contexto de criptomoedas.

Por outro lado, a criação de um sistema de mineração e consenso é muito mais complexa num DAG. A forma como os blocos podem ser gerados, criar relacionamentos entre eles, reduzir tais relacionamentos sem perdas, entre outras funções adiciona um nível mais alto de complexidade algorítmica.

Esta maior complexidade também leva a erros de programação ou falhas na estruturação da operação do sistema. E se há algo pior do que um erro grave de software, é uma falha na estrutura de um sistema que envolve alterar completamente o seu funcionamento para repará-lo, e se isso for possível.

É possível que Satoshi Nakamoto tenha visto e resolvido este problema e, em vez disso, tenha decidido projetar uma solução muito mais simples e igualmente eficaz, criando assim a blockchain. Sem dúvida, isto é algo que nunca saberemos, pois não há registo público disso.

Prós e contras

Prós

  1. Num DAG, um nó pode emitir e validar uma transação por si mesmo. Para conseguir isso, a transação e a sua validação devem ser vinculadas e adicionar verificação a pelo menos duas transações anteriores dentro do DAG.
  2. São altamente escaláveis ​​devido à forma descentralizada e paralela da sua operação. É possível porque as transações num DAG são independentes. Igualmente independentes são os processos de validação para a mesma.
  3. As transações em DAG criam um esquema conhecido como "Transações duplamente confirmadas". Significa que, em qualquer esquema, uma transação com apenas duas confirmações pode ser considerada irreversível, facto que pode demorar alguns segundos graças ao trabalho paralelo da rede.
  4. Não há mineiros em DAG, então não há pagamento de taxas ou comissões de grande valor. Graças à facilidade de validação criptográfica e ao seu alto desempenho, os lucros dos nós com transações confirmadas são recuperados pelo volume total de transações atendidas entre outros serviços que o nó pode fornecer.

Contras

  1. O DAG é complexo de desenvolver, especialmente devido ao seu algoritmo de consenso complexo e as proteções necessárias para evitar que a sua fraqueza de paralelismo seja explorada.
  2. DAGs requerem sistemas de coordenação. Esses sistemas de coordenação tornam-se um ponto de falha que pode afetar negativamente o funcionamento da rede.
  3. Muitos projetos DAG não usam ferramentas criptográficas seguras e isso abre a porta para ataques. Isso foi apresentado na famosa criptomoeda IOTA , onde as proteções criptográficas da rede foram contornadas por um gerador de sementes online. Os invasores usaram esse gerador para obter acesso aos fundos dos usuários do IOTA e roubar o seu dinheiro. No total, mais de US $ 10 milhões foram perdidos neste ataque.
  4. O uso de técnicas criptográficas fracas torna a geração de endereços praticamente inexistente, sendo este um sério problema de privacidade.

Quanto sabes, criptonauta?

Os DAGs são muito mais rápidos do que as blockchains?

VERDADEIRO!

Graças à capacidade de paralelização dos DAGs, são muito mais rápidos do que as blockchains. Em DAG, os validadores podem executar em paralelo e gravar as suas informações dentro do DAG, mas em blockchain, apenas um validador pode atuar por vez, mesmo em esquemas de Prova de Participação, portanto, a sua escalabilidade é muito menor. No entanto, isto torna os DAGs muito mais complexos e difíceis de proteger contra atos maliciosos.

Casos de uso dos DAG

Atualmente existem vários projetos que fazem uso da tecnologia DAG para apresentar opções reais e funcionais na forma de criptomoedas. Alguns desses projetos são:

Ethereum

O algoritmo de mineração de Ethereum conhecido como Ethash (ou Ethash Dagger-Hashimoto), faz uso de DAG para criar uma estrutura de dados complexa que atualmente pode atingir 4 a 5 GB de dados. Esta estrutura é criada pelo algoritmo Dagger, projetado por Vitalik Buterin, e o seu objetivo é fornecer uma base de mineração para o algoritmo Hashimoto.

IOTA

IOTA é um projeto de criptomoeda voltado para o mundo da IoT (Internet das Coisas), que promete, graças ao seu DAG, transações rápidas, muito económicas e escalabilidade incomparável. O projeto foi lançado em 2016, com a intenção de oferecer aos bilhões de dispositivos conectados à Internet das Coisas uma infraestrutura sólida e escalável para transmitir valor.

Desde então, tem se destacado pela sua proposta interessante. No entanto, tem sido afetado negativamente por graves problemas de segurança que afetaram os seus usuários e levaram à perda de cerca de 50 milhões de dólares, uma soma significativa que representa cerca de 10% de sua capitalização de mercado atual.

Obyte

Obyte é um projeto também focado na geração de uma criptomoeda e outros serviços integrados em DAG. O projeto data de 2016 e foi apresentado no Bitcointalk. É um projecto de pequena dimensão, com uma capitalização bolsista de cerca de XNUMX milhões de euros. No entanto, apesar disso, o valor do seu token é de 17 USD e o seu stock é limitado a 1 milhão de moedas. Isto torna o Obyte um token com um valor de mercado estranhamente alto. É usado, sobretudo, na Rússia (país de onde é originário seu criador, Anton Churyumov).