O Estado de Escalonamento Ethereum

blog 1NewsDevelopersEnterpriseBlockchain ExplainedEvents and ConferencesPressboletins informativos

Assine a nossa newsletter.

Endereço de email

Nós respeitamos sua privacidade

HomeBlogBlockchain explicado

O Estado de Escalonamento Ethereum

Uma visão geral concisa dos desafios e soluções para dimensionar a rede Ethereum.by ConsenSysAbril 24, 2018Publicado em 24 de abril de 2018

O nascimento da Enterprise Ethereum em 2017

Os desenvolvedores do Ethereum sabem há muito tempo que dimensionar a rede é um assunto que vale a pena discutir e investir. O assunto não saiu da comunidade de desenvolvedores até o final de 2017, quando um aplicativo descentralizado (dApp) chamado CryptoKitties atraiu tanto tráfego que começou a desacelerar a rede. Além da latência da rede, o preço do gás – a taxa necessária para executar cada operação dentro de um contrato no blockchain Ethereum – disparou conforme os usuários competiam para que suas transações fossem validadas.

Embora a história agora esteja exagerada e esgotada, a situação dos CryptoKitties revelou que o Ethereum em seu estado atual pode não estar preparado para a quantidade de tráfego que acompanharia o lançamento de um dApp bem-sucedido. Velocidades lentas e custos de uso voláteis afastam as pessoas de plataformas e aplicativos. Os desenvolvedores DApp estão avançando para lançar o primeiro aplicativo amplamente adotado, então os desenvolvedores da Ethereum devem continuar trabalhando para escalar o blockchain.

O “Trilema”

Uma teoria da tecnologia blockchain é que uma rede pode suportar apenas dois dos seguintes: segurança, descentralização e escalabilidade. Esse “trilema” – como ficou conhecido – tem sido o desafio dos desenvolvedores do Ethereum, pois eles buscam manter os princípios básicos do blockchain (descentralização e segurança) enquanto o dimensionam para ampla adoção e implementação. Algumas das correções mais imediatas para escalabilidade, por exemplo, afetam gravemente a segurança ou a descentralização:

  1. O uso de altcoins é uma solução teórica para questões de escalabilidade. A opção é abandonar a ideia de um blockchain fora do qual todas as transações ocorrem e, em vez disso, adotar um modelo onde vários altcoins coexistem, todos operando em blockchains separados. O tráfego reduzido por blockchain permitiria que essa constelação de blockchains escalasse. No entanto, com menos nós agindo em cada blockchain, cada blockchain é mais suscetível a ataques e usuários mal-intencionados. O uso de altcoins, portanto, mantém a descentralização e melhora a escalabilidade, mas impacta gravemente a segurança.
  2. Aumentando o tamanho do bloco é outra solução teórica para questões de escalabilidade. Se a comunidade Ethereum votasse para aumentar o tamanho de cada bloco, todos os nós ainda poderiam realizar todas as operações, mas mais transações poderiam ser realizadas no mesmo período de tempo, portanto, agilizando a rede. Com tamanhos de bloco maiores, no entanto, cada transação requer mais energia e cada vez menos nós serão capazes de gastar essa quantidade de energia. O resultado seria um futuro em que a rede seria mantida por um punhado de supercomputadores com o tremendo poder de processamento necessário para verificar cada bloco. O aumento do tamanho do bloco, portanto, mantém a segurança e melhora a escalabilidade, mas diminui drasticamente a descentralização da rede.

A principal preocupação com o desenvolvimento do blockchain era a segurança e a descentralização. O principal obstáculo à escalabilidade, portanto, é que cada nó atualmente deve processar todas as transações. Embora inegavelmente seguro e descentralizado, esse processo não permite muito espaço para crescimento escalonável. A questão é, portanto, como podemos projetar Ethereum para ser capaz de escalar sem comprometer a segurança e a descentralização?

Existem quatro protocolos principais em desenvolvimento que abordarão as questões de escalabilidade. Sharding, Plasma e Raiden foram propostos especificamente para ajudar na escala Ethereum. O quarto protocolo, Casper, é muito mais amplo em escopo, mas terá implicações de escalabilidade além de muitos outros.

Sharding

Sharding é um método de escalonamento que mantém todas as transações no blockchain original, portanto conhecido como uma solução “on-chain”. O sharding trata do problema de que todas as transações no Ethereum são sequenciais, uma vez que cada nó deve processar todas as transações. O sharding permite que as operações sejam executadas simultaneamente umas com as outras, aumentando, portanto, o número de transações por segundo que o blockchain geral pode processar. Com a fragmentação, a rede Ethereum é dividida em vários grupos de nós. Cada um desses grupos é um fragmento e cada fragmento processa todas as transações que ocorrem dentro desse grupo. Isso permite que todos os fragmentos de cada processo diferentes transações simultaneamente

Dentro de cada fragmento, certos nós chamados “agrupadores” criariam regularmente um “agrupamento” ou um conjunto de informações sobre aquele fragmento. Cada agrupamento contém as seguintes informações:

  1. Informações sobre de qual fragmento veio o agrupamento.
  2. Informações sobre o estado do fragmento antes de as transações serem aplicadas.
  3. Informações sobre o estado do fragmento após as transações serem aplicadas.
  4. Assinaturas digitais de ⅔ dos agrupadores, validando as informações no agrupamento

Em toda a rede, os agrupamentos de cada fragmento são agregados em um único bloco e adicionados ao blockchain Ethereum. A fragmentação, portanto, permite que esses grupos de nós processem e verifiquem as transações, enquanto a única informação adicionada ao blockchain é a informação diluída encontrada nos agrupamentos. Se, por exemplo, houver dez fragmentos, e cada fragmento processa cinco transações, o próximo bloco incluiria um registro de cinquenta transações no blockchain, em vez de apenas alguns executaram transações sequencialmente.

Dois problemas surgem com a fragmentação. Primeiro, cada fragmento deve conter nós suficientes para garantir a segurança da rede. Se um fragmento contiver poucos nós, ⅔ dos agrupadores podem ser comprometidos e começar a agir de forma maliciosa. Em segundo lugar, não há uma maneira fácil de processar uma transação que ocorre entre dois fragmentos em vez de apenas um (um problema que não existe com um, blockchain inteiro). O método atual requer uma série complicada de recibos e provas.

Plasma

O plasma é outro método de escalonamento que processa transações “fora da cadeia”, ou seja, não na blockchain Ethereum primária. O plasma permite que muitos blockchain (chamados de “cadeias filho”) derivem do blockchain original (chamado de “cadeia raiz”). Cada cadeia filho, portanto, pode processar e manter seus próprios registros de transações enquanto conta com a segurança subjacente da cadeia raiz. Com o Plasma, a cadeia raiz é o aplicador global da computação que ocorre em todas as cadeias filho. A cadeia raiz, no entanto, só precisa ser calculada se surgir uma disputa dentro de uma das cadeias filho. Esse método permite que uma rede inteira de cadeias filhas divida todas as transações na cadeia de blocos para otimizar a velocidade e a eficiência da melhor forma. Se os nós em uma cadeia filho desejarem, eles podem enviar uma transação de saída e exportar um registro de suas transações para a cadeia raiz.

Este método tem um ponto forte particular. Cada cadeia de plasma pode ter suas próprias qualidades e conjuntos de padrões. Isso significa que diferentes cadeias de filhos podem oferecer suporte a transações com requisitos variados (ou seja, privacidade), enquanto tudo ainda ocorre dentro do mesmo ecossistema seguro.

Raiden

Raiden é outra solução de escalonamento fora da cadeia que permite que os nós mantenham um registro entre eles sem exigir que a cadeia raiz verifique todas as transações. Dois nós podem abrir um “canal de estado” entre eles, que é um canal bidirecional entre os usuários. “Mensagens” – na forma de transações – ocorrem entre os dois nós e são assinadas por cada parte para garantir a imutabilidade. O Raiden é particularmente útil para pagamentos frequentes e esperados – ou seja, um usuário que sabe que vai pagar a uma empresa US $ 10 por semana por um serviço, ou um usuário que sabe que vai gastar dinheiro em seu armazém local regularmente. Com as transações registradas e verificadas entre esses dois nós em vez de em cada bloco, a cadeia raiz é liberada de uma quantidade imensa de tráfego. A qualquer momento, qualquer participante de um canal de estado pode escolher fechar a transação e o resultado líquido de todas as transações é exportado para o blockchain raiz e incluído no próximo bloco. Isso significa que depois de um ano assinando o serviço de $ 10 / semana, o usuário pode fazer com que o bloco verifique uma transação de $ 520 em vez de 52 transações separadas de $ 10.

A solução Raiden vem com uma advertência primária e um benefício primário. A ressalva é que os nós só podem se comunicar com seus “vizinhos” – o que significa que se o nó A e o nó B têm um canal de estado aberto e o nó B e o nó C têm um canal de instrução aberto, o nó A não pode enviar fundos diretamente para o nó C. No entanto, as transações podem ser encaminhadas por meio de canais de forma que não possam ser roubadas ou bloqueadas no meio do caminho. O nó A poderia enviar uma transação para o nó C usando o nó B como intermediário, de forma que o nó B não pudesse roubar os fundos. Como principal benefício, o Raiden reduz drasticamente os preços do gás para cada transação. As transações que acontecem fora da cadeia entre os nós requerem menos gás para serem processadas do que as transações que ocorrem na cadeia raiz.

Casper

Casper é um protocolo pelo qual o modelo atual de Prova de Trabalho (PoW) da Ethereum mudará para Prova de Participação (PoS). Com o PoW, os mineradores atualmente precisam gastar energia para resolver uma equação criptográfica e extrair um bloco. Eles são recompensados ​​se resolverem a equação, mas o processo requer imensa energia (e continuará exigindo cada vez mais). Isso é caro e ineficiente em termos de energia, custando atualmente US $ 1,2 bilhão / ano para manter o modelo PoW.

No PoS, “validadores” substituem os mineiros, e eles “validam” (ao invés de minar) os blocos no blockchain. Em vez de gastar energia em um determinado bloco, os validadores colocam seus fundos em um determinado bloco. O bloco que tem mais fundos apostados é verificado e adicionado ao blockchain. Essencialmente, os validadores “apostam” que um determinado bloco será adicionado à cadeia, bloqueando seus fundos em um contrato até que o próximo bloco seja adicionado. Eles são recompensados ​​se colocarem sua aposta no bloco correto. Eles perdem seus fundos se agirem de forma maliciosa ao tentar validar um bloco com informações incorretas ou corrompidas.

Conceitualmente, essa mudança deve proteger o blockchain contra ataques maliciosos. Com o PoW, um ataque malsucedido ao blockchain custa ao invasor tempo e energia. Com o PoS, um ataque malsucedido ao blockchain custa diretamente ao usuário dinheiro, pois ele / ela perde imediatamente todos os fundos apostados no bloco errado.

O lançamento final do Casper será precedido por duas iterações do protocolo: Casper FFG e Casper CBC. Essas iterações serão implantadas no Ethereum para testar o PoS na rede e identificar possíveis problemas antes de mudar completamente.

Casper FFG

Casper FFG (Friendly Finality Gadget) será a primeira iteração de Casper, provavelmente lançado durante o próximo hard fork de Ethereum, Constantinopla. Em Casper FFG, os blocos ainda são minerados com PoW. No entanto, a cada cinquenta blocos, os validadores entram para testar o mecanismo PoS. Este “ponto de verificação” usa o protocolo PoS para avaliar e confirmar a finalidade. Finalidade significa que uma operação é completa e totalmente imutável. No FFG, os validadores depositam fundos para finalizar os cinquenta blocos anteriores da cadeia.

Casper CBC

Casper CBC (Corrigir por construção) será a segunda iteração de Casper. Normalmente, um protocolo é formalmente especificado e depois comprovado que satisfaz todas as propriedades fornecidas. Com o CBC, o protocolo PoS é especificado apenas parcialmente e, em seguida, ajustado para satisfazer as propriedades que deveria seguir. Essencialmente, em vez de ser totalmente definido desde o início, o protocolo é derivado ativa e constantemente. Isso é conseguido através da implementação de uma prova conhecida como “adversário ideal”, que é capaz de levantar exceções, falhas e falhas futuras do protocolo.

O protocolo Casper final provavelmente será implantado com o aprendizado de FFG e CBC. O protocolo é muito mais amplo em escopo do que apenas escalabilidade, incluindo melhorias de energia e segurança também. Menos energia por nó necessária para adicionar um bloco à cadeia, entretanto, significa que a rede melhorará as dificuldades atuais de escalabilidade. Embora o Casper não esteja sendo desenvolvido especificamente para lidar com questões de dimensionamento, certamente terá um impacto positivo na capacidade da rede de lidar com tráfego mais alto.

Olhando para o futuro

As quatro propostas acima não são mutuamente exclusivas – elas podem e provavelmente serão implementadas em algum grau para ajudar a escala da rede Ethereum ao longo do tempo. O dimensionamento será a prioridade dos desenvolvedores do Ethereum em 2018. À medida que mais e mais dapps populares forem desenvolvidos e lançados, veremos um ajuste fino contínuo das opções de dimensionamento disponíveis para permitir que o Ethereum tenha todo o seu potencial.

Boletim informativo Assine nosso boletim informativo para obter as notícias mais recentes da Ethereum, soluções empresariais, recursos para desenvolvedores e muito mais. Endereço de e-mailConteúdo exclusivoEthereum Q3 2020 DeFi ReportRelatório

Ethereum Q3 2020 DeFi Report

Ethereum Q2 2020 DeFi ReportRelatório

Ethereum Q2 2020 DeFi Report

Guia completo para redes de negócios BlockchainGuia

Guia completo para redes de negócios Blockchain

Como construir um produto blockchain de sucessoWebinar

Como construir um produto blockchain de sucesso

Introdução à TokenizaçãoWebinar

Introdução à Tokenização