A velocidade será sempre o rei em um mundo de DApps. Satoshi Nakamoto iniciou uma incrível era de inovação para aplicações descentralizadas de internet com a introdução do Bitcoin como um sistema de pagamento digital, peer-to-peer.
Blockchain, a tecnologia subjacente Bitcoin e outras criptomoedas, facilita a formação de redes descentralizadas e sem confiança capazes de lidar com transações e dados de forma segura.
As últimas décadas têm visto irresponsabilidade em larga escala por parte das sociedades financeiras tradicionais dos bancos - que precisavam de ser resgatadas em 2008 - para agências de informação de crédito como a Equifax, que estava sujeita a uma das maiores violações de dados de consumo da história. Não é de admirar que a confiança nas instituições financeiras centralizadas tenha diminuído tão rapidamente.
À medida que os usuários exigem mais soberania, segurança e controle sobre suas vidas financeiras, é apenas uma questão de tempo até que os DApps baseados em blocos comecem a suplantar aplicativos mais tradicionais.
No entanto, esta transição para uma Internet mais descentralizada não é inevitável. Antes que os proprietários de dispositivos possam escolher DApps em vez de aplicativos, esses aplicativos descentralizados precisam funcionar bem como sua concorrência. Isso se resume a um fator chave: velocidade. E na cadeia de blocos, a velocidade é limitada pela rapidez com que podemos alcançar consenso em uma rede sem confiança. Os dApps precisam de suas plataformas de blockchain subjacentes para formar consenso de forma rápida, segura e a uma fração do custo de hoje.
O consenso não é apenas para blockchains
Consenso é o processo pelo qual as entidades chegam a um acordo através do tempo e espaço. Todos os aplicativos baseados na Internet devem chegar a consenso para funcionar.
Na verdade, sempre que você precisa combinar várias linhas de computação juntas, você precisa de um mecanismo de consenso, seja seu aplicativo executado na internet ou em um único PC multi-core.
Em alguns contextos, o termo “sincronização” é usado em vez de “consenso”, mas os significados são essencialmente os mesmos.
Os modernos processadores multi-core, sejam fabricados pela Intel ou por qualquer outra pessoa, usam instruções especiais para garantir que os núcleos do processador formem consenso sobre o conteúdo da memória. Essas instruções são chamadas barreiras de memória ou cercas de memória. O framework MapReduce do Google é famoso em milhões de núcleos em dezenas de milhares de máquinas todos os dias.
MapReduce resolve uma grande variedade de problemas práticos para o Google. Mas, MapReduce depende de um sistema de sincronização chamado Chubby para obter consenso sobre quais partes da computação existem e como elas devem ser recombinadas.
Embora alguns desta linguagem pode ser novo para aqueles menos familiarizados com infra-estrutura de internet, os aplicativos não são. Quando você usa o Google Docs, os vários computadores que visualizam o mesmo documento estão constantemente chegando a consenso. Fazer uma compra em uma plataforma de fornecedor, postar em mídias sociais, jogar um jogo on-line — todas essas ações exigem alcançar um consenso entre diferentes dispositivos e entidades.
A diferença entre aplicativos e DApps é que os aplicativos podem chegar a um acordo referindo-se novamente a uma autoridade centralizada. No exemplo do Documentos Google, a autoridade central é o Google.
Se você comprar um item na Amazon, a autoridade será a Amazon. Se você jogar Overwatch, a autoridade é Overwatch. Você entendeu a idéia. Quando há uma única fonte de verdade, a concordância pode ser alcançada muito, muito rapidamente. Mas, todos devem confiar nessa fonte de verdade para serem honestos.
E nos dias de hoje, estender esse nível de confiança às autoridades centrais é menos atraente do que nunca.
Os DApps devem ser mais criativos para chegar a consenso
Não existe autoridade central numa rede descentralizada, pelo que os DApps têm de encontrar acordo de formas mais criativas. A grande questão que todos os sistemas descentralizados devem responder é: “Quem deve ser responsável pela validação de uma determinada transação?”
Prova de trabalho e prova de estaca são dois mecanismos comuns que blockchains usam para determinar quem (mineiros em prova de trabalho e validadores em prova de estaca) é responsável por criar um bloco de transações e transmitir isso para o resto da rede.
Protocolos de prova de trabalho pedem aos mineiros para competir para resolver um problema matemático muito difícil. Resolver esse problema requer uma quantidade extraordinária de infra-estrutura de computação e enormes quantidades de eletricidade. Para incentivar as pessoas a desempenhar essa função essencial, mas cara, o mineiro vencedor adquire criptomoeda como recompensa.
Alguns protocolos de prova de estaca delegam validadores de forma determinística, muitas vezes com base no número de tokens mantidos. Os protocolos de prova de estaca são mais variados no seu comportamento do que a prova de trabalho.
No modelo de prova de estaca delegada operado na rede EOS, um pequeno número de nós mestre se revezam produzindo blocos. Isso é rápido, mas muito mais centralizado do que Bitcoin.
Outros protocolos de prova de participação propõem formas alternativas de alcançar velocidade sem sacrificar a descentralização, mas muitos ainda não foram implementados e comprovados no mundo real.
Bloqueios de prova de trabalho, como Bitcoin e Ethereum, são incrivelmente lentos e ineficientes, porque a criação de blocos depende do consumo de grandes quantidades de eletricidade.
Já Bitcoin consome tanta energia como os países da Grécia, Israel e Bangladesh. Em termos de velocidade, Bitcoin processa cerca de 7 transações por segundo, enquanto Ethereum pode processar cerca de 15. Para comparação, a Visa é capaz de processar 45.000 transações por segundo. A partir de agora, as duas cadeias de blocos mais conhecidas simplesmente não são rápidas o suficiente e usam muita energia.
Como os DApps podem ser dimensionados?
Os DApps precisam ser mais rápidos e mais eficientes em termos de energia para atender às necessidades de milhões de usuários da Internet com a facilidade e conveniência esperadas. Embora seja claro que a prova de trabalho é muito lenta e ineficiente em termos energéticos, permanece muito cedo para ter certeza de que a prova de aposta é a resposta.
Alguns ataques a cadeias de prova de estaca podem ser mais baratos de executar sem salvaguardas adequadas. Casper - inventado pelo fundador da Ethereum Vitalik Buterin - destina-se a abordar esta questão punindo economicamente validadores de mal comportamento removendo seus tokens depositados.
Mas Casper é conhecido por ter grandes falhas em sua capacidade de alcançar o consenso corretamente. Além disso, dada a necessidade de alcançar throughputs extremamente altos, parece natural que a largura de banda de um sistema seja pelo menos tão importante quanto a quantidade de tokens mantida ao determinar a importância de um determinado nó na rede.
Em última análise, se quisermos construir aplicações distribuídas verdadeiramente robustas, incluindo cadeias de blocos capazes de processar transações financeiras, então temos que obter a camada de consenso correta. Não podemos mais confiar em algoritmos meio cozidos que carecem de boas provas.
Não podemos mais confiar em implementações que não tenham nenhuma verificação formal. Algoritmos corretos são algoritmos rápidos, e algoritmos de consenso rápido afetarão todo o ecossistema do software da internet.
Por Nash Foster, CEO da Pyrofex
(Em divulgação, a equipe que lidero na Pyrofex está desenvolvendo uma solução chamada CDelta, que usará o protocolo de consenso otimista da Casanova.)
Sobre Nash Foster:
Nash Foster, CEO e co-fundador da Pyrofex, tem mais de 20 anos de experiência na indústria de computação e atuou nas equipes de engenharia do Google, Oracle, Counterpane, iBiblio e muitos outros. Nash estudou matemática e teoria da computação na Universidade da Carolina do Norte e na Universidade George Mason. Ele ajudou as empresas da Fortune 100 a projetar, implementar e gerenciar redes e aplicativos de rede com segurança.
Disclaimer: The views and opinions expressed by the author should not be considered as financial advice. We do not give advice on financial products.