No início, o Ethereum tinha duas estratégias de dimensionamento em seu roteiro. Uma (por exemplo, vereste artigo iniciala partir de 2015) foi o “sharding”: em vez de verificar e armazenar todas as transações na cadeia, cada nó precisaria apenas verificar e armazenar uma pequena fração das transações. É assim que qualquer outra rede peer-to-peer (por exemplo, BitTorrent) funciona também, então certamente poderíamos fazer com que as blockchains funcionassem da mesma maneira. Outra foi protocolos de camada 2: redes que ficariam em cima do Ethereum de uma forma que lhes permitisse aproveitar totalmente sua segurança, enquanto mantêm a maior parte dos dados e computação fora da cadeia principal. “Protocolos de camada 2” significavacanais de estadoem 2015, Plasmaem 2017 e depoisrollupsEm 2019. Rollups são mais poderosos do que canais de estado ou Plasma, mas exigem uma grande quantidade de largura de banda de dados on-chain. Felizmente, até 2019, a pesquisa de fragmentação havia resolvidoo problema de verificar a 'disponibilidade de dados' em escala. Como resultado, os dois caminhos convergiram e conseguimos o roadmap centrado em rollupque continua a ser a estratégia de escalonamento da Ethereum hoje.
The Surge, edição do roteiro de 2023.
A rota centrada no rollup propõe uma simples divisão de trabalho: o Ethereum L1 se concentra em ser uma camada de base robusta e descentralizada, enquanto os L2s assumem a tarefa de ajudar o ecossistema a escalar. Este é um padrão que se repete em toda a sociedade: o sistema judicial (L1) não está lá para ser ultra-rápido e eficiente, está lá para proteger contratos e direitos de propriedade, e cabe aos empreendedores (L2) construir em cima disso.robustobasecamadae levar a humanidade a Marte (metafórica e literalmente).
Este ano, o roadmap centrado no rollup viu sucessos importantes: a largura de banda de dados do Ethereum L1 aumentou consideravelmente com EIP-4844 blobs, e vários rollups EVM agora são na etapa 1. Um muito implementação heterogênea e pluralística de fragmentação, onde cada L2 atua como um “fragmento” com suas próprias regras e lógica interna, é agora realidade. Mas, como vimos, seguir por este caminho apresenta desafios únicos. Portanto, agora nossa tarefa é concluir o roadmap centrado em rollup e resolver esses problemas, preservando a robustez e a descentralização que tornam o Ethereum L1 especial.
O trilema de escalabilidade era uma ideia introduzido em 2017, que argumentou que existe uma tensão entre três propriedades de uma blockchain: descentralização (mais especificamente: baixo custo para executar um nó), escalabilidade (mais especificamente: alto número de transações processadas) e segurança (mais especificamente: um atacante precisando corromper uma grande parte dos nós em toda a rede para fazer com que uma única transação falhe).
Vale ressaltar que o trilema não é um teorema, e o post que introduziu o trilema não veio com uma prova matemática. Ele deu um argumento matemático heurístico: se um nó amigável à descentralização (por exemplo, um laptop de consumidor) pode verificar N transações por segundo, e você tem uma cadeia que processa k*N transações por segundo, então ou (i) cada transação é vista apenas por 1/k dos nós, o que implica que um atacante só precisa corromper alguns nós para passar uma transação ruim, ou (ii) seus nós serão robustos e sua cadeia não será descentralizada. O objetivo do post nunca foi mostrar que quebrar o trilema é impossível; pelo contrário, foi mostrar que quebrar o trilema é difícil - requer de alguma forma pensar fora da caixa que o argumento implica.
Por muitos anos, tem sido comum que algumas cadeias de alto desempenho afirmem resolver o trilema sem fazer nada inteligente em um nível de arquitetura fundamental, geralmente usando truques de engenharia de software para otimizar o nó. Isso é sempre enganoso, e executar um nó em tais cadeias sempre acaba sendo muito mais difícil do que no Ethereum.Esta postagementra em algumas das muitas sutilezas que explicam por que isso acontece (e, portanto, por que a engenharia de software do cliente L1 sozinha não pode escalar o Ethereum em si).
No entanto, a combinação de amostragem de disponibilidade de dados e SNARKs resolve o trilema: permite a um cliente verificar que alguma quantidade de dados está disponível e que algum número de etapas de computação foi realizado corretamente, enquanto baixa apenas uma pequena parte desses dados e executa uma quantidade muito menor de computação. SNARKs são sem confiança. A amostragem de disponibilidade de dados possui uma nuance modelo de confiança few-of-N, mas preserva a propriedade fundamental que as cadeias não escaláveis têm, ou seja, mesmo um ataque de 51% não pode forçar blocos ruins a serem aceitos pela rede.
Outra maneira de resolver o trilema são as arquiteturas Plasma, que usam técnicas inteligentes para transferir a responsabilidade de verificar a disponibilidade de dados para o usuário de maneira compatível com incentivos. De volta em 2017-2019, quando tudo o que tínhamos para dimensionar a computação eram provas de fraude, o Plasma era muito limitado no que podia fazer com segurança, mas a popularização dos SNARKs torna as arquiteturas Plasma muito mais viávelpara uma variedade maior de casos de uso do que antes.
A partir de 13 de março de 2024, quando o Atualização DencunDesde que foi ao ar, a blockchain do Ethereum tem três ~125 kB "blobs" por intervalo de 12 segundos, ou ~375 kB por intervalo de largura de banda de disponibilidade de dados. Supondo que os dados da transação sejam publicados diretamente onchain, uma transferência ERC20 é ~180 bytes, e assim o TPS máximo de rollups no Ethereum é:
375000 / 12 / 180 = 173.6 TPS
Se adicionarmos os calldatas do Ethereum (máximo teórico: 30 milhões de gás por slot / 16 gás por byte = 1.875.000 bytes por slot), isso se torna 607 TPS. Com o PeerDAS, o plano é aumentar a meta do número de blocos para 8-16, o que nos daria 463-926 TPS em calldata.
Este é um aumento significativo em relação ao Ethereum L1, mas não é suficiente. Queremos muito mais escalabilidade. Nosso objetivo de médio prazo é de 16 MB por slot, o que, combinado com melhorias na compressão de dados do rollup, nos daria ~58.000 TPS.
PeerDAS é uma implementação relativamente simples de “amostragem 1D”. Cada blob no Ethereum é um polinômio de grau 4096 sobre um campo primo de 253 bits. Transmitimos “ações” do polinômio, onde cada ação consiste em 16 avaliações em 16 coordenadas adjacentes tiradas de um conjunto total de 8192 coordenadas. Qualquer 4096 das 8192 avaliações (com os parâmetros propostos atuais: qualquer 64 das 128 amostras possíveis) podem recuperar o blob.
O PeerDAS funciona fazendo com que cada cliente escute em um pequeno número de sub-redes, onde a sub-rede i transmite a i-ésima amostra de qualquer blob, e adicionalmente solicita blobs em outras sub-redes que precisa pedindo aos seus pares na rede p2p global (que estariam escutando em sub-redes diferentes). Uma versão mais conservadora,SubnetDAS, usa apenas o mecanismo de sub-rede, sem a camada adicional de pares de pergunta. Uma proposta atual é que os nós que participam da prova de participação usem o SubnetDAS e para outros nós (ou seja. "clients") para usar o PeerDAS.
Teoricamente, podemos dimensionar a amostragem 1D bastante longe: se aumentarmos o número máximo de blobs para 256 (portanto, o alvo para 128), então chegaríamos ao nosso alvo de 16 MB, enquanto a amostragem de disponibilidade de dados custaria apenas 16 amostras para cada nó128 blobs512 bytes por amostra por bloco = 1 MB de largura de banda de dados por slot. Isso está quase dentro de nossa tolerância: é viável, mas significaria que clientes com restrição de largura de banda não podem amostrar. Poderíamos otimizar isso um pouco diminuindo a contagem de blocos e aumentando o tamanho do bloco, mas isso tornaria a reconstrução mais cara.
E assim, em última análise, queremos ir mais longe e fazeramostragem 2D, que funciona por amostragem aleatória não apenas dentro de blobs, mas também entre blobs. As propriedades lineares dos compromissos KZG são usadas para 'estender' o conjunto de blobs em um bloco com uma lista de novos 'blobs virtuais' que codificam redundante a mesma informação.
Amostragem 2D. Fonte: a16z cripto
É crucial, a computação da extensão dos compromissos não requer ter os blobs, então o esquema é fundamentalmente amigável à construção de blocos distribuídos. O nó que realmente está construindo o bloco só precisaria ter os compromissos do blob KZG, e pode contar com o DAS para verificar a disponibilidade dos blobs. 1D DAS também é inerentemente amigável à construção de blocos distribuídos.
O próximo passo imediato é concluir a implementação e o lançamento do PeerDAS. A partir daí, é uma moagem progressiva para continuar aumentando a contagem de blocos no PeerDAS enquanto observamos cuidadosamente a rede e melhoramos o software para garantir a segurança. Ao mesmo tempo, queremos mais trabalhos acadêmicos para formalizar o PeerDAS e outras versões do DAS e suas interações com questões como a segurança da regra de escolha de fork.
Mais para o futuro, precisamos de muito mais trabalho para descobrir a versão ideal do 2D DAS e provar suas propriedades de segurança. Também queremos eventualmente migrar do KZG para uma alternativa resistente ao quantum e sem configuração confiável. Atualmente, não conhecemos candidatos que sejam amigáveis à construção de blocos distribuídos. Mesmo a cara técnica de "força bruta" de usar STARKs recursivos para gerar provas de validade para reconstruir linhas e colunas não é suficiente, porque enquanto tecnicamente um STARK é O(log(n) * log(log(n)) hashes em tamanho (com STIR) Na prática, um STARK é quase tão grande quanto um blob inteiro.
Os caminhos realistas que vejo a longo prazo são:
Podemos vê-los ao longo de um espectro de compensação:
Observe que essa escolha existe mesmo se decidirmos escalar a execução no L1 diretamente. Isso ocorre porque, se o L1 processar muitos TPS, os blocos do L1 se tornarão muito grandes, e os clientes desejarão uma maneira eficiente de verificar se estão corretos, então teríamos que usar a mesma tecnologia que alimenta os rollups (ZK-EVM e DAS) no L1.
A necessidade de DAS 2D é um pouco reduzida, ou pelo menos adiada, se a compressão de dados (ver abaixo) for implementada, e é ainda mais reduzida se o Plasma for amplamente utilizado. DAS também representa um desafio para os protocolos e mecanismos de construção de blocos distribuídos: embora o DAS seja teoricamente amigável para a reconstrução distribuída, isso precisa ser combinado na prática comlista de inclusãopropostas e sua mecânica de escolha de fork circundante.
Cada transação em um rollup ocupa uma quantidade significativa de espaço de dados onchain: uma transferência ERC20 ocupa cerca de 180 bytes. Mesmo com amostragem ideal de disponibilidade de dados, isso coloca um limite na escalabilidade dos protocolos de camada 2. Com 16 MB por slot, temos:
16000000 / 12 / 180 = 7407 TPS
E se, além de lidar com o numerador, também pudermos lidar com o denominador e fazer com que cada transação em um rollup ocupe menos bytes na cadeia?
A melhor explicação, na minha opinião, é este diagramade dois anos atrás:
Os ganhos mais simples são apenas compressão de bytes zero: substituindo cada sequência longa de bytes zero por dois bytes representando quantos bytes zero existem. Para avançar, aproveitamos as propriedades específicas das transações:
A principal coisa que resta a fazer é realmente implementar os esquemas acima. As principais compensações são:
A adoção do ERC-4337 e, eventualmente, a consagração de partes dele nos L2 EVMs, pode acelerar muito a implantação de técnicas de agregação. A consagração de partes do ERC-4337 no L1 pode acelerar sua implantação nos L2s.
Mesmo com blobs de 16 MB e compressão de dados, 58.000 TPS não é necessariamente suficiente para assumir totalmente os pagamentos do consumidor, redes sociais descentralizadas ou outros setores de alta largura de banda, e isso se torna especialmente verdadeiro se começarmos a levar em consideração a privacidade, o que poderia reduzir a escalabilidade em 3-8x. Para aplicações de alto volume e baixo valor, uma opção hoje é um Validade, que mantém os dados fora da cadeia e possui um modelo de segurança interessante onde o operador não pode roubar os fundos dos usuários, mas eles podem desaparecer e congelar temporariamente ou permanentemente todos os fundos dos usuários. Mas podemos fazer melhor.
Plasma é uma solução de escalabilidade que envolve um operador publicando blocos offchain e colocando as raízes de Merkle desses blocos onchain (ao contrário dos rollups, onde o bloco completo é colocado onchain). Para cada bloco, o operador envia para cada usuário um ramo de Merkle provando o que aconteceu, ou não aconteceu, com os ativos desse usuário. Os usuários podem retirar seus ativos fornecendo um ramo de Merkle. Importante, esse ramo não precisa estar enraizado no estado mais recente - por esse motivo, mesmo se a disponibilidade de dados falhar, o usuário ainda pode recuperar seus ativos ao retirar o estado mais recente que possuem disponível. Se um usuário enviar um ramo inválido (por exemplo, saindo de um ativo que já enviou para outra pessoa, ou o próprio operador criando um ativo do nada), um mecanismo de desafio onchain pode adjudicar a quem o ativo pertence legitimamente.
Um diagrama de uma cadeia de Plasma Cash. As transações que gastam a moeda i são colocadas na posição i na árvore. Neste exemplo, assumindo que todas as árvores anteriores são válidas, sabemos que Eve atualmente possui a moeda 1, David possui a moeda 4 e George possui a moeda 6.
As primeiras versões do Plasma só conseguiam lidar com o caso de uso de pagamentos e não conseguiam generalizar efetivamente além disso. Se exigirmos que cada raiz seja verificada com um SNARK, no entanto, o Plasma se torna muito mais poderoso. Cada jogo de desafio pode ser significativamente simplificado, pois eliminamos a maioria dos caminhos possíveis para o operador trapacear. Novos caminhos também se abrem para permitir que técnicas do Plasma sejam estendidas a uma classe de ativos muito mais geral. Finalmente, no caso em que o operador não trapaceia, os usuários podem sacar seus fundos instantaneamente, sem precisar esperar por um período de desafio de uma semana.
Uma maneira (não a única maneira) de criar uma cadeia de plasma EVM: usar um ZK-SNARK para construir uma árvore UTXO paralela que reflete as alterações de saldo feitas pelo EVM e define um mapeamento único do que é 'a mesma moeda' em diferentes pontos da história. Uma construção de Plasma pode então ser construída em cima disso.
Uma visão fundamental é que o sistema Plasma não precisa ser perfeito. Mesmo que você só consiga proteger um subconjunto de ativos (por exemplo, até mesmo moedas que não se moveram na semana passada), você já melhorou significativamente o status quo do EVM altamente escalável, que é um validium válido.
Outra classe de construções é o plasma/rollups híbridos, como Intmax. Essas construções colocam uma quantidade muito pequena de dados por usuário onchain (por exemplo, 5 bytes), e ao fazer isso, obtêm propriedades que estão em algum lugar entre plasma e rollups: no caso do Intmax, você obtém um nível muito alto de escalabilidade e privacidade, embora mesmo no mundo de 16 MB a capacidade seja teoricamente limitada a aproximadamente 16.000.000 / 12 / 5 = 266.667 TPS.
A principal tarefa restante é levar os sistemas Plasma para produção. Como mencionado anteriormente, “plasma vs validium” não é binário: qualquer validium pode ter suas propriedades de segurança melhoradas pelo menos um pouco ao adicionar características do Plasma ao mecanismo de saída. A parte de pesquisa está em obter propriedades ótimas (em termos de requisitos de confiança, custo de gás L1 caso extremo e vulnerabilidade a DoS) para um EVM, bem como construções específicas de aplicativo alternativas. Além disso, a maior complexidade conceitual do Plasma em relação aos rollups precisa ser abordada diretamente, tanto por meio de pesquisa quanto pela construção de estruturas generalizadas melhores.
A principal compensação ao usar os designs da Plasma é que eles dependem mais dos operadores e são mais difíceis de fazer.”baseadoEmbora os designs híbridos de plasma/rollup frequentemente consigam evitar essa fraqueza.
Quanto mais eficazes forem as soluções de Plasma, menos pressão haverá para que o L1 tenha uma funcionalidade de disponibilidade de dados de alto desempenho. A transferência de atividades para o L2 também reduz a pressão MEV no L1.
Hoje, a maioria dos rollups ainda não é realmente confiável; existe um conselho de segurança que tem a capacidade de anular o comportamento do (otimista ou válido)sistema de provaEm alguns casos, o sistema de prova nem sequer está ativo, ou se estiver, possui apenas uma funcionalidade "consultiva". Os mais avançados são (i) alguns rollups específicos de aplicativos, como o Fuel, que são sem confiança, e (ii) no momento desta escrita, Optimism e Arbitrum, dois rollups completos da EVM que alcançaram um marco de parcial falta de confiança conhecido como "estágio 1". A razão pela qual os rollups não avançaram mais é a preocupação com bugs no código. Precisamos de rollups sem confiança, e, portanto, precisamos enfrentar esse problema de frente.
Primeiro, vamos recapitular o sistema de "estágio", originalmente introduzido emesta postagemExistem requisitos mais detalhados, mas o resumo é:
O objetivo é atingir a Etapa 2. O principal desafio em alcançar a etapa 2 é obter confiança suficiente de que o sistema de prova é realmente confiável o bastante. Existem duas maneiras principais de fazer isso:
Diagrama estilizado de um multi-provador, combinando um sistema de prova otimista, um sistema de prova de validade e um conselho de segurança.
Para verificação formal, muito. Precisamos criar uma versão formalmente verificada de um provador SNARK inteiro de um EVM. Este é um projeto incrivelmente complexo, embora seja um projeto que nós já começamosExiste um truque que simplifica significativamente a tarefa: podemos criar um verificador SNARK formalmente verificado de uma VM mínima, por exemplo.RISC-VouCairo, e então escreva uma implementação do EVM nesse VM mínimo (e prove formalmente sua equivalência a alguma outra especificação do EVM).
Para múltiplos provadores, existem duas peças principais restantes. Primeiro, precisamos ter confiança suficiente em pelo menos dois sistemas de prova diferentes, tanto que sejam razoavelmente seguros individualmente, quanto que se eles falharem, falhariam por razões diferentes e não relacionadas (e assim não falhariam ao mesmo tempo). Em segundo lugar, precisamos obter um nível muito alto de garantia na lógica subjacente que mescla os sistemas de prova. Esta é uma parte muito menor do código. Existem maneiras de torná-lo extremamente pequeno - apenas armazenar fundos em um Contrato multisig segurocuja assinatura são contratos representando sistemas de prova individuais - mas isso tem o tradeoff de altos custos de gás onchain. Será necessário encontrar um equilíbrio entre eficiência e segurança.
Transferir a atividade para L2 reduz a pressão de MEV em L1.
Um dos principais desafios do ecossistema L2 hoje é que é difícil para os usuários navegar. Além disso, as maneiras mais fáceis de fazê-lo muitas vezes reintroduzem suposições de confiança: pontes centralizadas, clientes RPC e assim por diante. Se estamos falando sério sobre a ideia de que os L2s fazem parte do Ethereum, precisamos fazer com que o uso do ecossistema L2 pareça usar um ecossistema Ethereum unificado.
Um exemplo de experiência de usuário cruzada entre L2 patologicamente ruim (e até perigosa: pessoalmente perdi $100 devido a um erro de seleção de cadeia aqui) - embora isso não seja culpa do Polymarket, a interoperabilidade entre L2 deve ser responsabilidade das carteiras e da comunidade de padrões Ethereum (ERC). Em um ecossistema Ethereum bem funcional, enviar moedas do L1 para o L2, ou de um L2 para outro, deve ser tão simples quanto enviar moedas dentro do mesmo L1.
Existem muitas categorias de melhorias de interoperabilidade cruzada entre L2. Em geral, a maneira de chegar a elas é perceber que, na teoria, um Ethereum centrado em rollup é a mesma coisa que shard de execução L1, e depois perguntar onde o atual L2-verse do Ethereum fica aquém desse ideal na prática. Aqui estão alguns:
Como um cliente leve pode atualizar sua visão da cadeia de cabeçalhos do Ethereum. Depois de ter a cadeia de cabeçalhos, você pode usar provas de Merkle para validar qualquer objeto de estado. E uma vez que você tem os objetos de estado corretos L1, você pode usar provas de Merkle (e possivelmente assinaturas, se você quiser verificar pré-confirmações) para validar qualquer objeto de estado em L2. Helios já faz o primeiro. Estender para o último é um desafio de padronização.
Um diagrama estilizado de como as carteiras de keystore funcionam.
Muitos dos exemplos acima enfrentam dilemas padrão sobre quando padronizar e em quais camadas padronizar. Se você padronizar muito cedo, corre o risco de consolidar uma solução inferior. Se você padronizar muito tarde, corre o risco de criar fragmentação desnecessária. Em alguns casos, há tanto uma solução de curto prazo que tem propriedades mais fracas, mas é mais fácil de implementar, quanto uma solução de longo prazo que é "em última instância correta", mas levará alguns anos para chegar lá.
Uma maneira pela qual esta seção é única, é que essas tarefas não são apenas problemas técnicos: são também (talvez até principalmente!) problemas sociais. Eles exigem que as L2s e carteiras e L1 cooperem. Nossa capacidade de lidar com esse problema com sucesso é um teste de nossa capacidade de permanecer unidos como comunidade.
A maioria dessas propostas são construções de “camada superior” e, portanto, não afetam muito as considerações da L1. Uma exceção é a sequenciação compartilhada, que tem grandes impactos no MEV.
Se os L2s se tornarem muito escaláveis e bem-sucedidos, mas o L1 continuar capaz de processar apenas um volume muito baixo de transações, existem muitos riscos para o Ethereum que podem surgir:
Por essas razões, é valioso continuar escalando o L1 em si e garantir que ele possa continuar acomodando um número crescente de usos.
A maneira mais fácil de escalar é simplesmente aumentar o limite de gás. No entanto, isso arrisca a centralização do L1, enfraquecendo assim a outra propriedade importante que torna o Ethereum L1 tão poderoso: sua credibilidade como uma camada base robusta. Há um debate em andamento sobre qual grau de aumento simples do limite de gás é sustentável, e isso também muda com base em quais outras tecnologias são implementadas para tornar blocos maiores mais fáceis de verificar (por exemplo, expiração de histórico, estado sem estado, provas de validade do L1 EVM). Outra coisa importante a melhorar é simplesmente a eficiência do software do cliente Ethereum, que hoje está muito mais otimizado do que era há cinco anos. Uma estratégia eficaz de aumento do limite de gás do L1 envolveria acelerar essas tecnologias de verificação.
Outra estratégia de escalonamento envolve a identificação de recursos e tipos específicos de computação que podem ser barateados sem prejudicar a descentralização da rede ou suas propriedades de segurança. Exemplos disso incluem:
Essas melhorias serão discutidas com mais detalhes em um post futuro no Splurge.
Finalmente, uma terceira estratégia são os rollups nativos (ou "rollups consagrados"): essencialmente, criando muitas cópias do EVM que funcionam em paralelo, levando a um modelo que é equivalente ao que os rollups podem fornecer, mas muito mais integrado de forma nativa no protocolo.
Existem três estratégias para escalonamento L1, que podem ser seguidas individualmente ou em paralelo:
Vale a pena entender que essas são técnicas diferentes que têm compensações diferentes. Por exemplo, os rollups nativos têm muitas das mesmas fraquezas na composabilidade que os rollups regulares: você não pode enviar uma única transação que execute sincronamente operações em muitos deles, como você pode com contratos no mesmo L1 (ou L2). Aumentar o limite de gás tira outros benefícios que podem ser alcançados tornando o L1 mais fácil de verificar, como aumentar a parcela de usuários que executam nós verificadores e aumentar os stakers solos. Tornar operações específicas no EVM mais baratas, dependendo de como é feito, pode aumentar a complexidade total do EVM.
Uma grande pergunta que qualquer roadmap de escala L1 precisa responder é: qual é a visão final para o que pertence a L1 e o que pertence a L2? Claramente, é absurdo que tudo vá em L1: os casos de uso potenciais vão para as centenas de milhares de transações por segundo, e isso tornaria o L1 completamente inviável de verificar (a menos que sigamos a rota de rollup nativo). Mas precisamos de algum princípio orientador, para que possamos ter certeza de que não estamos criando uma situação em que aumentamos o limite de gás em 10x, prejudicamos fortemente a descentralização do Ethereum L1 e descobrimos que só chegamos a um mundo onde em vez de 99% da atividade estar em L2, 90% da atividade está em L2, 90% da atividade está em L2, e, portanto, o resultado parece quase o mesmo, exceto por uma perda irreversível de muito do que torna o Ethereum L1 especial.
Uma visão proposta de uma "divisão do trabalho" entre L1 e L2s, fonte.
Trazer mais usuários para L1 implica em melhorar não apenas a escala, mas também outros aspectos de L1. Isso significa que mais MEV permanecerá em L1 (ao invés de se tornar um problema apenas para L2s), e assim será ainda mais necessário lidar explicitamente com isso. Isso aumenta consideravelmente o valor de ter tempos de slot rápidos em L1. E também depende fortemente da verificação de L1 ("a Verge") correndo bem.
Partager
No início, o Ethereum tinha duas estratégias de dimensionamento em seu roteiro. Uma (por exemplo, vereste artigo iniciala partir de 2015) foi o “sharding”: em vez de verificar e armazenar todas as transações na cadeia, cada nó precisaria apenas verificar e armazenar uma pequena fração das transações. É assim que qualquer outra rede peer-to-peer (por exemplo, BitTorrent) funciona também, então certamente poderíamos fazer com que as blockchains funcionassem da mesma maneira. Outra foi protocolos de camada 2: redes que ficariam em cima do Ethereum de uma forma que lhes permitisse aproveitar totalmente sua segurança, enquanto mantêm a maior parte dos dados e computação fora da cadeia principal. “Protocolos de camada 2” significavacanais de estadoem 2015, Plasmaem 2017 e depoisrollupsEm 2019. Rollups são mais poderosos do que canais de estado ou Plasma, mas exigem uma grande quantidade de largura de banda de dados on-chain. Felizmente, até 2019, a pesquisa de fragmentação havia resolvidoo problema de verificar a 'disponibilidade de dados' em escala. Como resultado, os dois caminhos convergiram e conseguimos o roadmap centrado em rollupque continua a ser a estratégia de escalonamento da Ethereum hoje.
The Surge, edição do roteiro de 2023.
A rota centrada no rollup propõe uma simples divisão de trabalho: o Ethereum L1 se concentra em ser uma camada de base robusta e descentralizada, enquanto os L2s assumem a tarefa de ajudar o ecossistema a escalar. Este é um padrão que se repete em toda a sociedade: o sistema judicial (L1) não está lá para ser ultra-rápido e eficiente, está lá para proteger contratos e direitos de propriedade, e cabe aos empreendedores (L2) construir em cima disso.robustobasecamadae levar a humanidade a Marte (metafórica e literalmente).
Este ano, o roadmap centrado no rollup viu sucessos importantes: a largura de banda de dados do Ethereum L1 aumentou consideravelmente com EIP-4844 blobs, e vários rollups EVM agora são na etapa 1. Um muito implementação heterogênea e pluralística de fragmentação, onde cada L2 atua como um “fragmento” com suas próprias regras e lógica interna, é agora realidade. Mas, como vimos, seguir por este caminho apresenta desafios únicos. Portanto, agora nossa tarefa é concluir o roadmap centrado em rollup e resolver esses problemas, preservando a robustez e a descentralização que tornam o Ethereum L1 especial.
O trilema de escalabilidade era uma ideia introduzido em 2017, que argumentou que existe uma tensão entre três propriedades de uma blockchain: descentralização (mais especificamente: baixo custo para executar um nó), escalabilidade (mais especificamente: alto número de transações processadas) e segurança (mais especificamente: um atacante precisando corromper uma grande parte dos nós em toda a rede para fazer com que uma única transação falhe).
Vale ressaltar que o trilema não é um teorema, e o post que introduziu o trilema não veio com uma prova matemática. Ele deu um argumento matemático heurístico: se um nó amigável à descentralização (por exemplo, um laptop de consumidor) pode verificar N transações por segundo, e você tem uma cadeia que processa k*N transações por segundo, então ou (i) cada transação é vista apenas por 1/k dos nós, o que implica que um atacante só precisa corromper alguns nós para passar uma transação ruim, ou (ii) seus nós serão robustos e sua cadeia não será descentralizada. O objetivo do post nunca foi mostrar que quebrar o trilema é impossível; pelo contrário, foi mostrar que quebrar o trilema é difícil - requer de alguma forma pensar fora da caixa que o argumento implica.
Por muitos anos, tem sido comum que algumas cadeias de alto desempenho afirmem resolver o trilema sem fazer nada inteligente em um nível de arquitetura fundamental, geralmente usando truques de engenharia de software para otimizar o nó. Isso é sempre enganoso, e executar um nó em tais cadeias sempre acaba sendo muito mais difícil do que no Ethereum.Esta postagementra em algumas das muitas sutilezas que explicam por que isso acontece (e, portanto, por que a engenharia de software do cliente L1 sozinha não pode escalar o Ethereum em si).
No entanto, a combinação de amostragem de disponibilidade de dados e SNARKs resolve o trilema: permite a um cliente verificar que alguma quantidade de dados está disponível e que algum número de etapas de computação foi realizado corretamente, enquanto baixa apenas uma pequena parte desses dados e executa uma quantidade muito menor de computação. SNARKs são sem confiança. A amostragem de disponibilidade de dados possui uma nuance modelo de confiança few-of-N, mas preserva a propriedade fundamental que as cadeias não escaláveis têm, ou seja, mesmo um ataque de 51% não pode forçar blocos ruins a serem aceitos pela rede.
Outra maneira de resolver o trilema são as arquiteturas Plasma, que usam técnicas inteligentes para transferir a responsabilidade de verificar a disponibilidade de dados para o usuário de maneira compatível com incentivos. De volta em 2017-2019, quando tudo o que tínhamos para dimensionar a computação eram provas de fraude, o Plasma era muito limitado no que podia fazer com segurança, mas a popularização dos SNARKs torna as arquiteturas Plasma muito mais viávelpara uma variedade maior de casos de uso do que antes.
A partir de 13 de março de 2024, quando o Atualização DencunDesde que foi ao ar, a blockchain do Ethereum tem três ~125 kB "blobs" por intervalo de 12 segundos, ou ~375 kB por intervalo de largura de banda de disponibilidade de dados. Supondo que os dados da transação sejam publicados diretamente onchain, uma transferência ERC20 é ~180 bytes, e assim o TPS máximo de rollups no Ethereum é:
375000 / 12 / 180 = 173.6 TPS
Se adicionarmos os calldatas do Ethereum (máximo teórico: 30 milhões de gás por slot / 16 gás por byte = 1.875.000 bytes por slot), isso se torna 607 TPS. Com o PeerDAS, o plano é aumentar a meta do número de blocos para 8-16, o que nos daria 463-926 TPS em calldata.
Este é um aumento significativo em relação ao Ethereum L1, mas não é suficiente. Queremos muito mais escalabilidade. Nosso objetivo de médio prazo é de 16 MB por slot, o que, combinado com melhorias na compressão de dados do rollup, nos daria ~58.000 TPS.
PeerDAS é uma implementação relativamente simples de “amostragem 1D”. Cada blob no Ethereum é um polinômio de grau 4096 sobre um campo primo de 253 bits. Transmitimos “ações” do polinômio, onde cada ação consiste em 16 avaliações em 16 coordenadas adjacentes tiradas de um conjunto total de 8192 coordenadas. Qualquer 4096 das 8192 avaliações (com os parâmetros propostos atuais: qualquer 64 das 128 amostras possíveis) podem recuperar o blob.
O PeerDAS funciona fazendo com que cada cliente escute em um pequeno número de sub-redes, onde a sub-rede i transmite a i-ésima amostra de qualquer blob, e adicionalmente solicita blobs em outras sub-redes que precisa pedindo aos seus pares na rede p2p global (que estariam escutando em sub-redes diferentes). Uma versão mais conservadora,SubnetDAS, usa apenas o mecanismo de sub-rede, sem a camada adicional de pares de pergunta. Uma proposta atual é que os nós que participam da prova de participação usem o SubnetDAS e para outros nós (ou seja. "clients") para usar o PeerDAS.
Teoricamente, podemos dimensionar a amostragem 1D bastante longe: se aumentarmos o número máximo de blobs para 256 (portanto, o alvo para 128), então chegaríamos ao nosso alvo de 16 MB, enquanto a amostragem de disponibilidade de dados custaria apenas 16 amostras para cada nó128 blobs512 bytes por amostra por bloco = 1 MB de largura de banda de dados por slot. Isso está quase dentro de nossa tolerância: é viável, mas significaria que clientes com restrição de largura de banda não podem amostrar. Poderíamos otimizar isso um pouco diminuindo a contagem de blocos e aumentando o tamanho do bloco, mas isso tornaria a reconstrução mais cara.
E assim, em última análise, queremos ir mais longe e fazeramostragem 2D, que funciona por amostragem aleatória não apenas dentro de blobs, mas também entre blobs. As propriedades lineares dos compromissos KZG são usadas para 'estender' o conjunto de blobs em um bloco com uma lista de novos 'blobs virtuais' que codificam redundante a mesma informação.
Amostragem 2D. Fonte: a16z cripto
É crucial, a computação da extensão dos compromissos não requer ter os blobs, então o esquema é fundamentalmente amigável à construção de blocos distribuídos. O nó que realmente está construindo o bloco só precisaria ter os compromissos do blob KZG, e pode contar com o DAS para verificar a disponibilidade dos blobs. 1D DAS também é inerentemente amigável à construção de blocos distribuídos.
O próximo passo imediato é concluir a implementação e o lançamento do PeerDAS. A partir daí, é uma moagem progressiva para continuar aumentando a contagem de blocos no PeerDAS enquanto observamos cuidadosamente a rede e melhoramos o software para garantir a segurança. Ao mesmo tempo, queremos mais trabalhos acadêmicos para formalizar o PeerDAS e outras versões do DAS e suas interações com questões como a segurança da regra de escolha de fork.
Mais para o futuro, precisamos de muito mais trabalho para descobrir a versão ideal do 2D DAS e provar suas propriedades de segurança. Também queremos eventualmente migrar do KZG para uma alternativa resistente ao quantum e sem configuração confiável. Atualmente, não conhecemos candidatos que sejam amigáveis à construção de blocos distribuídos. Mesmo a cara técnica de "força bruta" de usar STARKs recursivos para gerar provas de validade para reconstruir linhas e colunas não é suficiente, porque enquanto tecnicamente um STARK é O(log(n) * log(log(n)) hashes em tamanho (com STIR) Na prática, um STARK é quase tão grande quanto um blob inteiro.
Os caminhos realistas que vejo a longo prazo são:
Podemos vê-los ao longo de um espectro de compensação:
Observe que essa escolha existe mesmo se decidirmos escalar a execução no L1 diretamente. Isso ocorre porque, se o L1 processar muitos TPS, os blocos do L1 se tornarão muito grandes, e os clientes desejarão uma maneira eficiente de verificar se estão corretos, então teríamos que usar a mesma tecnologia que alimenta os rollups (ZK-EVM e DAS) no L1.
A necessidade de DAS 2D é um pouco reduzida, ou pelo menos adiada, se a compressão de dados (ver abaixo) for implementada, e é ainda mais reduzida se o Plasma for amplamente utilizado. DAS também representa um desafio para os protocolos e mecanismos de construção de blocos distribuídos: embora o DAS seja teoricamente amigável para a reconstrução distribuída, isso precisa ser combinado na prática comlista de inclusãopropostas e sua mecânica de escolha de fork circundante.
Cada transação em um rollup ocupa uma quantidade significativa de espaço de dados onchain: uma transferência ERC20 ocupa cerca de 180 bytes. Mesmo com amostragem ideal de disponibilidade de dados, isso coloca um limite na escalabilidade dos protocolos de camada 2. Com 16 MB por slot, temos:
16000000 / 12 / 180 = 7407 TPS
E se, além de lidar com o numerador, também pudermos lidar com o denominador e fazer com que cada transação em um rollup ocupe menos bytes na cadeia?
A melhor explicação, na minha opinião, é este diagramade dois anos atrás:
Os ganhos mais simples são apenas compressão de bytes zero: substituindo cada sequência longa de bytes zero por dois bytes representando quantos bytes zero existem. Para avançar, aproveitamos as propriedades específicas das transações:
A principal coisa que resta a fazer é realmente implementar os esquemas acima. As principais compensações são:
A adoção do ERC-4337 e, eventualmente, a consagração de partes dele nos L2 EVMs, pode acelerar muito a implantação de técnicas de agregação. A consagração de partes do ERC-4337 no L1 pode acelerar sua implantação nos L2s.
Mesmo com blobs de 16 MB e compressão de dados, 58.000 TPS não é necessariamente suficiente para assumir totalmente os pagamentos do consumidor, redes sociais descentralizadas ou outros setores de alta largura de banda, e isso se torna especialmente verdadeiro se começarmos a levar em consideração a privacidade, o que poderia reduzir a escalabilidade em 3-8x. Para aplicações de alto volume e baixo valor, uma opção hoje é um Validade, que mantém os dados fora da cadeia e possui um modelo de segurança interessante onde o operador não pode roubar os fundos dos usuários, mas eles podem desaparecer e congelar temporariamente ou permanentemente todos os fundos dos usuários. Mas podemos fazer melhor.
Plasma é uma solução de escalabilidade que envolve um operador publicando blocos offchain e colocando as raízes de Merkle desses blocos onchain (ao contrário dos rollups, onde o bloco completo é colocado onchain). Para cada bloco, o operador envia para cada usuário um ramo de Merkle provando o que aconteceu, ou não aconteceu, com os ativos desse usuário. Os usuários podem retirar seus ativos fornecendo um ramo de Merkle. Importante, esse ramo não precisa estar enraizado no estado mais recente - por esse motivo, mesmo se a disponibilidade de dados falhar, o usuário ainda pode recuperar seus ativos ao retirar o estado mais recente que possuem disponível. Se um usuário enviar um ramo inválido (por exemplo, saindo de um ativo que já enviou para outra pessoa, ou o próprio operador criando um ativo do nada), um mecanismo de desafio onchain pode adjudicar a quem o ativo pertence legitimamente.
Um diagrama de uma cadeia de Plasma Cash. As transações que gastam a moeda i são colocadas na posição i na árvore. Neste exemplo, assumindo que todas as árvores anteriores são válidas, sabemos que Eve atualmente possui a moeda 1, David possui a moeda 4 e George possui a moeda 6.
As primeiras versões do Plasma só conseguiam lidar com o caso de uso de pagamentos e não conseguiam generalizar efetivamente além disso. Se exigirmos que cada raiz seja verificada com um SNARK, no entanto, o Plasma se torna muito mais poderoso. Cada jogo de desafio pode ser significativamente simplificado, pois eliminamos a maioria dos caminhos possíveis para o operador trapacear. Novos caminhos também se abrem para permitir que técnicas do Plasma sejam estendidas a uma classe de ativos muito mais geral. Finalmente, no caso em que o operador não trapaceia, os usuários podem sacar seus fundos instantaneamente, sem precisar esperar por um período de desafio de uma semana.
Uma maneira (não a única maneira) de criar uma cadeia de plasma EVM: usar um ZK-SNARK para construir uma árvore UTXO paralela que reflete as alterações de saldo feitas pelo EVM e define um mapeamento único do que é 'a mesma moeda' em diferentes pontos da história. Uma construção de Plasma pode então ser construída em cima disso.
Uma visão fundamental é que o sistema Plasma não precisa ser perfeito. Mesmo que você só consiga proteger um subconjunto de ativos (por exemplo, até mesmo moedas que não se moveram na semana passada), você já melhorou significativamente o status quo do EVM altamente escalável, que é um validium válido.
Outra classe de construções é o plasma/rollups híbridos, como Intmax. Essas construções colocam uma quantidade muito pequena de dados por usuário onchain (por exemplo, 5 bytes), e ao fazer isso, obtêm propriedades que estão em algum lugar entre plasma e rollups: no caso do Intmax, você obtém um nível muito alto de escalabilidade e privacidade, embora mesmo no mundo de 16 MB a capacidade seja teoricamente limitada a aproximadamente 16.000.000 / 12 / 5 = 266.667 TPS.
A principal tarefa restante é levar os sistemas Plasma para produção. Como mencionado anteriormente, “plasma vs validium” não é binário: qualquer validium pode ter suas propriedades de segurança melhoradas pelo menos um pouco ao adicionar características do Plasma ao mecanismo de saída. A parte de pesquisa está em obter propriedades ótimas (em termos de requisitos de confiança, custo de gás L1 caso extremo e vulnerabilidade a DoS) para um EVM, bem como construções específicas de aplicativo alternativas. Além disso, a maior complexidade conceitual do Plasma em relação aos rollups precisa ser abordada diretamente, tanto por meio de pesquisa quanto pela construção de estruturas generalizadas melhores.
A principal compensação ao usar os designs da Plasma é que eles dependem mais dos operadores e são mais difíceis de fazer.”baseadoEmbora os designs híbridos de plasma/rollup frequentemente consigam evitar essa fraqueza.
Quanto mais eficazes forem as soluções de Plasma, menos pressão haverá para que o L1 tenha uma funcionalidade de disponibilidade de dados de alto desempenho. A transferência de atividades para o L2 também reduz a pressão MEV no L1.
Hoje, a maioria dos rollups ainda não é realmente confiável; existe um conselho de segurança que tem a capacidade de anular o comportamento do (otimista ou válido)sistema de provaEm alguns casos, o sistema de prova nem sequer está ativo, ou se estiver, possui apenas uma funcionalidade "consultiva". Os mais avançados são (i) alguns rollups específicos de aplicativos, como o Fuel, que são sem confiança, e (ii) no momento desta escrita, Optimism e Arbitrum, dois rollups completos da EVM que alcançaram um marco de parcial falta de confiança conhecido como "estágio 1". A razão pela qual os rollups não avançaram mais é a preocupação com bugs no código. Precisamos de rollups sem confiança, e, portanto, precisamos enfrentar esse problema de frente.
Primeiro, vamos recapitular o sistema de "estágio", originalmente introduzido emesta postagemExistem requisitos mais detalhados, mas o resumo é:
O objetivo é atingir a Etapa 2. O principal desafio em alcançar a etapa 2 é obter confiança suficiente de que o sistema de prova é realmente confiável o bastante. Existem duas maneiras principais de fazer isso:
Diagrama estilizado de um multi-provador, combinando um sistema de prova otimista, um sistema de prova de validade e um conselho de segurança.
Para verificação formal, muito. Precisamos criar uma versão formalmente verificada de um provador SNARK inteiro de um EVM. Este é um projeto incrivelmente complexo, embora seja um projeto que nós já começamosExiste um truque que simplifica significativamente a tarefa: podemos criar um verificador SNARK formalmente verificado de uma VM mínima, por exemplo.RISC-VouCairo, e então escreva uma implementação do EVM nesse VM mínimo (e prove formalmente sua equivalência a alguma outra especificação do EVM).
Para múltiplos provadores, existem duas peças principais restantes. Primeiro, precisamos ter confiança suficiente em pelo menos dois sistemas de prova diferentes, tanto que sejam razoavelmente seguros individualmente, quanto que se eles falharem, falhariam por razões diferentes e não relacionadas (e assim não falhariam ao mesmo tempo). Em segundo lugar, precisamos obter um nível muito alto de garantia na lógica subjacente que mescla os sistemas de prova. Esta é uma parte muito menor do código. Existem maneiras de torná-lo extremamente pequeno - apenas armazenar fundos em um Contrato multisig segurocuja assinatura são contratos representando sistemas de prova individuais - mas isso tem o tradeoff de altos custos de gás onchain. Será necessário encontrar um equilíbrio entre eficiência e segurança.
Transferir a atividade para L2 reduz a pressão de MEV em L1.
Um dos principais desafios do ecossistema L2 hoje é que é difícil para os usuários navegar. Além disso, as maneiras mais fáceis de fazê-lo muitas vezes reintroduzem suposições de confiança: pontes centralizadas, clientes RPC e assim por diante. Se estamos falando sério sobre a ideia de que os L2s fazem parte do Ethereum, precisamos fazer com que o uso do ecossistema L2 pareça usar um ecossistema Ethereum unificado.
Um exemplo de experiência de usuário cruzada entre L2 patologicamente ruim (e até perigosa: pessoalmente perdi $100 devido a um erro de seleção de cadeia aqui) - embora isso não seja culpa do Polymarket, a interoperabilidade entre L2 deve ser responsabilidade das carteiras e da comunidade de padrões Ethereum (ERC). Em um ecossistema Ethereum bem funcional, enviar moedas do L1 para o L2, ou de um L2 para outro, deve ser tão simples quanto enviar moedas dentro do mesmo L1.
Existem muitas categorias de melhorias de interoperabilidade cruzada entre L2. Em geral, a maneira de chegar a elas é perceber que, na teoria, um Ethereum centrado em rollup é a mesma coisa que shard de execução L1, e depois perguntar onde o atual L2-verse do Ethereum fica aquém desse ideal na prática. Aqui estão alguns:
Como um cliente leve pode atualizar sua visão da cadeia de cabeçalhos do Ethereum. Depois de ter a cadeia de cabeçalhos, você pode usar provas de Merkle para validar qualquer objeto de estado. E uma vez que você tem os objetos de estado corretos L1, você pode usar provas de Merkle (e possivelmente assinaturas, se você quiser verificar pré-confirmações) para validar qualquer objeto de estado em L2. Helios já faz o primeiro. Estender para o último é um desafio de padronização.
Um diagrama estilizado de como as carteiras de keystore funcionam.
Muitos dos exemplos acima enfrentam dilemas padrão sobre quando padronizar e em quais camadas padronizar. Se você padronizar muito cedo, corre o risco de consolidar uma solução inferior. Se você padronizar muito tarde, corre o risco de criar fragmentação desnecessária. Em alguns casos, há tanto uma solução de curto prazo que tem propriedades mais fracas, mas é mais fácil de implementar, quanto uma solução de longo prazo que é "em última instância correta", mas levará alguns anos para chegar lá.
Uma maneira pela qual esta seção é única, é que essas tarefas não são apenas problemas técnicos: são também (talvez até principalmente!) problemas sociais. Eles exigem que as L2s e carteiras e L1 cooperem. Nossa capacidade de lidar com esse problema com sucesso é um teste de nossa capacidade de permanecer unidos como comunidade.
A maioria dessas propostas são construções de “camada superior” e, portanto, não afetam muito as considerações da L1. Uma exceção é a sequenciação compartilhada, que tem grandes impactos no MEV.
Se os L2s se tornarem muito escaláveis e bem-sucedidos, mas o L1 continuar capaz de processar apenas um volume muito baixo de transações, existem muitos riscos para o Ethereum que podem surgir:
Por essas razões, é valioso continuar escalando o L1 em si e garantir que ele possa continuar acomodando um número crescente de usos.
A maneira mais fácil de escalar é simplesmente aumentar o limite de gás. No entanto, isso arrisca a centralização do L1, enfraquecendo assim a outra propriedade importante que torna o Ethereum L1 tão poderoso: sua credibilidade como uma camada base robusta. Há um debate em andamento sobre qual grau de aumento simples do limite de gás é sustentável, e isso também muda com base em quais outras tecnologias são implementadas para tornar blocos maiores mais fáceis de verificar (por exemplo, expiração de histórico, estado sem estado, provas de validade do L1 EVM). Outra coisa importante a melhorar é simplesmente a eficiência do software do cliente Ethereum, que hoje está muito mais otimizado do que era há cinco anos. Uma estratégia eficaz de aumento do limite de gás do L1 envolveria acelerar essas tecnologias de verificação.
Outra estratégia de escalonamento envolve a identificação de recursos e tipos específicos de computação que podem ser barateados sem prejudicar a descentralização da rede ou suas propriedades de segurança. Exemplos disso incluem:
Essas melhorias serão discutidas com mais detalhes em um post futuro no Splurge.
Finalmente, uma terceira estratégia são os rollups nativos (ou "rollups consagrados"): essencialmente, criando muitas cópias do EVM que funcionam em paralelo, levando a um modelo que é equivalente ao que os rollups podem fornecer, mas muito mais integrado de forma nativa no protocolo.
Existem três estratégias para escalonamento L1, que podem ser seguidas individualmente ou em paralelo:
Vale a pena entender que essas são técnicas diferentes que têm compensações diferentes. Por exemplo, os rollups nativos têm muitas das mesmas fraquezas na composabilidade que os rollups regulares: você não pode enviar uma única transação que execute sincronamente operações em muitos deles, como você pode com contratos no mesmo L1 (ou L2). Aumentar o limite de gás tira outros benefícios que podem ser alcançados tornando o L1 mais fácil de verificar, como aumentar a parcela de usuários que executam nós verificadores e aumentar os stakers solos. Tornar operações específicas no EVM mais baratas, dependendo de como é feito, pode aumentar a complexidade total do EVM.
Uma grande pergunta que qualquer roadmap de escala L1 precisa responder é: qual é a visão final para o que pertence a L1 e o que pertence a L2? Claramente, é absurdo que tudo vá em L1: os casos de uso potenciais vão para as centenas de milhares de transações por segundo, e isso tornaria o L1 completamente inviável de verificar (a menos que sigamos a rota de rollup nativo). Mas precisamos de algum princípio orientador, para que possamos ter certeza de que não estamos criando uma situação em que aumentamos o limite de gás em 10x, prejudicamos fortemente a descentralização do Ethereum L1 e descobrimos que só chegamos a um mundo onde em vez de 99% da atividade estar em L2, 90% da atividade está em L2, 90% da atividade está em L2, e, portanto, o resultado parece quase o mesmo, exceto por uma perda irreversível de muito do que torna o Ethereum L1 especial.
Uma visão proposta de uma "divisão do trabalho" entre L1 e L2s, fonte.
Trazer mais usuários para L1 implica em melhorar não apenas a escala, mas também outros aspectos de L1. Isso significa que mais MEV permanecerá em L1 (ao invés de se tornar um problema apenas para L2s), e assim será ainda mais necessário lidar explicitamente com isso. Isso aumenta consideravelmente o valor de ter tempos de slot rápidos em L1. E também depende fortemente da verificação de L1 ("a Verge") correndo bem.