O que é um Directed Acyclic Graph (DAG) em Criptomoedas?
P√°gina Inicial
Artigos
O que é um Directed Acyclic Graph (DAG) em Criptomoedas?

O que é um Directed Acyclic Graph (DAG) em Criptomoedas?

Intermedi√°rio
Publicado em Jul 19, 2020Atualizado em Dec 27, 2022
8m

Introdução

Quando você pensa em criptomoedas, você provavelmente pensa nos termos "blockchain" ou "tecnologia de ledger/registro distribuído". Desde o lançamento do Bitcoin, centenas de outras criptomoedas foram criadas. A maioria delas conta com uma arquitetura de rede parecida. Suas estruturas de dados permitem que os usuários transfiram valores ou interajam com aplicativos descentralizados.
Em uma blockchain, um novo bloco √© periodicamente adicionado a uma cadeia crescente de blocos. Cada bloco √© conectado ao anterior com uma esp√©cie de link criptogr√°fico (um hash). Cada um desses blocos, cont√©m transa√ß√Ķes recentes que foram transmitidas pelos usu√°rios.
No entanto, geralmente existe um tempo de espera entre a transmiss√£o de uma transa√ß√£o e a sua inclus√£o em um bloco. √Č como esperar um trem na esta√ß√£o. Dependendo do tamanho das carruagens (tamanho do bloco) e do n√ļmero de pessoas aguardando (transa√ß√Ķes pendentes), talvez voc√™ n√£o consiga pegar o pr√≥ximo trem. Dependendo das circunst√Ęncias, voc√™ pode ter de esperar por segundos ou horas para que a transa√ß√£o seja confirmada.
Para muitos, esse é um trade-off (uma troca) aceitável. Afinal, fornece um alto nível de segurança sem depender de um coordenador centralizado. Para outros, a tecnologia blockchain tem data de validade. Os detratores acreditam que, a longo prazo, os problemas de escalabilidade enfrentados pela tecnologia blockchain impedirão a sua adoção em massa.

Alguns acreditam que o futuro das redes de pagamentos de criptomoedas está em uma arquitetura totalmente diferente: os chamados Directed Acyclic Graphs (DAGs) - grafos acíclicos dirigidos.


O que é um DAG?

Um DAG √© um tipo diferente de estrutura de dados ‚Äst√© como um banco de dados que conecta diferentes partes de informa√ß√Ķes. O termo "Directed acyclic graph" (grafo ac√≠clico dirigido) pode parecer muito complicado, ent√£o vamos explicar com calma.


Directed Acyclic Graph.


A figura acima representa, conceitualmente, os DAGs. Eles s√£o compostos de v√©rtices (as esferas) e arestas (as linhas que os conectam). Eles s√£o ¬†direcionados pois seguem uma dire√ß√£o (as setas verdes). Eles s√£o ac√≠clicos (ou seja, n√£o c√≠clicos) pois os v√©rtices n√£o retornam a si mesmos ‚Äď partindo de um ponto no gr√°fico e seguindo o fluxo, n√£o √© poss√≠vel retornar ao mesmo ponto. Em breve, isso ficar√° mais claro.

Essas estruturas de dados s√£o geralmente usadas para modelagem dados. DAGs s√£o usados em estudos cient√≠ficos e m√©dicos para analisar a rela√ß√£o entre vari√°veis e os impactos causados por essas rela√ß√Ķes. Por exemplo, uma an√°lise que considera nutri√ß√£o, ciclos de sono e sintomas f√≠sicos podem ajudar a determinar como essas vari√°veis e suas rela√ß√Ķes afetam um paciente.

No nosso caso, estamos mais interessados em como elas podem ajudar na obtenção de consenso em uma rede distribuída de criptomoedas.


Como funciona um DAG?

Para uma criptomoeda com base DAG, cada v√©rtice da estrutura representa uma transa√ß√£o. N√£o existe a no√ß√£o de blocos. A minera√ß√£o tamb√©m n√£o √© necess√°ria para estender o banco de dados. Portanto, em vez de reunir transa√ß√Ķes em blocos, cada transa√ß√£o √© constru√≠da em cima de outra. Ainda assim, existem opera√ß√Ķes Proof-of-Work que s√£o realizadas quando um node (n√≥) envia uma transa√ß√£o. Isso garante que a rede n√£o sofra com spam e tamb√©m valida transa√ß√Ķes anteriores.

Para que uma nova transa√ß√£o seja adicionada, ela deve se basear nas anteriores. Suponha que Alice crie uma nova transa√ß√£o. Para ser reconhecida, essa transa√ß√£o deve fazer refer√™ncia √†s anteriores. √Č semelhante a um bloco de Bitcoin que faz refer√™ncia ao bloco anterior, mas nesse caso, existem v√°rias transa√ß√Ķes referenciadas.¬†

Em alguns sistemas, um algoritmo seleciona quais transa√ß√Ķes ("tips") ser√£o usadas para criar uma nova transa√ß√£o. As "tips" (extremidades) com maior probabilidade de serem selecionadas s√£o aquelas que t√™m mais "peso acumulado" ‚Äď medida do n√ļmero de confirma√ß√Ķes no caminho at√© aquela extremidade.

Alice ir√° utilizar transa√ß√Ķes n√£o confirmadas como base. Entretanto, uma vez que Alice as referencia, elas se tornam confirmadas. Agora, a transa√ß√£o criada por Alice aparece como n√£o confirmada. Portanto, para que a transa√ß√£o de Alice seja aceita, algu√©m deve criar outra transa√ß√£o usando a de Alice como base.

Para que o sistema continue crescendo, os usu√°rios procuram confirmar transa√ß√Ķes que tenham "mais peso". Caso contr√°rio, todos continuariam usando transa√ß√Ķes mais antigas como refer√™ncia.

Em blockchains, a prote√ß√£o contra double-spending (gastos duplicados) √© bem simples. Os mesmos fundos n√£o podem ser gastos duas vezes em um bloco ‚Äď os nodes (n√≥s) detectam facilmente qualquer tentativa e rejeitar√£o qualquer bloco que contenha transa√ß√Ķes conflitantes. Como a minera√ß√£o de blocos custa muito caro para os mineradores, eles s√£o incentivados a agir de forma honesta.

Os DAGs tamb√©m t√™m um mecanismo para evitar double-spending. √Č algo parecido, mas sem mineradores. Quando um node (n√≥) confirma transa√ß√Ķes mais antigas, ele avalia um caminho completo at√© a primeira transa√ß√£o do DAG para confirmar se o remetente tem saldo suficiente. Pode haver v√°rios caminhos, mas apenas um deles precisa ser verificado.



Caso usuários utilizem um caminho inválido, correm o risco de sua própria transação ser ignorada. Sua transação até poderia ser legítima, mas como a referência anterior não era, ninguém mais iria querer utilizar esse caminho.

A princ√≠pio, parece pouco intuitivo ‚Äď n√£o seria poss√≠vel acabar em uma situa√ß√£o em que existem v√°rios ramos que n√£o sabem da exist√™ncia um do outro? Ou seja, n√£o seria poss√≠vel gastar os mesmos fundos nesses diferentes ramos?



De fato, é uma possibilidade. Porém, essa questão é resolvida com um algoritmo de seleção que favorece Tips (extremidades) com maior peso acumulado. Isso significa que, com o tempo, você acabará tendo um ramo muito mais forte que o resto. Os mais fracos serão abandonados e a rede continuará construindo sobre o ramo mais pesado. 

Assim como nas blockchains, n√£o existe uma finalidade absoluta ‚Äď voc√™ nunca ter√° 100% de certeza de que uma transa√ß√£o n√£o ser√° revertida. √Č altamente improv√°vel, mas √© teoricamente poss√≠vel "desfazer" um bloco de Bitcoin ou Ethereum, revertendo todas as transa√ß√Ķes internas. Quanto mais blocos forem adicionados ap√≥s o processo da sua transa√ß√£o, mais confian√ßa voc√™ ter√° nela. √Č por isso que √© recomend√°vel aguardar por seis confirma√ß√Ķes antes de gastar os fundos de uma transa√ß√£o.
Em um DAG como o Tangle da IOTA, existe uma concepção de confiança na confirmação. O algoritmo de seleção é executado 100 vezes e você conta quantas vezes sua transação foi direta ou indiretamente aprovada nas Tips (extremidades) selecionadas. Quanto maior a porcentagem, mais confiança você tem de que sua transação permanecerá "estabelecida".

Pode parecer que esse sistema proporciona uma experiência ruim ao usuário, mas não é o caso. Se Alice envia a Bob 10 MagicDAGTokens, ela não precisa se preocupar em selecionar as Tips corretas do grafo. De forma oculta, sua carteira pode fazer o seguinte:

  • Selecionar Tips (extremidades) mais pesadas (lembre-se, s√£o as que t√™m mais confirma√ß√Ķes acumuladas).
  • Seguir o caminho de volta atrav√©s das transa√ß√Ķes anteriores para verificar se as Tips possuem saldo suficiente para gastar.
  • Depois de atendidas as condi√ß√Ķes, elas adicionam suas transa√ß√Ķes ao DAG, confirmando as transa√ß√Ķes anteriores utilizadas como refer√™ncia.
Para Alice, isso é parecido com o fluxo de trabalho regular das criptomoedas. Ela insere o endereço de Bob e o valor que deseja gastar, depois clica em enviar. A lista acima é o método de Proof of Work que todo participante executa ao criar uma transação.



Prós e contras dos DAGs

Vantagens dos DAGs

Velocidade

Sem restri√ß√Ķes por tempo de bloco, qualquer pessoa pode transmitir e processar suas transa√ß√Ķes a qualquer momento. N√£o h√° limite para o n√ļmero de transa√ß√Ķes que os usu√°rios enviam, desde que confirmem as transa√ß√Ķes mais antigas.


Sem mineração

DAGs não usam algoritmos de consenso PoW da maneira que estamos acostumados. Portanto, sua Carbon Footprint (medida que calcula a emissão de carbono) é bem menor do que a das criptomoedas que dependem da mineração para funcionamento da rede blockchain.


Sem taxas de transação

Como n√£o existem mineradores, os usu√°rios n√£o precisam pagar taxas para transmitir suas transa√ß√Ķes. Dito isto, alguns exigem que uma pequena taxa seja paga para tipos especiais de nodes (n√≥s). Taxas baixas (ou melhor, taxas zero) s√£o mais atraentes para pequenos pagamentos nesses sistemas, que perdem totalmente o prop√≥sito quando existem taxas da rede.


Sem problemas de escalabilidade

Como n√£o possuem restri√ß√Ķes por tempo de bloco, os DAGs podem processar muito mais transa√ß√Ķes por segundo do que as redes blockchain tradicionais. Muitos acreditam que isso os tornar√° valiosos nos casos de uso da Internet das Coisas (IoT), em que todos os tipos de m√°quinas interagem entre si.


Desvantagens dos DAGs

N√£o s√£o totalmente descentralizados

Protocolos que dependem de DAGs têm vários elementos de centralização. Para alguns, é supostamente uma solução de curto prazo para inicializar a rede. Resta saber se os DAGs podem realmente prosperar sem a intervenção de terceiros. Caso contrário, eles se abrem para vetores de ataques que podem eventualmente prejudicar suas redes.


Não foram testados em larga escala 

Embora as criptomoedas baseadas em DAGs existam há alguns anos, elas ainda têm um longo caminho a percorrer antes de serem amplamente utilizadas. Sendo assim, é difícil prever quais incentivos os usuários podem ter para explorar esse sistema no futuro.


Considera√ß√Ķes finais

Directed Acyclic Graphs s√£o certamente uma tecnologia interessante para a constru√ß√£o de redes de criptomoedas. At√© o momento, o n√ļmero de projetos que usam essa estrutura de dados √© relativamente baixo e ainda n√£o est√£o completamente desenvolvidos.¬†
Dito isto, se eles puderem alcan√ßar seu potencial, poder√£o alimentar ecossistemas de escalabilidade em massa. A tecnologia DAG possui in√ļmeros casos de uso em √°reas que exigem altas taxas de transfer√™ncia e isen√ß√£o de taxas, como para a Internet das Coisas (IoT) ou para pagamentos de menores valores.
Compartilhar publica√ß√Ķes
Registre uma conta
Coloque seus conhecimentos em pr√°tica. Abra uma conta na Binance hoje mesmo.