DApps, ou aplicativos descentralizados, são um tipo de aplicativo cujo funcionamento é baseado em uma rede descentralizada de nós que interagem entre si.
DApp é a sigla para “Aplicativos Descentralizados” ou “Aplicativos Descentralizados”. Este é um tipo de aplicativo cujo funcionamento não depende de pontos de controle ou servidores centrais, funciona com base em uma rede descentralizada. Uma rede na qual seus usuários têm controle total de sua operação. Os DApps permitem que as pessoas acessem diferentes serviços com segurança. Esses aplicativos podem ser usados em computadores pessoais, smartphones ou até mesmo acessíveis pela web.
Para termos uma ideia mais clara do que é um Dapp, devemos pensar em um App (aplicativo/serviço) tradicional. Nesta categoria de apps tradicionais temos, por exemplo, YouTube, Facebook, Twitter ou Instagram. Em todos esses serviços, os dados e as decisões são feitos em servidores centrais. Isso permite que a empresa por trás desses serviços tome medidas de censura, mude comportamentos ou mesmo beneficie ou prejudique apenas determinados usuários, questionando constantemente a neutralidade e a igualdade de condições. Eles agem como ditadores, você só pode confiar que eles serão "bons".
Origem
O conceito DApps não é novidade. Os primeiros DApps conhecidos foram vistos nos protocolos de compartilhamento de arquivos como BitTorrent o DC ++. Ambos os aplicativos são sistemas de compartilhamento de arquivos ponto a ponto com alta resistência à censura. No entanto, o primeiro DApp usando blockchain foi o próprio Bitcoin. Isso ocorre porque sua estrutura e operação descrevem com sucesso o primeiro blockchain DApp na história.
No entanto, não foi até 2014 com a apresentação de Ethereum, sua linguagem Solidity e a capacidade de executar smart contracts DApps foram massificados. E é que, graças a essa tríade, os DApps em blockchain começaram a se tornar muito populares. Uma situação que pode levar à adoção maciça da tecnologia blockchain, permitindo novas formas de interação entre usuários, o mundo real e o virtual.
Diferenças entre um DApp e um aplicativo tradicional
DApps e aplicativos tradicionais têm muitos elementos em comum; no entanto, sua diferença está na maneira como eles interagem com esses elementos. Ambos os tipos de aplicativos têm três estruturas básicas, que são: camada de front-end, back-end e armazenamento de dados.
Frontend
A primeira camada, o front-end, se torna a interface que os usuários usam para interagir com o aplicativo. Nesse caso, o DApp e o App tradicional podem usar os imensos recursos gráficos disponíveis para isso. Desde interfaces da Web escritas em HTML5 até as mais elaboradas, em estruturas como Qt ou GTK. O objetivo dessa camada é simplesmente dar ao usuário a capacidade de interagir, receber e enviar informações ao aplicativo que está usando.
Backend
Esta segunda camada menciona a lógica principal do aplicativo. Em um aplicativo tradicional, essa lógica é centralizada, diferentemente dos DApps nos quais é descentralizada. No DApps, o back-end está relacionado a um contrato inteligente executado em uma blockchain, por exemplo, Ethereum. Dessa forma, um contrato inteligente possui uma programação que garante a operação do DApp. Como os contratos inteligentes são visíveis e públicos, isso garante um alto nível de transparência e segurança. Os usuários podem ter certeza de que o DApp não fará nada além do que o contrato inteligente especifica.
Além disso, o back-end é suportado pelas APIs (Application Programming Interface) e pelos recursos de blockchain. Por exemplo, no Ethereum, existem várias APIs para controlar a interação do usuário com as camadas de armazenamento ou autenticação, para dar alguns exemplos.
Armazenamento de dados
Finalmente, há a camada de armazenamento. Em um aplicativo tradicional, essa camada também é centralizada. Normalmente, os dados são armazenados no computador do usuário ou em servidores controlados por terceiros. Essa maneira de trabalhar tem muitos pontos de falha. Um usuário, por exemplo, pode perder as informações do aplicativo se o computador estiver danificado. Também pode acontecer que os servidores estejam fora de serviço ou bloqueados. Ações que impediriam o usuário de usar o aplicativo corretamente ou mesmo de perder informações.
Mas no DApp, o armazenamento de dados também é completamente descentralizado. Cada usuário do DApp armazena um histórico completo das ações executadas na rede DApp. Além disso, as interações são armazenadas na blockchain dentro do blocos da mesma. Tudo isso de maneira criptograficamente segura, impedindo o acesso não autorizado de terceiros. Dessa forma, se o computador ou o smartphone de um usuário estiver danificado, seria suficiente usar o DApp em um novo dispositivo para recuperar todas as informações até o momento preciso. Vamos também acrescentar que o nível de redundância e segurança com os dados aumenta à medida que mais usuários fazem uso do DApp.
Como funciona um DApp?
Um DApp funciona de maneira semelhante a uma rede blockchain. Neste caso, cada usuário DApp é um nó dentro da rede. Cada usuário zela pela operação e operações corretas realizadas na referida rede.
O canal de comunicação que o DApp usa é o blockchain. Nele, é mantido um registro de cada operação que passa pelo contrato inteligente que controla o DApp. A aceitação ou não das operações realizadas pelos usuários do DApp está sujeita à programação do referido contrato inteligente. Dessa forma, busca garantir que todos os participantes ajam dentro da estrutura especificada por ele.
O contrato inteligente, neste caso, é um ponto intermediário encarregado de corroborar a validade de cada interação. Sempre que há uma nova operação no DApp, as informações da plataforma são atualizadas em cada nó. Isso garante que as informações sejam armazenadas em cada um deles. Dessa forma, cada usuário contribui para manter o aplicativo em execução com os recursos de seu computador. Essa estrutura também garante que a plataforma estará sempre em serviço. Isso ocorre devido à impossibilidade de cancelar o registro de todos os nós da rede ao mesmo tempo. Uma situação que pode ocorrer devido a um ataque de computador ou outros motivos como censura.
Nesse momento, os DApps avançam, porque, trabalhando e executando uma blockchain, eles desfrutam de seus recursos de segurança, privacidade e até anonimato. Além disso, eles também garantem que os dados utilizados pelo DApp sejam acessíveis apenas pela pessoa que originou essas informações. Assim, os usuários mantêm controle absoluto de seus dados o tempo todo.
Recursos DApps
Segurança
Este é um dos principais recursos do DApps. Isso graças ao fato de funcionar em uma blockchain que usa criptografia forte para proteger os dados que manipula. Este primeiro ponto garante que as informações possam ser vistas apenas pelo remetente e o restante possa apenas verificar sua validade ou não. Em nenhum momento, as informações originadas por um usuário são visíveis para outros.
Além disso, os dados manipulados pelo aplicativo estão sempre em posse do usuário. Os DApps não armazenam informações na nuvem ou em servidores externos. Isso minimiza os riscos associados ao roubo de informações privadas ou à venda das mesmas pela empresa, violando a privacidade do usuário.
Descentralização
Outra das principais características dos DApps é sua descentralização. Ou o que é o mesmo, a capacidade de funcionar sem servidores centrais. Para colocar isso em uma melhor perspectiva, considere o seguinte exemplo:
O Facebook é uma das redes sociais mais usadas no mundo. Com mais de 2000 bilhões de usuários, seus data centers lidam com uma enorme carga de dados. Nesse ponto, manter a infraestrutura funcionando é uma tarefa titânica. Um que não ocorreu sem erros, o que levou a rede a não estar disponível em escala global. Tudo isso porque o Facebook é uma rede social centralizada.
No entanto, um DApp não possui esse ponto de falha graças à descentralização. Cada usuário do DApp tem um histórico completo das ações executadas no DApp. Algo como uma cópia global de tudo o que aconteceu. Devido a isso, uma vez que é executado em uma blockchain, basta que apenas um usuário esteja ativo para a rede continuar trabalhando sem problemas. Dessa forma, é garantido que o DApp e sua rede sempre funcionem e o caso do Facebook não seja aprovado.
open source
Esse é outro recurso muito comum do DApps. O fato de o código fonte estar disponível garante um alto nível de transparência do aplicativo. Isso ocorre porque a comunidade pode saber o tempo todo o que o DApp faz. Ele também permite auditorias da comunidade, para que qualquer pessoa com conhecimento possa revisar o código fonte do aplicativo. Isso permite melhorá-lo e, em qualquer caso, continuar seu desenvolvimento, caso o projeto seja abandonado por seus criadores originais.
Todos os DApps mantêm publicamente o código fonte de seus contratos inteligentes e o restante do aplicativo. Dessa forma, qualquer pessoa pode inspecionar, aprimorar ou codificar o código.
Herança de Blockchain
Os DApps interagem no blockchain no qual seu contrato inteligente é executado. Isso significa que cada interação no DApp gera uma entrada de dados no blockchain. Esses dados são armazenados criptograficamente para adicionar transparência e segurança. Todas essas ações podem ser revisadas publicamente no explorador de blocos blockchain.
Mas apenas interações criptográficas podem ser vistas, todos os dados são armazenados criptograficamente seguros. Além disso, o fato de um DApp funcionar em uma blockchain significa que um protocolo de consenso é usado para verificar cada interação. Pode ser o de Prova de Trabalho (PoW) ou o de Prova de participação (PoS) ou aquele escolhido pelo desenvolvedor do DApp. Isso visa garantir o mesmo nível de segurança aplicável ao blockchain no DApp.
Classificação DApps
Os DApps podem ser classificados em três categorias, que são:
Tipo I.
Todos os DApps que possuem seu próprio blockchain se enquadram nessa classificação. Ou seja, aqueles que têm sua própria infraestrutura e não dependem de nenhum blockchain para executar. Neste ponto, o Bitcoin é o primeiro blockchain DApp que já existiu. O mesmo se aplica a Bitcoin Cash , Litecoin , Ethereum, Dash , Monero, Entre outros.
Tipo II
Nesta classificação, encontramos os DApps que dependem de uma blockchain e suas características para funcionar. Nesse ponto, esses DApps podem funcionar usando seus próprios tokens ou o blockchain em que são executados. Um exemplo deste caso é Golem.
Golem É um DApp que funciona na blockchain Ethereum. Foi criado para permitir que seus usuários aluguem recursos de computação para processar dados para diferentes usos. Pense no Golem como um supercomputador descentralizado, do qual podemos alugar o poder de processamento. Para conseguir isso, o Golem possui um token ERC-20, o GNT (token de rede Golem). Esse token é usado para pagar aos usuários que alugam seu poder de computação e para outras atividades na rede.
tipo III
DApps deste tipo usam DApps do tipo II para sua operação. Geralmente, os DApps do tipo III usam os tokens do tipo II DApps para realizar suas operações. Um exemplo desses DApps é, Rede segura. Rede Segura depende de Camada Omni, um DApp tipo II, para gerar Safecoin, sua própria criptomoeda. Essa criptomoeda é usada na Rede Segura para realizar todas as operações dentro do referido DApp.
Limitações de DApps
Algumas das limitações mais importantes do DApps são as seguintes:
- Dificuldade de explorar todo o potencial de hardware dos dispositivos do usuário. Isso é especialmente verdadeiro para DApps executados em navegadores da web. Algo que se deve ao número de camadas de abstração e ao alto nível de execução das linguagens de programação utilizadas.
- A complexidade do aplicativo geralmente pode dificultar a depuração e a revisão de segurança. Essa situação é especialmente crítica na programação de contratos inteligentes. Isso ocorre porque uma vulnerabilidade neles pode afetar todos os usuários do DApp ao mesmo tempo.
- O crescimento e a melhoria do DApps estão ligados ao enriquecimento de melhorias nas estruturas de blockchain. Um DApp pode ter um desenvolvimento muito dinâmico, mas isso será mais lento se o desenvolvimento da blockchain e de suas ferramentas for ruim ou inexistente. Neste ponto, a correlação de desenvolvimento entre DApps e blockchain é simbiótica. Ambos devem seguir seu desenvolvimento para atingir objetivos de longo prazo.
- Dificuldade para implementar as funcionalidades necessárias para o correto funcionamento do DApps. Alguns DApps são muito simples em seus requisitos de programação, outros nem tanto. Tomemos, por exemplo, o DApp Golem e seu sistema de computação descentralizado. A principal dificuldade do projeto é orquestrar o armazenamento de dados processados e a serem processados na rede. Além disso, outro problema que apresenta é a sincronização quando se trata de executar processos de computação para uma determinada tarefa atribuída aos nós. Tudo isso dificulta o desenvolvimento de todas as imensas possibilidades do Golem, mas é um desafio que os desenvolvedores assumiram totalmente.
Exemplo de alguns DApps
CryptoKitties
Este foi um dos primeiros jogos do mundo a ser criado com base na tecnologia blockchain. CryptoKitties, é sobre colecionar “gatinhos virtuais únicos”. Cada um desses gatinhos tem características e propriedades que os diferenciam dos demais. É justamente sua extrema raridade, que lhes confere valor e se tornaria a criptomoeda do jogo. Os gatinhos podem ser comprados e vendidos, obtendo assim sua propriedade de forma virtual.
Além disso, podemos "criar" gatinhos em CryptoKitties. Ou seja, podemos unir dois gatinhos para obter uma descendência genética única. que podemos manter, reproduzir mais tarde ou vender para fazer negócios. CryptoKitties é executado no blockchain Ethereum, é um tipo II DApp.
NASH
Este é um DApp do tipo II executado na blockchain NEO. O objetivo de NASH, é executar um mecanismo de correspondência fora da cadeia para permitir trocas muito mais rápidas e complexas do que as trocas descentralizadas existentes.
Saturn Network
Saturn Network é uma troca descentralizada para negociação de token ERC-20 ou ERC-223. Ele funciona com base em uma cadeia cruzada disponível no Ethereum e no Ethereum Classic. A Saturn Network oferece um sistema de troca rápido e sem esforço, pois não há necessidade de preencher um KYC ou configurar uma conta.
Crazy Dogs Live
Crazy Dogs Live é um sistema de jogo focado na criação de uma plataforma transparente, segura e divertida para seus usuários. Ele é voltado para corridas de cães com recursos inovadores de mineração de apostas e transmissão ao vivo. Ele também permite que os jogadores interajam e se divirtam tremendamente com os jogos enquanto lucram. A plataforma também lançará outros recursos em um futuro próximo, para que todo o ecossistema do jogo cresça exponencialmente.
Crazy Dogs Live é um tipo DApp que roda na blockchain de TRON.