DApps Descentralized applications

Dapps, ou Decentralized Application, é oriundo da plataforma Ethereum e têm por objetivo principal Descentralização.

Esse artigo têm o objetivo de explanar esse mundo dentro da Ethereum e mostrar que não temos apenas a blockchain revolucionando o mundo.

Introdução

Tudo começou há uma década quando os aplicativos estavam se tornando populares, o setor era um cenário completamente diferente. Os grandes aplicativos globais ainda não haviam sido desenvolvidos. O mercado de aplicativos consistia originalmente em um monte de jogos e aplicativos básicos direcionados a pequenas bases de usuários mas à medida que mais pessoas começaram a usar smartphones, o mercado de aplicativos continuou a crescer até se tornar a indústria que conhecemos hoje.

Em 2007, Steve “Trabalho” lança seu Iphone com os primeiros aplicativos ainda com algumas limitações. Mas, no ano seguinte, em 2008 Jobs lança a “App Store” como atualização do IOS2. Três meses depois, é criado o Android Market (agora Google Play Store). Está criado uma corrida !

E com o passar dos anos as pessoas começaram a usar os apps para quase tudo do cotidiano: entretenimento, transações bancárias, acompanhar as notícias.

A revolução do Satoshi e a criação da Blockchain contribuiu para a criação de um novo tipo de aplicativo conhecido como aplicativos descentralizados, ou DApps.

DApps – Decentralized Applications

Um aplicativo descentralizado
Ecossitema de um DApps: Imagem: Coindesk

DApps são aplicativos de código aberto que usam a linguagem Solidity em uma blockchain. Eles armazenam e recuperam dados fazendo interface com a tecnologia blockchain e, ao contrário dos aplicativos tradicionais que você baixa em seu dispositivo Android ou iOS, os DApps não são hospedados em uma plataforma centralizada como a Google Play Store ou a App Store. Em vez disso, o frontend do Dapp é normalmente hospedado em uma plataforma de armazenamento descentralizada enquanto seu código de backend é executado em uma rede p2p descentralizada.

Os aplicativos devem atender aos seguintes critérios para serem considerados um DApp:

  1. O aplicativo deve ser completamente open-source , ele deve operar de forma autônoma e sem nenhuma entidade controlando a maioria dos seus tokens. O aplicativo pode adaptar seu protocolo em resposta a melhorias propostas e feedback do mercado, mas todas as mudanças devem ser decididas por consenso de seus usuários.
  2. Os dados do aplicativo e os registros de operação devem ser armazenados criptograficamente em uma blockchain pública e descentralizada.
  3. Deve usar um token que seja necessário para acessar o aplicativo e qualquer contribuição importante deve ser recompensada com os tokens do aplicativo.
  4. O aplicativo deve gerar tokens de acordo com um algoritmo criptográfico padrão que atua como uma prova de que os nós estão contribuindo para o aplicativo.

Uma vantagem importante é que eles são protegidos contra ataques e avarias. Tornando os DApps mais seguros do que os aplicativos centralizados e é uma maneira de garantir que os dados armazenados sejam imutáveis, a menos que as alterações sejam aprovadas pela maioria.

Bitcoin como um Dapp

Satoshi NakaMotors descreveu sua invenção como “Um sistema de dinheiro eletrônico peer-to-peer”. Se você para e pensar um pouco além de ser um sistema de dinheiro eletrônico peer-to-peer o Bitcoin também é um aplicativo com o qual os usuários podem interagir através de software de computador. Com base nos critérios de um DApps o Bitcoin é um aplicativo descentralizado:

  1. Todos os aplicativos do Bitcoin são de código aberto, nenhuma entidade (governo, empresa ou organização) controla o Bitcoin e todos os registros relacionados ao seu uso são abertos e públicos.
  2. O Bitcoin gera seus tokens com um algoritmo predeterminado que não pode ser alterado, e esses tokens são necessários para que o Bitcoin funcione. Os mineradores de Bitcoin são recompensados ​​com bitcoins por suas contribuições na proteção da rede Bitcoin.
  3. Todas as alterações no Bitcoin devem ser aprovadas por um consenso majoritário de seus usuários através do mecanismo de prova de trabalho.

Classificação de Dapps

Podemos classificar os DApss em três tipos, com base no fato de que eles possuem uma blockchain própria ou usam a blockchain de outro Dapp. Com base neste critério, existem três tipos de Dapps:

Tipo I – possuem sua própria Blockchain. O Bitcoin é o exemplo mais famoso de um DApp do tipo I, mas outras criptos também entram nesse exemplo, como o Litecoin e outras altcoins.

Tipo II – utilizam a Blockchain de uma DApp de tipo I. Os Dapps do tipo II são protocolos e possuem tokens que são necessários para sua função. O protocolo Omni é um exemplo de uma aplicação descentralizada do tipo II.

Tipo III – usam o protocolo de outro DApp do tipo II. Esses são protocolos e possuem tokens que são necessários para sua função. Por exemplo, a rede SAFE que usa o protocolo Omni para emitir ‘safecoins’ que pode ser usado para adquirir armazenamento de arquivos distribuídos é um exemplo de um aplicativo descentralizado do tipo III.

Mecanismos para estabelecer consenso

Existem dois mecanismos comuns pelos quais os Dapps podem estabelecer um consenso: o mecanismo de Prova de trabalho , POW, e a prova de participação , POS. Você pode ler mais sobre nesse artigo.

Com o mecanismo de prova de trabalho, as decisões sobre as mudanças em um Dapp são tomadas com base na quantidade de trabalho que cada parte interessada contribui para a operação do Dapp. O mecanismo para estabelecer consenso através de POW é comumente chamado de mineração.

Com o mecanismo de prova de participação, as decisões sobre alterações no Dapp são feitas com base na porcentagem de propriedade que os diversos interessados ​​têm sobre o aplicativo. Por exemplo, o voto de um stakeholder que controla 10% dos tokens emitidos por um Dapp, tem um peso de 10%.

Os dois mecanismos podem ser usados ​​em paralelo, um bom exemplo é a Peercoin. Essa combinação permite que um Dapp opere com menos consumo de energia do que a prova de trabalho sozinha, e permite que ele seja mais resistente a Ataques de 51%.

Mecanismos de distribuição de tokens

Existem três mecanismos que um Dapps pode distribuir seus tokens: Mineração, Angariação de Fundos e Desenvolvimento.

Mineração: os tokens são distribuídos àqueles que mais contribuem para o funcionamento de um Dapp. Tomando o Bitcoin como exemplo, os bitcoins são distribuídos através de um algoritmo predeterminado para os mineradores que verificam as transações e mantêm a blockchain do Bitcoin.

Angariação de Fundos: os tokens são distribuídos àqueles que financiam o desenvolvimento inicial do DApp. Você compra e ajuda, mas não deixa de ser uma forma de distribuição.

Desenvolvimento: os tokens são gerados usando um mecanismo predefinido e estão disponíveis apenas para o desenvolvimento do DApps. Por exemplo, se você ajudar no desenvolvimento você teria direito a uma parte.

Como eu começo a desenvolver um Dapp?

Para desenvolver um Dapp, é aconselhável seguir estes passos:

  1. Crie um whitepaper que tenha pelo menos as seguintes seções:
    • Intenções e objetivos do Dapp
    • Planos para distribuição dos tokens
    • Mecanismo para estabelecer consenso
    • Estrutura da organização sem fins lucrativos que supervisiona o Dapp
    • Gerenciamento de recompensas
    • Descrição técnica do Dapp
  2. Adquira o envolvimento da comunidade, liberando o plano e revisando-o com base nos feedbacks.
  3. Defina uma data em que a comunidade possa comprar e contribuir para o melhoramento do DA.
  4. Estabeleça uma organização sem fins lucrativos para supervisionar o desenvolvimento do Dapp.
  5. Comece a executar os planos futuros sem fins lucrativos.

Certo, mas e as partes técnicas, cadê?

Você pode ver outras ferramentas no EthDocs. Para começar a desenvolver algo é necessário um entendimento da API Javascript do Web3, da API JSON RPC e da linguagem de programação Solidity. Aqui algumas ferramentas:

  • Web3 JavaScript API – Esse é o SDK principal do JavaScript a ser usado quando você deseja interagir com um nó Ethereum.
  • JSON RPC API – Esta é JSON RPC 2.0 de baixo nível para fazer interface com um nó. Essa API é usada pela API JavaScript do Web3 .
  • Solidity Docs – Solidity é a linguagem Smart Contract desenvolvida pela Ethereum, que é compilada para os opcodes EVM (Ethereum Virtual Machine).
  • Solium – Um linter para solidez que segue estritamente as regras prescritas pelo guia de estilo oficial da Solidity .
  • Redes de Teste – As redes de teste ajudam os desenvolvedores a testar o código Ethereum e as interações de rede sem gastar seu próprio éter na rede principal.
  • Recursos de desenvolvimento Dapp . Isso ajuda você a desenvolver, depurar e implantar aplicativos Ethereum.
Mix-IDE 

Mix é o IDE oficial do Ethereum, permite aos desenvolvedores criar e implantar contratos e aplicativos descentralizados em cima da blockchain Ethereum. Inclui um depurador de código-fonte do Solidity. Mix (descontinuado)

IDEs / Frameworks 

Abaixo estão os frameworks de desenvolvedores e os IDEs usados ​​para escrever os dapps da Ethereum.

  • Truffle – Truffle é um ambiente de desenvolvimento, framework de testes e pipeline de ativos para a Ethereum.
  • Dapple – Dapple é uma ferramenta para desenvolvedores Solidity ajudar a construir e gerenciar sistemas de contratos complexos em blockchains tipo Ethereum.
  • Populus – Populus é um framework de desenvolvimento Smart Contract escrito em python.
  • Eris-PM – O Eris Package Manager implementa e testa sistemas inteligentes de contrato em redes privadas e públicas.
  • Embarque – Embarque é um framework de desenvolvimento do Ðapp escrito em JavaScript.
  • EtherScripter (obsoleto, descontinuado)
  • Resiliência Transmissora de Transações Brutas

Vitalik, we have a problem

DApps não são a última inovação, em um futuro próximo algo pode substituir esses aplicativos descentralizados. Mas existe um problema: Os aplicativos para dispositivos móveis já existentes não podem “migrar” para a rede Ethereum. Os apps ainda precisam ser adaptados para entrarem na rede ETH, coisa que não vai acontecer por parte da ETH, mas fica ai a ideia.

DApps consolidados ou Não

 

Litsa de DApps
Lista de DApps

Assim como os primeiros aplicativos para iPhone e Android, há dez anos, os DApps ainda são um conceito relativamente novo, mas que movem milhões diáriamente. O DappRadar.com , um site que categoriza DApps e rastreia seu volume de transações, atualmente (19/05/18) possui 1487 DApps listados. Mas, você pode ver de forma mais dinâmica no State of the DApps. Com apenas 2 semanas de vida, os DApps moveram cerca de 95 mil ETH, na época 305.079 mil reais. E em 6 meses 1 bilhão de Dólares, malditos gatos.  Aqui a lista de alguns DApps:

  • Golem  -  Uma plataforma de computação em nuvem descentralizada na qual os usuários podem receber criptomoedas em troca de emprestar o poder de processamento de seus computadores.
  • Augur  -  Avalia a opinião pública e as expectativas, permitindo que os usuários façam previsões sobre o resultado de eventos futuros e recompensem os usuários por previsões precisas.
  • Ethlance  -  É um site de empregos on-line que usa a blockchain Ethereum para conectar os empregadores com clientes freelancers. Ao contrário das plataformas de freelancers centralizadas que cobram uma porcentagem dos ganhos do freelancer, os usuários do Ethlance só precisam pagar uma pequena taxa quando iniciam um contrato de emprego.
  • Pepe Farm – Simula uma fazenda de memes. Quanto mais Pepe Farmers você tem, mais memes eles criam.
  • Ether Anthills – É parecido com o Pepe farm, só que no lugar dos memes existem formigas e formigueiros. Quanto mais formigueiros você tem, mais formigas eles produzem.
  • CryptoKitties – Sim, os famosos gatinhos que valem milhões, esse DA move diáriamente cerca de 46 ETH e semanalmente 280 ETH.
  • Navegador Brave  que usa o Basic Attention Token , que fornece uma solução melhor para usuários, editores e anunciantes.
  • Slock.It fechaduras inteligentes;

Realmente é um mundo de DApps, talvez por ter vários apps resolvendo todo tipo de problema, os aplicativos façam tanto sucesso.


Fontes: CoinDesk / Open Platf. / Teoria Geral dos DApps / Lista de DApps

*Das fontes que cito, recomendo a leitura da Teoria Geral dos DApps.

*Esse artigo visa a explicação sobre DApps, não compre Gatinhos Fofinhos.