Topics BlockchainCurrent Page

Desempenho e Escalabilidade da Blockchain Ethereum

Intermediário
Blockchain
13 de abr de 2021
14 minutos de leitura

Resumo de IA

Mostrar mais

Resumo detalhado

Como o Bitcoin, a principal razão para o problema de escalabilidade do Ethereum é o protocolo de rede que cada nó na rede deve processar cada transação. O Ethereum 1.x implementa uma versão ligeiramente modificada do mecanismo de consenso de prova de trabalho (PoW). No Ethereum, os mineradores têm que competir para encontrar o nonce que atenda a dificuldade alvo. Cada nó precisa verificar se o trabalho dos mineradores é válido e manter uma cópia precisa do estado atual da rede. Isso limita muito a capacidade de processamento de transações e a taxa de transferência da rede blockchain Ethereum. Atualmente, ela pode processar apenas 12-15 transações por segundo.

Trilema de escalabilidade em blockchain

Primeiramente usado por Vitalik Buterin, o trilema de escalabilidade é um conceito em blockchain sobre sua capacidade de abordar escalabilidade, descentralização e segurança, sem comprometer nenhum deles. O trilema afirma que é quase impossível alcançar todas as três propriedades em um sistema de blockchain:

Descentralização: Este é um princípio fundamental sobre o qual o Bitcoin e o blockchain foram criados. A descentralização permite resistência à censura e permite que qualquer pessoa participe de um ecossistema descentralizado sem uma autoridade central ou intermediário.

Segurança: Isso se refere à integridade e imutabilidade do livro-razão público e à capacidade de resistir a ataques de 51% ou a ataques de rede como DDoS.

Escalabilidade: Isto se refere à capacidade de lidar com uma quantidade crescente de transações na rede blockchain. Para que a blockchain Ethereum seja o computador mundial, como o inventor imaginou, ela precisa corresponder à taxa de transferência de transações de muitos sistemas centralizados, como Amazon, Visa ou Mastercard.

O diagrama a seguir é uma ilustração do trilema de escalabilidade no blockchain:

O desafio principal da escalabilidade é encontrar uma forma de alcançar todos os três na camada base. As escolhas de design do Bitcoin e do Ethereum favorecem a descentralização e a segurança, enquanto sacrificam a escalabilidade.

Soluções de escalabilidade do Ethereum

A solução de escalabilidade do Ethereum é um dos tópicos mais ativos na comunidade Ethereum. A seguir estão algumas áreas de preocupação que a comunidade está tentando abordar para o futuro do Ethereum:

Processamento de transações e tempo de criação de blocos com PoW—quão rápido os mineradores podem processar todas as transações e criar um novo bloco através da mineração?

Finalidade da transação – quão rapidamente a rede descentralizada pode chegar a um consenso de que uma transação aconteceu e não pode ser revertida? Atualmente, leva cerca de seis blocos com o Bitcoin e 3-4 minutos com o Ethereum para que a rede considere que um bloco está finalizado na cadeia principal. Leitores interessados devem verificar o blog do Vitalik sobre liquidação de transações e probabilidade de finalidade de bloco.

As soluções que estão sendo implementadas ou propostas caem em três categorias: solução on-chain, solução offchain e protocolos de mecanismo de consenso. Existem algumas óbvias ou teóricas, como aumentar o tamanho dos blocos ou dividir uma blockchain em muitas cadeias altcoin independentes. Devido à natureza do peer-to-peer, uma abordagem tradicional de escalabilidade horizontal pode não funcionar. Especificamente para a rede Ethereum, também foi considerada a questão dos contratos inteligentes com ou sem estado contribuindo para problemas de escalabilidade. Vamos abordar conceitos de alto nível de todas essas soluções e, em seguida, aprofundar em algumas das promissoras.

Tamanho do bloco

Isso é semelhante à abordagem de escalonamento vertical. Alguns dos altcoins, como Bitcoin Cash, Ethereum Core, e assim por diante, estão implementando um tamanho de bloco maior para ganhar desempenho geral em transações. A teoria por trás dessa abordagem é que, uma vez que a mineração PoW é o principal gargalo em todo o processo, ao aumentar o tamanho do bloco podemos ter mais transações processadas por mineração. Pode levar um pouco mais de tempo para criar um grafo acíclico direcionado (DAG) para mineração baseada em armazenamento, mas o tempo médio para completar a mineração pode não piorar, já que a maioria dos clientes Ethereum cacheiam o DAG de qualquer forma.

O diagrama a seguir ilustra como essa técnica funciona:

No entanto, assim como o escalonamento vertical, em geral, essa solução exige que os nós da rede tenham melhor capacidade de computação para processar blocos de tamanho grande. Isso pode levar a um cenário onde a rede é concentrada em poucas mãos ricas e, assim, pode em última análise comprometer a descentralização e a segurança, os principais pilares do blockchain.

Altcoins

Outra solução é não ter uma blockchain gigantesca, mas sim ter várias blockchains menores e altcoins. Isso pode acabar sendo o caso, já que muitas indústrias verticais estão criando ou planejam criar blockchains específicas para indústrias. Isso reduzirá a atividade do usuário em cada blockchain individual e, portanto, deverá permitir um ecossistema mais escalável.

O diagrama a seguir ilustra como essa técnica funciona:

No entanto, há alguns problemas com essa opção. Um deles é a preocupação com a segurança. É uma crença comum que a rede é mais segura se mais nós da rede participarem do processamento de transações no blockchain. Com uma distribuição mais ampla de cadeias de altcoin, menos nós operarão em qualquer blockchain dado. Isso pode tornar o blockchain menos seguro, pois uma rede de altcoins menor pode ser mais vulnerável a ataques da rede. Digamos que temos cerca de 10.000 nós na rede maior, será necessário que pelo menos 5.001 nós (ou chamados de 51%) sejam comprometidos para lançar um ataque na rede. Se dividirmos 10.000 nós em 50 cadeias menores, cada cadeia compreende 200 nós, e bastaria apenas 101 nós para derrubar qualquer cadeia menor, o que chamamos de problema de ataque de 1%. Outro problema é a integração entre cadeias. Embora existam algumas soluções para lidar com a integração entre blockchains, a complexidade geral de integrar cadeias menores e altcoins aumentará drasticamente.

Soluções On-chain

Soluções On-chain, às vezes também chamadas de soluções de camada 1, procuram soluções para resolver problemas de escalabilidade e desempenho na camada base da rede blockchain Ethereum. Uma dessas soluções é o sharding. Sharding não é um conceito novo, pois RDBMS tradicionais e novas plataformas de big data usam sharding como uma forma de melhorar a escalabilidade e o desempenho há muitos anos.

Com a rede Ethereum, o objetivo do sharding é agrupar os nós da rede, a blockchain e estados globais em diferentes shards, e cada shard alcançará um consenso sobre o estado das transações dentre os nós dentro do grupo. No nível conceitual, isso pode não ser muito diferente do Plasma, a abordagem de side-chain da camada 2, mas a dificuldade técnica, implicações e esforços da rede são bem diferentes.

Outra solução de camada 1 ou on-chain é a mudança para um mecanismo de consenso de Proof of Stake (PoS), que é uma das áreas de pesquisa mais ativas abordando questões de escalabilidade e desempenho no Ethereum. Existem muitos debates em termos das vantagens e desvantagens de um mecanismo de consenso baseado em PoW. É bastante eficaz em garantir a segurança da blockchain na rede descentralizada, mas também é um grande gargalo no desempenho da blockchain.

Simplificando, o Proof of Stake é um dos algoritmos de consenso mais populares em redes blockchain. Ao contrário do consenso PoW, onde os mineradores são recompensados por resolver quebra-cabeças criptográficos, no algoritmo de consenso PoS, um grupo de validadores selecionados se revezam propondo novos blocos. O validador é escolhido de forma determinística, dependendo de sua riqueza, também definida como participação. Qualquer pessoa que deposita suas moedas como participação pode se tornar um validador. A chance de participar pode ser proporcional às participações que eles colocam. Digamos que, Alice, Bob, Catherine e David colocaram respectivamente 40 Ether, 30 Ether, 20 Ether e 10 Ether como participações; eles terão 40%, 30%, 20% e 10% de chance de serem selecionados como o criador do bloco.

A seguir, está como funciona o mecanismo de consenso PoS. Como mostrado no diagrama a seguir, o blockchain mantém um registro de um conjunto de validadores, às vezes também chamados de criadores de blocos ou forjadores. A qualquer momento, sempre que novos blocos precisam ser criados, o blockchain seleciona aleatoriamente um validador. O validador selecionado verifica as transações e propõe novos blocos para que todos os validadores concordem. Os novos blocos são então votados por todos os validadores atuais. O poder de votação é baseado na participação que o validador coloca. Quem propõe transações ou blocos inválidos ou vota de forma maliciosa, o que significa que comprometem intencionalmente a integridade da cadeia, pode perder suas participações. Para a criação do bloco em si, o nó não recebe recompensa. A remuneração é paga pela transação. Após a aceitação dos novos blocos, o criador do bloco pode coletar a taxa de transação como recompensa pelo trabalho de criação de novos blocos. Existem duas opções básicas possíveis de seleção de nós:

Aleatoriamente dos nós mais “ricos”;

Aleatoriamente dos nós mais antigos.

O PoS é considerado mais eficiente em termos de energia e amigável ao meio ambiente em comparação com o mecanismo PoW. Também é percebido como mais seguro. Isso essencialmente reduz a ameaça de um ataque de 51%, já que validadores maliciosos precisariam acumular mais de 50% das participações totais para assumir a rede blockchain. Tal algoritmo é projetado para desencorajar atacantes de validar transações falsas devido ao risco de perder um "colateral".

Semelhante ao PoW, a descentralização total pode não ser totalmente possível na blockchain pública baseada em PoS. Isso ocorre porque alguns nós ricos podem monopolizar as participações na rede.  Aqueles que colocam mais participações podem efetivamente controlar a maioria das votações e têm mais chances de gerar um novo bloco.  Ambos os algoritmos estão sujeitos à questão social e econômica de que tornam os ricos mais ricos.

Soluções Off-chain

Semelhante às razões para uma solução on-chain, a comunidade Ethereum também está ativamente procurando por soluções off-chain, às vezes chamadas de soluções de camada 2. Uma é uma solução de side-chain com Plasma. Em vez de colocar todas as transações na cadeia principal, o Plasma permite que qualquer pessoa crie side chains e vincule as side chains ao blockchain global. Isso é similar à solução da rede relâmpago no Bitcoin.

Outra é uma solução de canal de estado com Raiden, semelhante aos canais de pagamento no Bitcoin. A hipótese por trás dessa abordagem é que muitas transações entre partes só precisam ser validadas pelas partes envolvidas, não havendo necessidade de que todas as transações sejam validadas por toda a rede.

Uma solução intuitiva para melhorar a escalabilidade e a taxa de transferência é criar muitas pequenas cadeias. Isso pode parecer uma solução plausível, já que pode atender às necessidades empresariais e sociais. Pegue-nos, por exemplo, como clientes ou cidadãos, nós compramos frutas e vegetais na nossa mercearia local, que pode utilizar um blockchain para garantir rastreabilidade e segurança alimentar através de toda a cadeia de suprimentos de produtos frescos.

No final das suas compras, você pode pagar a mercearia diretamente através de um blockchain de pagamento P2P. Quando você solicita sua hipoteca ou empréstimo empresarial, pode ser capaz de aprovar sua hipoteca e empréstimo através do blockchain de hipotecas, e assim por diante. É mais provável que encontremos todas essas cadeias verticais ou cadeias privadas antes de vermos uma gigantesca cadeia global.

No entanto, isso cria questões de integração entre cadeias e aplicação de segurança. É isso que o Plasma tenta resolver. Foi proposto pela primeira vez em agosto de 2017 por Joseph Poon e Vitalik Buterin. A ideia do design é descarregar transações para muitas cadeias laterais mais rápidas e menos congestionadas, também chamadas de cadeias Plasma. Semelhante à abordagem de canal de estado, uma cadeia Plasma irá periodicamente enviar suas transações para a cadeia raiz do Ethereum.

A segurança e a integridade serão garantidas através da cadeia raiz. Se qualquer suspeita de fraude for detectada nas cadeias plasma, as transações serão revertidas e os usuários do Plasma podem sair da cadeia plasma e se mover para a cadeia raiz.

O diagrama a seguir mostra como pode ser uma rede Plasma:

Cada cadeia plasma é uma blockchain por si só. Elas são vinculadas a uma cadeia raiz do Ethereum através de um contrato inteligente. O contrato inteligente essencialmente conecta toda uma cadeia filha à cadeia raiz, atuando como uma ponte. Qualquer pessoa pode criar uma cadeia plasma e escrever um contrato inteligente vinculando a cadeia plasma à cadeia raiz.

Conforme mostra o diagrama a seguir, a cada período, os cabeçalhos de bloco de cada bloco das cadeias plasma são submetidos à cadeia raiz e registrados nos blocos da cadeia raiz.

As transações nas cadeias plasma permanecerão em cada cadeia plasma. A prova de Merkle nos cabeçalhos de bloco será então usada para verificar dados na cadeia filha. Isso permite que dezenas de milhares de transações sejam processadas em muitas cadeias de plasma em paralelo, e também deixa informações mínimas e suficientes de cabeçalho de Merkle na cadeia raiz para garantir a segurança:

A cadeia raiz terá um papel de árbitro, um pouco semelhante ao sistema de tribunal federal nos Estados Unidos, onde a cadeia raiz é a suprema corte e as cadeias de plasma são os tribunais de circuito ou os tribunais distritais. No sistema de tribunal federal, uma vez que o tribunal distrital federal tenha decidido um caso, o caso pode ser apelado para o tribunal de circuito ou suprema corte para uma arbitragem.

Quando ocorre fraude em uma cadeia de plasma, seja uma dupla transação entre cadeias ou o saque de mais do que se tem em todas as contas, qualquer pessoa pode fornecer uma prova de fraude para provar que a transação é inválida. Se provadas as transações fraudulentas, a transação será revertida.

Os usuários de plasma podem sair da cadeia de plasma filha e transferir éteres de volta para a cadeia principal. As propostas originais introduzem um conceito de validador único, como o operador para a blockchain de plasma, para validar e adicionar transações aos blocos, e gerenciar o estado da blockchain filha.

A ideia por trás dessa abordagem é que a segurança e integridade do blockchain em nível global são garantidas pela cadeia raiz, utilizando ou PoW ou, mais provavelmente, um protocolo de consenso híbrido PoW e PoS. No caso em que o validador da cadeia de plasma possa manter o fundo e cometer atividades fraudulentas, qualquer pessoa pode fornecer uma prova de fraude contra o validador à cadeia raiz.

Uma vez provado que o validador cometeu fraude, a cadeia raiz permitirá que todas as contas na cadeia de plasma impactada se movam para a cadeia raiz. Isso é chamado de cenário de saída em massa . Neste caso, contas individuais serão migradas para a cadeia raiz uma por uma, a transação inválida será revertida, e o validador da cadeia de plasma será penalizado com a participação que colocou no contrato inteligente. Dependendo de quantas contas precisam ser migradas, pode demorar um pouco para completar a saída em massa.

Embora tenha sido um dos tópicos mais interessantes e ativos na comunidade de pesquisa do Ethereum, ainda não há uma implementação pública de plasma. Em vez disso, uma versão reduzida da proposta original, também chamada de plasma minimamente viável, ou MVP, foi proposta para uma implementação simples, que inclui um modelo de segurança simplificado e operações básicas para sair de cadeias de plasma.

Um aspecto muito interessante de um MVP é a reintrodução de um modelo UTXO. Uma diferença chave no Ethereum é afastar-se do modelo UTXO do Bitcoin para um modelo de conta mais definido, onde o saldo da conta é o objeto de estado mantido no estado mundial.

O modelo de conta do Ethereum torna as verificações de transação e a transferência de dinheiro simples, com o sacrifício do paralelismo. Isso pode não ser uma limitação significativa, já que todas as transações precisam ser verificadas por todos os nós. Mas com o Plasma, à medida que a cadeia raiz se afasta do processamento de transações para a aplicação de segurança e arbitragem, torna-se importante poder verificar transações inválidas em paralelo.

Uma estrutura em árvore de blockchains, portanto a árvore de UTXOs de todas as cadeias filhas, facilita a aplicação de algoritmos paralelos distribuídos para verificar provas de fraude e aplicar segurança em todas as cadeias de plasma.

O diagrama a seguir mostra o que o potencial Plasma pode trazer para a rede blockchain do Ethereum quando uma árvore de cadeias filiadas de plasma Ethereum é vinculada à cadeia de plasma principal, e são, em última instância, conectadas e asseguradas através da cadeia raiz do Ethereum:

Uma escalabilidade massiva será alcançada através do descarregamento de cálculos caros para as cadeias filiadas e permitirá que a cadeia raiz forneça segurança compartilhada e serviços de arbitragem para o blockchain em um nível global. Existem algumas soluções semelhantes de interoperabilidade entre cadeias, como a rede Cosmos. Alegada ser a internet das blockchains, a rede Cosmos fornece uma arquitetura de integração de hub-spoke. Blockchains independentes, como as zonas ou braços, são anexados à blockchain principal como o hub. Seu propósito é facilitar a integração de blockchains através do protocolo IBC (comunicações inter-blockchains).

Aplicativo Bybit
Ganhe de forma inteligente