Pular para o conteúdo
0%

Um guia do desenvolvedor para soluções de escalabilidade do Ethereum

Alchemy team headshot

Escrito por Alchemy

Publicado em 17 de maio de 202210 min de leitura

A ênfase da Ethereum na descentralização e na segurança significa que as transações são processadas lentamente. Isso afeta o throughput da rede e prejudica a capacidade de escala das aplicações descentralizadas.

Muitos designs foram propostos para resolver os problemas de escalabilidade da Ethereum, cada um oferecendo benefícios diferentes. Este guia apresenta as soluções de escalabilidade da Ethereum e explica como funcionam e por que são importantes.

O que é escalabilidade?

Escalabilidade se refere à capacidade de um sistema de lidar com aumentos exponenciais de uso sem sacrificar funcionalidade. No contexto da tecnologia blockchain, escalabilidade significa a capacidade de uma blockchain de suportar mais transações sem afetar sua funcionalidade.

Atualmente, a capacidade da Ethereum de processar transações está limitada a 7-15 transações por segundo (TPS). Já bancos de dados tradicionais e centralizados — como Oracle Database e Microsoft SQL Server — conseguem processar milhares de transações por segundo.

gráfico de transações por segundo na ethereum

Fonte: Blockchair

Duas maneiras pelas quais o design da ethereum afeta a escalabilidade

A Ethereum tem baixo throughput e velocidades de processamento lentas porque prioriza descentralização e segurança em detrimento da escalabilidade (o trilema da escalabilidade).

Veja algumas formas pelas quais o design da Ethereum afeta a escalabilidade:

1. O algoritmo de consenso da Ethereum processa transações sequencialmente

A Ethereum usa proof of work (PoW), o que significa que as transações na rede precisam ser aceitas e validadas por todos os nós. Isso favorece a descentralização e, mais importante, a segurança.

A desvantagem é que a execução sequencial de transações afeta a finalidade da transação (o tempo necessário para confirmar uma transação). Isso contribui ainda mais para a incapacidade da Ethereum de sustentar taxas altas de TPS.

2. A Ethereum limita o tamanho dos blocos a 1MB

A Ethereum limita a quantidade de dados que um bloco minerado pode conter (1MB) porque limitar o tamanho do bloco melhora a descentralização, permitindo que os nós armazenem o histórico da blockchain de forma mais eficiente. Blocos maiores dificultam a execução de full nodes por parte das pessoas, prejudicando a descentralização.

No entanto, o limite de 1MB reduz a quantidade de dados de transação que os mineradores conseguem incluir em um bloco, afetando o throughput da rede. Blocos pequenos também afetam o custo do gas, o recurso computacional necessário para executar operações na Ethereum Virtual Machine.

Como os mineradores têm poder computacional finito, muitas vezes são forçados a priorizar transações com taxas mais altas. Isso cria uma espécie de guerra de lances entre os usuários da Ethereum e força aumentos astronômicos nas taxas de transação.

O que são soluções de escalabilidade da Ethereum?

Soluções de escalabilidade da Ethereum são plataformas projetadas especificamente para melhorar a execução de transações na rede Ethereum. Soluções como layer 2 rollups e sidechains são protocolos que usam mecanismos diferentes para aumentar o throughput da rede.

diagrama de soluções de escalabilidade da ethereum

Fonte: Reddit

Soluções de escalabilidade layer 1 vs. layer 2

As soluções de escalabilidade podem ser divididas amplamente em duas categorias, "on-chain" e "off-chain", diferenciadas com base em seu ponto de execução.

Soluções de escalabilidade layer 1

A escalabilidade layer 1 envolve fazer mudanças na rede blockchain e reescrever a camada base. A descrição "on-chain" significa que atualizações de escalabilidade na Ethereum são executadas na própria blockchain.

Layer 1s podem escalar aumentando o tamanho dos blocos

Uma possível melhoria de escalabilidade em Layer 1 é aumentar o tamanho do bloco. Se o limite de 1MB da Ethereum fosse aumentado, os mineradores teriam mais espaço para incluir dados adicionais de transação nos blocos.

Embora aumentar o tamanho do bloco da Ethereum levasse a um aumento nas taxas de TPS, o efeito colateral é uma lenta progressão em direção à centralização, porque à medida que os blocos crescem, o tamanho da blockchain também cresce — dificultando a execução de um full node (a menos que você tenha um supercomputador). Por esse motivo, a comunidade Ethereum descartou blocos maiores como solução de escalabilidade.

Layer 1s podem escalar processando transações em paralelo com blockchain sharding

Blockchain sharding é uma melhoria de escalabilidade que introduz a execução paralela de transações no lugar do modelo sequencial padrão que a Ethereum usa. No sharding, a blockchain é dividida em cadeias menores (shards) que validam e processam transações separadas.

Veja como a Ethereum funciona atualmente:

As transações são transmitidas por toda a rede até serem validadas. O sharding não exige que as transações sejam aprovadas por todos os nós. Em vez disso, cada shard tem validadores (chamados collators) responsáveis por aprovar transações.

Cada collation (um conjunto de transações nas shard chains) precisa ser assinada por ⅔ dos collators. Além disso, a collation proposta precisa ser adicionada à cadeia principal antes de alcançar finalidade. Juntas, essas medidas ajudam a garantir a segurança do sistema.

Com o sharding, a Ethereum consegue aumentar o TPS sem sacrificar descentralização ou segurança. Como as shard chains processam transações diferentes de forma concorrente, a capacidade geral de processamento da rede aumenta. Além disso, os participantes da rede ainda conseguem provar a validade das collations dos shards por meio de provas criptográficas.

diagrama de sharding da ethereum
Fonte: Genesis Block

Fonte: Genesis Block

Soluções de escalabilidade layer 2

As melhorias de Layer 2 (L2) são chamadas assim porque são executadas fora da cadeia principal (Layer 1). Também chamadas de soluções "off-chain", a escalabilidade Layer 2 envolve processar transações em uma rede separada que depende da cadeia principal para segurança.

As soluções L2 costumam ser projetadas com ênfase em velocidade de transação e escalabilidade — descentralização e segurança são preocupações menores aqui. Como elas registram dados de transação na camada principal da Ethereum, as L2s se beneficiam da descentralização e segurança da mainnet. Além disso, como as soluções L2 são construídas sobre a Ethereum, elas não precisam de um token nativo próprio.

Esses protocolos off-chain podem agregar múltiplas transações em uma única transação e adicioná-la à cadeia principal. Isso reduz a pressão sobre a rede e melhora o potencial de escala dos apps conforme o uso cresce.

Exemplos de soluções de escalabilidade Layer 2 incluem:

  • Rollups
  • State channels
  • Plasma
  • Validium

Layer 2 vs. sidechains

Uma sidechain é uma blockchain separada que interage com a Ethereum Mainnet, mas não depende dela para segurança. As sidechains se conectam com a Ethereum por meio de uma cross-chain bridge, que permite a transferência de ativos entre as duas cadeias.

Sidechains são boas para escalabilidade porque são projetadas com um conjunto diferente de características que permitem alto throughput. Por exemplo, a sidechain Polygon usa um algoritmo de consenso proof of stake (PoS) para transações mais rápidas.

A principal diferença entre soluções Layer 2 e sidechains está nas garantias de segurança. Enquanto as redes L2 contam com as garantias de segurança da Ethereum, as sidechains não contam.

Uma sidechain é protegida por seu próprio mecanismo de consenso, enquanto as L2s se beneficiam do consenso da Ethereum. É por isso que muitos consideram as L2s mais seguras do que as sidechains.

Por que soluções de escalabilidade são necessárias para a Ethereum?

Boas soluções de escalabilidade da Ethereum ajudam a oferecer a desenvolvedores e usuários web3 taxas de gas mais baixas e transações mais rápidas, mantendo as transações seguras.

Veja por que soluções de escalabilidade são necessárias para a Ethereum:

1. Taxas de transação mais baixas

O problema das taxas de gas da Ethereum se tornou alvo de críticas generalizadas. Melhorias de escalabilidade podem reduzir o congestionamento da rede e levar a quedas significativas nos custos de transação.

Preços de gas mais baixos se traduzem em uma melhor experiência de usuário e maior adoção dos apps. Os usuários não precisarão lidar com transações que falham ou pagar taxas de gas exorbitantes.

2. Transações mais rápidas

Muitas soluções de escalabilidade foram criadas especificamente para melhorar a capacidade da Ethereum de lidar com mais transações em um período de tempo menor.

Por exemplo, rollups podem agrupar milhares de transações off-chain em uma única transação on-chain. Da mesma forma, o sharding aumenta o throughput ao permitir o processamento paralelo de transações.

O resultado dessas melhorias é um aumento nas taxas de transações por segundo (TPS). Embora as estimativas variem, muitos esperam que L2s e sharding levem o TPS da Ethereum à casa dos milhares.

3. Segurança aprimorada

As L2s são ótimas para escalar a Ethereum sem diminuir a segurança da rede. Diferente da escalabilidade on-chain, os projetos de escalabilidade off-chain não afetam a descentralização da Ethereum.

Mesmo sendo cadeias separadas, a segurança dessas L2s está fortemente ligada à blockchain Ethereum. Isso significa que os usuários podem interagir com segurança com esses projetos, aproveitando os benefícios da escalabilidade sem arriscar seus ativos.

As cinco soluções de escalabilidade mais populares da Ethereum

As cinco soluções de escalabilidade mais populares da Ethereum são: rollups, sidechains, state channels, plasma chains e Validium.

1. Rollups

Rollups combinam ou "agrupam" múltiplas transações executadas off-chain em um lote e as enviam para a cadeia principal. Um único rollup pode conter centenas, senão milhares, de transações comprimidas para reduzir o volume de transações que a cadeia principal precisa processar.

Além de melhorar a escalabilidade, os rollups oferecem níveis de segurança semelhantes aos da própria Ethereum, porque as transações nos rollups estão ancoradas na cadeia L1, o que garante a finalidade da transação.

Existem dois tipos principais de rollups: optimistic rollups e zero-knowledge rollups. Cada tipo se diferencia pela forma como as transações são computadas e enviadas à Ethereum:

Zero-knowledge rollups ou ZK-rollups realizam a computação off-chain e geram uma prova criptográfica chamada Succinct Non-Interactive Argument of Knowledge (SNARK) ou Succinct Transparent Argument of Knowledge (STARK). Essas "provas de validade" garantem aos nós na cadeia principal a validade dos lotes de transações.

Optimistic rollups assumem que as transações são válidas por padrão e não geram provas de validade para cada lote de transações. No entanto, a validade das transações em um optimistic rollup pode ser contestada por meio de uma prova de fraude.

Então, como os dois esquemas de rollup se comparam? Os ZK-rollups são mais seguros por gerarem provas de validade, mas isso os torna mais lentos do que os optimistic rollups.

Os ZK-rollups são mecanismos complexos, o que dificulta programar compatibilidade com a EVM neles. Como resultado, os ZK-rollups têm funcionalidade limitada em comparação aos optimistic rollups.

A Polygon está trabalhando em uma zero-knowledge EVM (zkEVM) para aumentar a funcionalidade dos zero-knowledge rollups na rede Ethereum, com seus planos para o Hermez 2.0.

L2s da Ethereum que usam optimistic rollups

  • Optimism
  • Arbitrum
  • Boba Network
  • Immutable X

L2s da Ethereum que usam ZK rollups

  • zkSYNC
  • Loopring
  • dYdX
  • StarkNet

Como desenvolvedor, você pode integrar rollups à sua dApp para melhorar a finalidade da transação e a escalabilidade. Dessa forma, seus usuários não precisam enfrentar taxas de gas altas, transações que falham e processamento lento — algo que acontece com frequência na Ethereum.

2. Sidechains

Uma sidechain é um tipo de solução layer 2 que consiste em uma blockchain separada operando em paralelo com a Ethereum Mainnet. Essas diferenças podem envolver incentivos cripto-econômicos, mecanismos de consenso, entre outros.

Sidechains projetadas especificamente para a Ethereum têm compatibilidade com a Ethereum Virtual Machine (EVM) e podem suportar smart contracts. Isso significa que você pode implantar projetos em sidechains e aproveitar suas melhorias de escalabilidade para os apps.

Cross-chain bridges são necessárias para conectar sidechains à plataforma de smart contracts da Ethereum. Como o nome sugere, uma blockchain bridge oferece uma porta de entrada para que os usuários se movam entre a cadeia principal e a sidechain.

Para usar uma bridge, você precisa bloquear alguns ativos (ETH, nesse caso) na cadeia de origem. Em seguida, uma quantidade equivalente de ativos é produzida na sidechain e depositada na sua carteira.

Você pode então transacionar livremente na sidechain, aproveitando sua capacidade superior de processamento de transações. Como explicado anteriormente, as sidechains são projetadas para oferecer escalabilidade e empregam diferentes mecanismos para alcançar isso.

Exemplos de sidechains da Ethereum:

  • Polygon
  • xDAI
  • SKALE

Outras blockchains Layer 1 (L1) alternativas também podem funcionar como sidechains da Ethereum, especialmente as blockchains compatíveis com EVM. Essas alt L1s costumam oferecer benefícios como taxas de gas mais baixas, melhor finalidade de transação e, em certos casos, funcionalidade mais rica.

Exemplos de L1s compatíveis com EVM:

  • Avalanche
  • Fantom
  • Binance Smart Chain

3. State channels

State channels são soluções de escalabilidade off-chain que permitem que duas partes transacionem sem que a cadeia principal precise validar cada transação. Um state channel é essencialmente um smart contract multi-assinatura que só executa com a aprovação das partes exigidas.

Como funcionam os state channels

  1. Alice quer abrir um state channel com Bob, que vende café para ela toda manhã. Vamos supor que ela deposite 0.4 ETH no canal e essa transação seja publicada na Mainnet.

  2. Após essa transação de abertura, Alice e Bob podem executar transações off-chain pelo tempo que quiserem. A única ressalva é que ambos precisam assinar as transações, o que significa que Alice e Bob precisam aprovar cada pagamento pelo café.

  3. Se Alice esgotar seu depósito, ela pode publicar uma transação de saída na cadeia principal. Essa transação refletirá o último estado conhecido do canal, que é então registrado para finalidade. Alice e Bob podem ter transacionado dezenas de vezes, mas a rede Ethereum registra apenas duas transações — a transação de entrada e a de saída.

Um state channel permite que as partes realizem transações off-chain seguras sem precisar enfrentar longos tempos de espera e altas taxas de transação. Isso também melhora a escalabilidade porque os mineradores têm menos transações para processar e podem trabalhar mais rápido.

Soluções de escalabilidade da Ethereum que usam state channels:

  • Raiden Network
  • Connext Network
  • Celer Network

4. Plasma chains

O whitepaper do Plasma introduz o conceito de "child chains", que se originam da blockchain principal ou "root chain". Embora as Plasma chains possam validar transações, elas dependem da segurança da root chain. Para provar a validade das transações, as child chains enviam provas criptográficas à root chain.

As Plasma chains são semelhantes às sidechains, pois se conectam à blockchain Ethereum por meio de smart contracts. Usar uma Plasma chain exige bloquear ETH em um smart contract na root chain antes de obter tokens na child chain.

O Plasma é considerado uma solução de escalabilidade L2 porque deriva sua segurança diretamente da camada base da Ethereum. Isso é o que as torna mais seguras do que, por exemplo, as sidechains.

O Plasma publica Merkle roots para cada bloco na cadeia principal da Ethereum. As block roots são pequenos pedaços de informação que podemos usar para verificar informações sobre transações. Se um ataque acontecer em uma Plasma chain, os usuários podem sair com segurança para a cadeia principal e retirar seus fundos usando as provas apropriadas.

Soluções de escalabilidade da Ethereum que usam plasma

  • OMG Plasma
  • Gluon Network

5. Validium

Validiums são semelhantes aos ZK-rollups, realizando a computação fora da camada principal da Ethereum, mas a principal diferença é que os validiums usam "disponibilidade de dados off-chain" em vez de publicar dados comprimidos na cadeia principal, como os ZK-rollups fazem.

Os Validiums armazenam dados off-chain com um provedor de dados, o que os torna, em certa medida, custodiais. No entanto, algumas soluções, como a StarkWare, usam Data Availability Committees (DACs) para garantir que os provedores de dados se comportem de forma honesta.

Os Validiums têm taxas muito baixas e transações rápidas (até 100.000 tps). No entanto, envolvem mais pressupostos de confiança do que outras soluções de escalabilidade, como os ZK-rollups.

Soluções de escalabilidade da ETH que usam validium:

  • DiversiFi
  • Immutable X

Quais são algumas desvantagens das soluções de escalabilidade?

Duas desvantagens das soluções de escalabilidade da Ethereum são a complexidade de implementação e as garantias de segurança potencialmente mais baixas.

1. Complexidade

Muitas soluções de escalabilidade são complexas de implementar, o que pode afetar sua funcionalidade. Por exemplo, a equipe de desenvolvimento da Ethereum vem adiando consistentemente a data de lançamento do sharding devido à quantidade de trabalho que a atualização exige.

2. Garantias de segurança mais baixas

Embora muitas soluções de escalabilidade L2 e L1 dependam da Ethereum para segurança, elas não podem ser tão seguras quanto ela. Cada solução de escalabilidade troca alguns elementos (como descentralização e segurança) por velocidade. Os usuários precisam estar cientes desses riscos antes de usar essas plataformas.

Conclusão

É provável que os projetos de escalabilidade abordados neste guia desempenhem um papel importante no avanço da Ethereum em direção à escalabilidade. Ainda não se sabe, porém, se isso será suficiente para garantir escala a longo prazo.

Planejando escalar sua próxima dApp em uma L2?

Cadastre-se para uma conta gratuita na Alchemy, a maior plataforma de desenvolvimento blockchain do mundo, que suporta L2s populares, incluindo Arbitrum, Optimism, Polygon e StarkNet.

Background gradient

Construa magia blockchain

A Alchemy combina os produtos e ferramentas de desenvolvimento Web3 mais poderosos com recursos, comunidade e suporte lendário.