No início, o Ethereum tinha duas estratégias de escalonamento no seu roteiro. Uma (por exemplo, ver este artigo inicial de 2015) foi "sharding": em vez de verificar e armazenar todas as transações na cadeia, cada nó só precisaria verificar e armazenar uma pequena fração das transações. É assim que qualquer outra rede peer-to-peer (por exemplo. BitTorrent) também funciona, então certamente poderíamos fazer com que os blockchains funcionassem da mesma maneira. Outro eram os protocolos de camada 2: redes que ficariam em cima do Ethereum de uma forma que lhes permitisse se beneficiar totalmente de sua segurança, mantendo a maioria dos dados e computação fora da cadeia principal. "Protocolos de camada 2" significava canais de estadoem 2015, Plasma em 2017, e depois rollupsem 2019. Os Rollups são mais poderosos do que os canais de estado ou o Plasma, mas requerem uma grande quantidade de largura de banda de dados on-chain. Felizmente, em 2019, a pesquisa de fragmentação tinha resolvidoo problema de verificar a "disponibilidade de dados" em escala. Como resultado, os dois caminhos convergiram e obtivemos o roadmap centrado em rollupque continua a ser a estratégia de escalonamento da Ethereum hoje.
A subida, edição do roteiro de 2023.
O roadmap centrado em rollup propõe uma divisão simples do trabalho: o Ethereum L1 concentra-se 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 judiciário (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 dissorobustobasecamadae levar a humanidade a Marte (de forma metafórica e literal).
Este ano, o roadmap centrado em rollups viu sucessos importantes: a largura de banda de dados do Ethereum L1 aumentou consideravelmente comEIP-4844 blobs, e várias soluções de escalonamento de EVM estão agora na fase 1. A very implementação heterogênea e pluralista de shardagem, onde cada L2 age como um “shard” com suas próprias regras e lógica interna, é agora uma realidade. Mas, como vimos, seguir este caminho tem desafios únicos. E assim, agora nossa tarefa é concluir o roadmap centrado em rollup e resolver esses problemas, ao mesmo tempo que preservamos a robustez e a descentralização que tornam o Ethereum L1 especial.
O trilema da escalabilidade era uma ideiaintroduzido em 2017, que argumentou que há 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 falhar mesmo uma única transação).
De notar que o trilema não é um teorema, e o post que introduz o trilema não veio com uma prova matemática. Deu, de facto, um argumento matemático heurístico: se um nó amigável à descentralização (por exemplo, um portátil de consumidor) pode verificar N transações por segundo, e temos 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 de corromper alguns nós para fazer passar uma transação má, ou (ii) os seus nós terão de ser robustos e a sua cadeia não 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.
Durante muitos anos, tem sido comum que algumas cadeias de alto desempenho afirmem que resolvem o trilema sem fazer nada de inteligente a nível de arquitetura fundamental, normalmente usando truques de engenharia de software para otimizar o nó. Isso é sempre enganador, e executar um nó em tais cadeias acaba sempre sendo muito mais difícil do que no Ethereum.Esta publicaçãoentra em algumas das muitas sutilezas por que isso acontece (e, portanto, por que o próprio engenharia de software do cliente L1 não pode escalar o Ethereum sozinho).
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 passos de computação foi realizado corretamente, enquanto faz o download de 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 tem um caráter sutil modelo de confiança de alguns-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 que blocos inválidos sejam aceites pela rede.
Outra forma de resolver o trilema é através das arquiteturas de Plasma, que utilizam técnicas inteligentes para transferir a responsabilidade de verificar a disponibilidade de dados para o utilizador de uma forma compatível com incentivos. Entre 2017 e 2019, quando tudo o que tínhamos para escalar a computação eram provas de fraude, o Plasma tinha limitações no que podia fazer com segurança, mas a popularização dos SNARKs torna as arquiteturas de Plasma muito mais viávelpara uma gama mais ampla de casos de uso do que antes.
A partir de 13 de março de 2024, quando o Atualização DencunDesde que entrou em funcionamento, a blockchain Ethereum tem três "blobs" de cerca de 125 kB por intervalo de 12 segundos, ou cerca de 375 kB por intervalo de largura de banda de disponibilidade de dados. Pressupondo que os dados da transação sejam publicados diretamente na cadeia, uma transferência ERC20 tem cerca de 180 bytes, portanto, a TPS máxima de rollups na 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 o alvo de contagem de blob para 8-16, o que nos daria 463-926 TPS em calldatas.
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 “partilhas” do polinómio, onde cada partilha consiste em 16 avaliações em 16 coordenadas adjacentes retiradas de um conjunto total de 8192 coordenadas. Qualquer conjunto de 4096 das 8192 avaliações (com os parâmetros propostos atuais: qualquer conjunto de 64 das 128 amostras possíveis) pode recuperar o blob.
PeerDAS funciona tendo cada cliente a ouvir um pequeno número de sub-redes, onde a i-ésima sub-rede transmite a i-ésima amostra de qualquer blob, e adicionalmente solicita blobs em outras sub-redes que necessita, perguntando aos seus pares na rede p2p global (que estariam a ouvir sub-redes diferentes). Uma versão mais conservadora, SubnetDAS, usa apenas o mecanismo de sub-rede, sem a camada adicional de perguntar aos pares. Uma proposta atual é que os nós que participam do sistema de prova de participação usem SubnetDAS e que outros nós (ou seja, "clientes") usem PeerDAS.
Teoricamente, podemos escalar a amostragem 1D bastante longe: se aumentarmos o número máximo de blobs para 256 (assim, 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 a cada nó128 blobs512 bytes por amostra por bloco = 1 MB de largura de banda de dados por slot. Isso está quase dentro da nossa tolerância: é possível, mas significaria que clientes com restrições 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 crypto
É crucial, do ponto de vista computacional, calcular a extensão dos compromissos não requer ter os blobs, portanto, o esquema é fundamentalmente amigável à construção de bloco distribuída. O nó que realmente está construindo o bloco só precisaria ter os compromissos de KZG de blob e pode confiar no DAS para verificar a disponibilidade dos blobs. O DAS é também inerentemente amigável à construção de bloco distribuída.
O próximo passo imediato é concluir a implementação e lançamento do PeerDAS. A partir daí, é uma luta progressiva para continuar aumentando o número de blobs no PeerDAS, enquanto observamos cuidadosamente a rede e melhoramos o software para garantir a segurança. Ao mesmo tempo, queremos mais trabalho acadêmico na formalização do 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 as suas propriedades de segurança. Também queremos eventualmente migrar do KZG para uma alternativa resistente a quântica, sem configuração confiável. Atualmente, não conhecemos candidatos que sejam amigáveis para a construção de blocos distribuídos. Mesmo a técnica cara de "força bruta" de usar STARKs recursivos para gerar provas de validade para reconstruir linhas e colunas não é suficiente, porque tecnicamente um STARK é do tamanho de O(log(n) * log(log(n)) hashes (comSTIR) Na prática, um STARK é quase tão grande quanto um bloco inteiro.
Os caminhos realistas que vejo a longo prazo são:
Podemos ver esses ao longo de um espectro de trade-off:
Note que essa escolha existe mesmo se decidirmos escalar a execução na L1 diretamente. Isso ocorre porque se a L1 tiver que processar muitas TPS, os blocos da L1 se tornarão muito grandes, e os clientes vão querer uma maneira eficiente de verificar que estão corretos, então teríamos que usar a mesma tecnologia que alimenta os rollups (ZK-EVM e DAS) na L1.
A necessidade de 2D DAS é 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 coloca um desafio aos protocolos e mecanismos de construção de blocos distribuídos: embora o DAS seja teoricamente favorável à reconstrução distribuída, isso precisa ser combinado na prática com Lista de inclusãopropostas e suas mecânicas 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 limita a escalabilidade dos protocolos de camada 2. Com 16 MB por slot, obtemos:
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 diagramahá dois anos:
Os ganhos mais simples são apenas compressão de zero byte: substituindo cada sequência longa de zero bytes por dois bytes que representam quantos zero bytes existem. Para ir mais longe, aproveitamos as propriedades específicas das transações:
A principal coisa que resta fazer é implementar realmente os esquemas acima. Os principais compromissos são:
A adoção do ERC-4337, e eventualmente a consagração de partes dele nos L2 EVMs, pode acelerar grandemente 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 dos consumidores, as redes sociais descentralizadas ou outros setores de alta largura de banda, e isso se torna especialmente verdadeiro se começarmos a considerar a privacidade, o que poderia reduzir a escalabilidade em 3-8x. Para aplicações de alto volume e baixo valor, uma opção hoje é validium, que mantém os dados fora da cadeia e tem 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.
O Plasma é uma solução de escalabilidade que envolve um operador a publicar blocos offchain e a colocar 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 a cada utilizador um ramo de Merkle que prova o que aconteceu, ou não aconteceu, com os ativos desse utilizador. Os utilizadores podem levantar os seus ativos fornecendo um ramo de Merkle. Importante, este ramo não tem de estar enraizado no estado mais recente - por esta razão, mesmo que a disponibilidade de dados falhe, o utilizador ainda pode recuperar os seus ativos ao levantar o estado mais recente que têm disponível. Se um utilizador submeter um ramo inválido (por exemplo, sair de um ativo que já enviou para outra pessoa, ou o operador criar um ativo do nada), um mecanismo de desafio onchain pode decidir a quem pertence o ativo legítimamente.
Um diagrama de uma cadeia de Plasma Cash. Transações que gastam a moeda i são colocadas na i-ésima posição na árvore. Neste exemplo, assumindo que todas as árvores anteriores são válidas, sabemos que a Eve atualmente possui a moeda 1, David possui a moeda 4 e George possui a moeda 6.
As primeiras versões do Plasma apenas conseguiam lidar com o caso de uso de pagamentos e não conseguiam generalizar eficazmente mais além. No entanto, se exigirmos que cada raiz seja verificada com um SNARK, o Plasma torna-se 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 as técnicas do Plasma sejam estendidas a uma classe muito mais geral de ativos. Finalmente, no caso em que o operador não trapaceia, os utilizadores podem retirar os seus fundos instantaneamente, sem precisar de esperar por um período de desafio de uma semana.
Uma forma (não a única forma) de criar uma cadeia de plasma EVM: usar um ZK-SNARK para construir uma árvore paralela UTXO que reflete as alterações de saldo feitas pelo EVM, e define um mapeamento único do que é “a mesma moeda” em diferentes momentos 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, mesmo apenas moedas que não se moveram na última semana), você já melhorou significativamente o status quo do EVM ultra-escalável, que é um validium válido.
Outra classe de construções são os híbridos plasma/rollups, como Intmax. Estas construções colocam uma quantidade muito pequena de dados por utilizador onchain (por exemplo, 5 bytes) e, ao fazê-lo, obtêm propriedades que estão em algum lugar entre plasma e rollups: no caso do Intmax, obtém-se um nível muito elevado de escalabilidade e privacidade, embora mesmo no mundo de 16 MB, a capacidade seja teoricamente limitada a cerca de 16.000.000 / 12 / 5 = 266.667 TPS.
A principal tarefa restante é levar os sistemas de Plasma para a produção. Como mencionado acima, "plasma vs validium" não é um binário: qualquer validium pode ter suas propriedades de segurança melhoradas pelo menos um pouco, adicionando recursos de Plasma ao mecanismo de saída. A parte da pesquisa está em obter propriedades ótimas (em termos de requisitos de confiança, custo de gás L1 no pior caso e vulnerabilidade a DoS) para um EVM, bem como construções alternativas específicas da aplicação. Além disso, a maior complexidade conceitual do Plasma em relação aos rollups precisa ser abordada diretamente, tanto através da pesquisa quanto através da construção de estruturas generalizadas melhores.
O principal compromisso 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 possam frequentemente 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 atividade para L2 também reduz a pressão do MEV no L1.
Atualmente, 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 de validade)sistema de prova. Em alguns casos, o sistema de prova nem sequer está ativo, ou se estiver, tem apenas uma funcionalidade de “advisory”. 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, o Optimism e o Arbitrum, dois rollups completos da EVM que alcançaram um marco de parcial sem confiança conhecido como “stage 1”. A razão pela qual os rollups não foram mais longe é 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 “palco”, originalmente introduzido emesta publicação. Existem requisitos mais detalhados, mas o resumo é:
O objetivo é alcançar o Estágio 2. O principal desafio em alcançar o estágio 2 é obter confiança suficiente de que o sistema de prova realmente é confiável o suficiente. Existem duas maneiras principais de fazer isso:
Diagrama estilizado de um multi-provedor, 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 que já começamos. Existe um truque que simplifica significativamente a tarefa: podemos fazer um verificador SNARK formalmente verificado de uma VM mínima, por exemplo. RISC-VouCairo, e depois escrever uma implementação do EVM nesse VM mínimo (e provar formalmente sua equivalência a alguma outra especificação EVM).
Para multi-provadores, há duas peças principais restantes. Primeiro, precisamos ter confiança suficiente em pelo menos dois sistemas de prova diferentes, ambos de que eles são razoavelmente seguros individualmente e que, se quebrarem, quebrariam por razões diferentes e não relacionadas (e, portanto, não quebrariam ao mesmo tempo). Em segundo lugar, precisamos de obter um nível muito elevado de garantia na lógica subjacente que funde os sistemas de prova. Este é um pedaço de código muito menor. Há maneiras de torná-lo extremamente pequeno - basta armazenar fundos em um Contrato multisig segurocujo signatários são contratos que representam sistemas de prova individuais - mas isso tem o compromisso de custos elevados 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, os métodos mais fáceis de fazer isso frequentemente reintroduzem suposições de confiança: pontes centralizadas, clientes RPC, e assim por diante. Se estamos realmente comprometidos com a ideia de que os L2s fazem parte do Ethereum, precisamos fazer com que usar o ecossistema L2 pareça estar a usar um ecossistema Ethereum unificado.
Um exemplo de uma experiência de utilizador transversalmente L2 patologicamente má (e até perigosa: pessoalmente perdi $100 devido a um erro de seleção de cadeia aqui) - embora não seja culpa da Polymarket, a interoperabilidade transversal L2 deve ser da responsabilidade das carteiras e da comunidade de padrões Ethereum (ERC). Num ecossistema Ethereum bem funcional, enviar moedas de L1 para L2, ou de um L2 para outro, deve sentir-se exatamente como enviar moedas dentro do mesmo L1.
Existem muitas categorias de melhorias de interoperabilidade cruzada-L2. Em geral, a maneira de chegar a isso é perceber que, teoricamente,um Ethereum centrado em rollup é a mesma coisa que shard de execução L1, e depois perguntar onde o atual L2-verse do Ethereum deixa a desejar 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ê tenha os objetos de estado corretos de L1, você pode usar provas de Merkle (e possivelmente assinaturas, se 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 funcionam as carteiras de keystore.
Muitos dos exemplos acima enfrentam dilemas padrão de quando padronizar e em que camadas padronizar. Se você padronizar muito cedo, corre o risco de enraizar 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 com propriedades mais fracas, mas mais fácil de implementar, quanto uma solução de longo prazo que é "ultimamente correta", mas levará alguns anos para chegar lá.
Uma forma pela qual esta secção é única, é que estas tarefas não são apenas problemas técnicos: são também (talvez até principalmente!) problemas sociais. Requerem que as L2s e as carteiras e as L1 cooperem. A nossa capacidade de lidar com este problema com sucesso é um teste à 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 de L1. Uma exceção é o sequenciamento compartilhado, que tem impactos pesados no MEV.
Se as L2 se tornarem muito escaláveis e bem-sucedidas, mas a L1 continuar capaz de processar apenas um volume muito baixo de transações, existem muitos riscos para o Ethereum que podem surgir:
Por estas razões, é valioso continuar a escalonar o L1 em si mesmo e garantir que ele possa continuar a acomodar um número crescente de usos.
A maneira mais fácil de dimensionar é simplesmente aumentar o limite de gás. No entanto, isso arrisca centralizar o L1 e, assim, enfraquecer a outra propriedade importante que torna o Ethereum L1 tão poderoso: sua credibilidade como uma camada base robusta. Existe um debate em curso sobre qual o 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 L1 EVM). Outra coisa importante a melhorar é simplesmente a eficiência do software cliente Ethereum, que hoje está muito mais otimizado do que há cinco anos. Uma estratégia eficaz de aumento do limite de gás L1 envolveria acelerar essas tecnologias de verificação.
Outra estratégia de dimensionamento envolve identificar características específicas e tipos de computação que podem ser tornados mais baratos sem prejudicar a descentralização da rede ou suas propriedades de segurança. Exemplos disso incluem:
Estas melhorias serão discutidas com mais detalhes numa futura publicação sobre o Splurge.
Finalmente, uma terceira estratégia são 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 nativamente no protocolo.
Existem três estratégias para escalonamento L1, que podem ser perseguidas individualmente ou em paralelo:
Vale a pena entender que estas são técnicas diferentes que têm compensações diferentes. Por exemplo, os rollups nativos têm muitas das mesmas fraquezas em termos de composabilidade que os rollups regulares: não pode enviar uma única transação que execute sincronamente operações em muitos deles, como pode com contratos no mesmo L1 (ou L2). Aumentar o limite de gás retira outros benefícios que podem ser alcançados tornando o L1 mais fácil de verificar, como aumentar a parte dos utilizadores que executam nós verificadores e aumentar os stakers a solo. Tornar operações específicas no EVM mais baratas, dependendo de como é feito, pode aumentar a complexidade total do EVM.
Uma grande questão que qualquer roteiro de escalonamento L1 precisa responder é: qual é a visão final do que pertence ao L1 e do que pertence ao L2? Claramente, é absurdo que tudo vá para o L1: os casos de uso potenciais chegam a centenas de milhares de transações por segundo, e isso tornaria o L1 completamente inviável de verificar (a menos que sigamos a rota nativa de rollup). Mas precisamos de algum princípio orientador, para garantir que não estamos criando uma situação em que aumentamos o limite de gás em 10 vezes, danificamos gravemente a descentralização do Ethereum L1 e descobrimos que apenas chegamos a um mundo onde, em vez de 99% da atividade estar no L2, 90% da atividade está no L2, e assim o resultado parece quase o mesmo, exceto por uma perda irreversível de grande parte do que torna o Ethereum L1 especial.
Uma visão proposta de uma "divisão do trabalho" entre L1 e L2s,fonte.
Trazer mais utilizadores para L1 implica não só melhorar a escala, mas também outros aspetos de L1. Significa que mais MEV permanecerá em L1 (em vez de se tornar um problema apenas para L2s) e, portanto, será ainda mais urgente lidar com isso de forma explícita. Aumenta significativamente o valor de ter tempos de slot rápidos em L1. E também depende fortemente da verificação de L1 ("a Verge") correr bem.
Пригласить больше голосов
No início, o Ethereum tinha duas estratégias de escalonamento no seu roteiro. Uma (por exemplo, ver este artigo inicial de 2015) foi "sharding": em vez de verificar e armazenar todas as transações na cadeia, cada nó só precisaria verificar e armazenar uma pequena fração das transações. É assim que qualquer outra rede peer-to-peer (por exemplo. BitTorrent) também funciona, então certamente poderíamos fazer com que os blockchains funcionassem da mesma maneira. Outro eram os protocolos de camada 2: redes que ficariam em cima do Ethereum de uma forma que lhes permitisse se beneficiar totalmente de sua segurança, mantendo a maioria dos dados e computação fora da cadeia principal. "Protocolos de camada 2" significava canais de estadoem 2015, Plasma em 2017, e depois rollupsem 2019. Os Rollups são mais poderosos do que os canais de estado ou o Plasma, mas requerem uma grande quantidade de largura de banda de dados on-chain. Felizmente, em 2019, a pesquisa de fragmentação tinha resolvidoo problema de verificar a "disponibilidade de dados" em escala. Como resultado, os dois caminhos convergiram e obtivemos o roadmap centrado em rollupque continua a ser a estratégia de escalonamento da Ethereum hoje.
A subida, edição do roteiro de 2023.
O roadmap centrado em rollup propõe uma divisão simples do trabalho: o Ethereum L1 concentra-se 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 judiciário (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 dissorobustobasecamadae levar a humanidade a Marte (de forma metafórica e literal).
Este ano, o roadmap centrado em rollups viu sucessos importantes: a largura de banda de dados do Ethereum L1 aumentou consideravelmente comEIP-4844 blobs, e várias soluções de escalonamento de EVM estão agora na fase 1. A very implementação heterogênea e pluralista de shardagem, onde cada L2 age como um “shard” com suas próprias regras e lógica interna, é agora uma realidade. Mas, como vimos, seguir este caminho tem desafios únicos. E assim, agora nossa tarefa é concluir o roadmap centrado em rollup e resolver esses problemas, ao mesmo tempo que preservamos a robustez e a descentralização que tornam o Ethereum L1 especial.
O trilema da escalabilidade era uma ideiaintroduzido em 2017, que argumentou que há 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 falhar mesmo uma única transação).
De notar que o trilema não é um teorema, e o post que introduz o trilema não veio com uma prova matemática. Deu, de facto, um argumento matemático heurístico: se um nó amigável à descentralização (por exemplo, um portátil de consumidor) pode verificar N transações por segundo, e temos 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 de corromper alguns nós para fazer passar uma transação má, ou (ii) os seus nós terão de ser robustos e a sua cadeia não 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.
Durante muitos anos, tem sido comum que algumas cadeias de alto desempenho afirmem que resolvem o trilema sem fazer nada de inteligente a nível de arquitetura fundamental, normalmente usando truques de engenharia de software para otimizar o nó. Isso é sempre enganador, e executar um nó em tais cadeias acaba sempre sendo muito mais difícil do que no Ethereum.Esta publicaçãoentra em algumas das muitas sutilezas por que isso acontece (e, portanto, por que o próprio engenharia de software do cliente L1 não pode escalar o Ethereum sozinho).
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 passos de computação foi realizado corretamente, enquanto faz o download de 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 tem um caráter sutil modelo de confiança de alguns-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 que blocos inválidos sejam aceites pela rede.
Outra forma de resolver o trilema é através das arquiteturas de Plasma, que utilizam técnicas inteligentes para transferir a responsabilidade de verificar a disponibilidade de dados para o utilizador de uma forma compatível com incentivos. Entre 2017 e 2019, quando tudo o que tínhamos para escalar a computação eram provas de fraude, o Plasma tinha limitações no que podia fazer com segurança, mas a popularização dos SNARKs torna as arquiteturas de Plasma muito mais viávelpara uma gama mais ampla de casos de uso do que antes.
A partir de 13 de março de 2024, quando o Atualização DencunDesde que entrou em funcionamento, a blockchain Ethereum tem três "blobs" de cerca de 125 kB por intervalo de 12 segundos, ou cerca de 375 kB por intervalo de largura de banda de disponibilidade de dados. Pressupondo que os dados da transação sejam publicados diretamente na cadeia, uma transferência ERC20 tem cerca de 180 bytes, portanto, a TPS máxima de rollups na 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 o alvo de contagem de blob para 8-16, o que nos daria 463-926 TPS em calldatas.
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 “partilhas” do polinómio, onde cada partilha consiste em 16 avaliações em 16 coordenadas adjacentes retiradas de um conjunto total de 8192 coordenadas. Qualquer conjunto de 4096 das 8192 avaliações (com os parâmetros propostos atuais: qualquer conjunto de 64 das 128 amostras possíveis) pode recuperar o blob.
PeerDAS funciona tendo cada cliente a ouvir um pequeno número de sub-redes, onde a i-ésima sub-rede transmite a i-ésima amostra de qualquer blob, e adicionalmente solicita blobs em outras sub-redes que necessita, perguntando aos seus pares na rede p2p global (que estariam a ouvir sub-redes diferentes). Uma versão mais conservadora, SubnetDAS, usa apenas o mecanismo de sub-rede, sem a camada adicional de perguntar aos pares. Uma proposta atual é que os nós que participam do sistema de prova de participação usem SubnetDAS e que outros nós (ou seja, "clientes") usem PeerDAS.
Teoricamente, podemos escalar a amostragem 1D bastante longe: se aumentarmos o número máximo de blobs para 256 (assim, 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 a cada nó128 blobs512 bytes por amostra por bloco = 1 MB de largura de banda de dados por slot. Isso está quase dentro da nossa tolerância: é possível, mas significaria que clientes com restrições 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 crypto
É crucial, do ponto de vista computacional, calcular a extensão dos compromissos não requer ter os blobs, portanto, o esquema é fundamentalmente amigável à construção de bloco distribuída. O nó que realmente está construindo o bloco só precisaria ter os compromissos de KZG de blob e pode confiar no DAS para verificar a disponibilidade dos blobs. O DAS é também inerentemente amigável à construção de bloco distribuída.
O próximo passo imediato é concluir a implementação e lançamento do PeerDAS. A partir daí, é uma luta progressiva para continuar aumentando o número de blobs no PeerDAS, enquanto observamos cuidadosamente a rede e melhoramos o software para garantir a segurança. Ao mesmo tempo, queremos mais trabalho acadêmico na formalização do 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 as suas propriedades de segurança. Também queremos eventualmente migrar do KZG para uma alternativa resistente a quântica, sem configuração confiável. Atualmente, não conhecemos candidatos que sejam amigáveis para a construção de blocos distribuídos. Mesmo a técnica cara de "força bruta" de usar STARKs recursivos para gerar provas de validade para reconstruir linhas e colunas não é suficiente, porque tecnicamente um STARK é do tamanho de O(log(n) * log(log(n)) hashes (comSTIR) Na prática, um STARK é quase tão grande quanto um bloco inteiro.
Os caminhos realistas que vejo a longo prazo são:
Podemos ver esses ao longo de um espectro de trade-off:
Note que essa escolha existe mesmo se decidirmos escalar a execução na L1 diretamente. Isso ocorre porque se a L1 tiver que processar muitas TPS, os blocos da L1 se tornarão muito grandes, e os clientes vão querer uma maneira eficiente de verificar que estão corretos, então teríamos que usar a mesma tecnologia que alimenta os rollups (ZK-EVM e DAS) na L1.
A necessidade de 2D DAS é 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 coloca um desafio aos protocolos e mecanismos de construção de blocos distribuídos: embora o DAS seja teoricamente favorável à reconstrução distribuída, isso precisa ser combinado na prática com Lista de inclusãopropostas e suas mecânicas 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 limita a escalabilidade dos protocolos de camada 2. Com 16 MB por slot, obtemos:
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 diagramahá dois anos:
Os ganhos mais simples são apenas compressão de zero byte: substituindo cada sequência longa de zero bytes por dois bytes que representam quantos zero bytes existem. Para ir mais longe, aproveitamos as propriedades específicas das transações:
A principal coisa que resta fazer é implementar realmente os esquemas acima. Os principais compromissos são:
A adoção do ERC-4337, e eventualmente a consagração de partes dele nos L2 EVMs, pode acelerar grandemente 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 dos consumidores, as redes sociais descentralizadas ou outros setores de alta largura de banda, e isso se torna especialmente verdadeiro se começarmos a considerar a privacidade, o que poderia reduzir a escalabilidade em 3-8x. Para aplicações de alto volume e baixo valor, uma opção hoje é validium, que mantém os dados fora da cadeia e tem 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.
O Plasma é uma solução de escalabilidade que envolve um operador a publicar blocos offchain e a colocar 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 a cada utilizador um ramo de Merkle que prova o que aconteceu, ou não aconteceu, com os ativos desse utilizador. Os utilizadores podem levantar os seus ativos fornecendo um ramo de Merkle. Importante, este ramo não tem de estar enraizado no estado mais recente - por esta razão, mesmo que a disponibilidade de dados falhe, o utilizador ainda pode recuperar os seus ativos ao levantar o estado mais recente que têm disponível. Se um utilizador submeter um ramo inválido (por exemplo, sair de um ativo que já enviou para outra pessoa, ou o operador criar um ativo do nada), um mecanismo de desafio onchain pode decidir a quem pertence o ativo legítimamente.
Um diagrama de uma cadeia de Plasma Cash. Transações que gastam a moeda i são colocadas na i-ésima posição na árvore. Neste exemplo, assumindo que todas as árvores anteriores são válidas, sabemos que a Eve atualmente possui a moeda 1, David possui a moeda 4 e George possui a moeda 6.
As primeiras versões do Plasma apenas conseguiam lidar com o caso de uso de pagamentos e não conseguiam generalizar eficazmente mais além. No entanto, se exigirmos que cada raiz seja verificada com um SNARK, o Plasma torna-se 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 as técnicas do Plasma sejam estendidas a uma classe muito mais geral de ativos. Finalmente, no caso em que o operador não trapaceia, os utilizadores podem retirar os seus fundos instantaneamente, sem precisar de esperar por um período de desafio de uma semana.
Uma forma (não a única forma) de criar uma cadeia de plasma EVM: usar um ZK-SNARK para construir uma árvore paralela UTXO que reflete as alterações de saldo feitas pelo EVM, e define um mapeamento único do que é “a mesma moeda” em diferentes momentos 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, mesmo apenas moedas que não se moveram na última semana), você já melhorou significativamente o status quo do EVM ultra-escalável, que é um validium válido.
Outra classe de construções são os híbridos plasma/rollups, como Intmax. Estas construções colocam uma quantidade muito pequena de dados por utilizador onchain (por exemplo, 5 bytes) e, ao fazê-lo, obtêm propriedades que estão em algum lugar entre plasma e rollups: no caso do Intmax, obtém-se um nível muito elevado de escalabilidade e privacidade, embora mesmo no mundo de 16 MB, a capacidade seja teoricamente limitada a cerca de 16.000.000 / 12 / 5 = 266.667 TPS.
A principal tarefa restante é levar os sistemas de Plasma para a produção. Como mencionado acima, "plasma vs validium" não é um binário: qualquer validium pode ter suas propriedades de segurança melhoradas pelo menos um pouco, adicionando recursos de Plasma ao mecanismo de saída. A parte da pesquisa está em obter propriedades ótimas (em termos de requisitos de confiança, custo de gás L1 no pior caso e vulnerabilidade a DoS) para um EVM, bem como construções alternativas específicas da aplicação. Além disso, a maior complexidade conceitual do Plasma em relação aos rollups precisa ser abordada diretamente, tanto através da pesquisa quanto através da construção de estruturas generalizadas melhores.
O principal compromisso 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 possam frequentemente 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 atividade para L2 também reduz a pressão do MEV no L1.
Atualmente, 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 de validade)sistema de prova. Em alguns casos, o sistema de prova nem sequer está ativo, ou se estiver, tem apenas uma funcionalidade de “advisory”. 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, o Optimism e o Arbitrum, dois rollups completos da EVM que alcançaram um marco de parcial sem confiança conhecido como “stage 1”. A razão pela qual os rollups não foram mais longe é 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 “palco”, originalmente introduzido emesta publicação. Existem requisitos mais detalhados, mas o resumo é:
O objetivo é alcançar o Estágio 2. O principal desafio em alcançar o estágio 2 é obter confiança suficiente de que o sistema de prova realmente é confiável o suficiente. Existem duas maneiras principais de fazer isso:
Diagrama estilizado de um multi-provedor, 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 que já começamos. Existe um truque que simplifica significativamente a tarefa: podemos fazer um verificador SNARK formalmente verificado de uma VM mínima, por exemplo. RISC-VouCairo, e depois escrever uma implementação do EVM nesse VM mínimo (e provar formalmente sua equivalência a alguma outra especificação EVM).
Para multi-provadores, há duas peças principais restantes. Primeiro, precisamos ter confiança suficiente em pelo menos dois sistemas de prova diferentes, ambos de que eles são razoavelmente seguros individualmente e que, se quebrarem, quebrariam por razões diferentes e não relacionadas (e, portanto, não quebrariam ao mesmo tempo). Em segundo lugar, precisamos de obter um nível muito elevado de garantia na lógica subjacente que funde os sistemas de prova. Este é um pedaço de código muito menor. Há maneiras de torná-lo extremamente pequeno - basta armazenar fundos em um Contrato multisig segurocujo signatários são contratos que representam sistemas de prova individuais - mas isso tem o compromisso de custos elevados 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, os métodos mais fáceis de fazer isso frequentemente reintroduzem suposições de confiança: pontes centralizadas, clientes RPC, e assim por diante. Se estamos realmente comprometidos com a ideia de que os L2s fazem parte do Ethereum, precisamos fazer com que usar o ecossistema L2 pareça estar a usar um ecossistema Ethereum unificado.
Um exemplo de uma experiência de utilizador transversalmente L2 patologicamente má (e até perigosa: pessoalmente perdi $100 devido a um erro de seleção de cadeia aqui) - embora não seja culpa da Polymarket, a interoperabilidade transversal L2 deve ser da responsabilidade das carteiras e da comunidade de padrões Ethereum (ERC). Num ecossistema Ethereum bem funcional, enviar moedas de L1 para L2, ou de um L2 para outro, deve sentir-se exatamente como enviar moedas dentro do mesmo L1.
Existem muitas categorias de melhorias de interoperabilidade cruzada-L2. Em geral, a maneira de chegar a isso é perceber que, teoricamente,um Ethereum centrado em rollup é a mesma coisa que shard de execução L1, e depois perguntar onde o atual L2-verse do Ethereum deixa a desejar 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ê tenha os objetos de estado corretos de L1, você pode usar provas de Merkle (e possivelmente assinaturas, se 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 funcionam as carteiras de keystore.
Muitos dos exemplos acima enfrentam dilemas padrão de quando padronizar e em que camadas padronizar. Se você padronizar muito cedo, corre o risco de enraizar 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 com propriedades mais fracas, mas mais fácil de implementar, quanto uma solução de longo prazo que é "ultimamente correta", mas levará alguns anos para chegar lá.
Uma forma pela qual esta secção é única, é que estas tarefas não são apenas problemas técnicos: são também (talvez até principalmente!) problemas sociais. Requerem que as L2s e as carteiras e as L1 cooperem. A nossa capacidade de lidar com este problema com sucesso é um teste à 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 de L1. Uma exceção é o sequenciamento compartilhado, que tem impactos pesados no MEV.
Se as L2 se tornarem muito escaláveis e bem-sucedidas, mas a L1 continuar capaz de processar apenas um volume muito baixo de transações, existem muitos riscos para o Ethereum que podem surgir:
Por estas razões, é valioso continuar a escalonar o L1 em si mesmo e garantir que ele possa continuar a acomodar um número crescente de usos.
A maneira mais fácil de dimensionar é simplesmente aumentar o limite de gás. No entanto, isso arrisca centralizar o L1 e, assim, enfraquecer a outra propriedade importante que torna o Ethereum L1 tão poderoso: sua credibilidade como uma camada base robusta. Existe um debate em curso sobre qual o 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 L1 EVM). Outra coisa importante a melhorar é simplesmente a eficiência do software cliente Ethereum, que hoje está muito mais otimizado do que há cinco anos. Uma estratégia eficaz de aumento do limite de gás L1 envolveria acelerar essas tecnologias de verificação.
Outra estratégia de dimensionamento envolve identificar características específicas e tipos de computação que podem ser tornados mais baratos sem prejudicar a descentralização da rede ou suas propriedades de segurança. Exemplos disso incluem:
Estas melhorias serão discutidas com mais detalhes numa futura publicação sobre o Splurge.
Finalmente, uma terceira estratégia são 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 nativamente no protocolo.
Existem três estratégias para escalonamento L1, que podem ser perseguidas individualmente ou em paralelo:
Vale a pena entender que estas são técnicas diferentes que têm compensações diferentes. Por exemplo, os rollups nativos têm muitas das mesmas fraquezas em termos de composabilidade que os rollups regulares: não pode enviar uma única transação que execute sincronamente operações em muitos deles, como pode com contratos no mesmo L1 (ou L2). Aumentar o limite de gás retira outros benefícios que podem ser alcançados tornando o L1 mais fácil de verificar, como aumentar a parte dos utilizadores que executam nós verificadores e aumentar os stakers a solo. Tornar operações específicas no EVM mais baratas, dependendo de como é feito, pode aumentar a complexidade total do EVM.
Uma grande questão que qualquer roteiro de escalonamento L1 precisa responder é: qual é a visão final do que pertence ao L1 e do que pertence ao L2? Claramente, é absurdo que tudo vá para o L1: os casos de uso potenciais chegam a centenas de milhares de transações por segundo, e isso tornaria o L1 completamente inviável de verificar (a menos que sigamos a rota nativa de rollup). Mas precisamos de algum princípio orientador, para garantir que não estamos criando uma situação em que aumentamos o limite de gás em 10 vezes, danificamos gravemente a descentralização do Ethereum L1 e descobrimos que apenas chegamos a um mundo onde, em vez de 99% da atividade estar no L2, 90% da atividade está no L2, e assim o resultado parece quase o mesmo, exceto por uma perda irreversível de grande parte do que torna o Ethereum L1 especial.
Uma visão proposta de uma "divisão do trabalho" entre L1 e L2s,fonte.
Trazer mais utilizadores para L1 implica não só melhorar a escala, mas também outros aspetos de L1. Significa que mais MEV permanecerá em L1 (em vez de se tornar um problema apenas para L2s) e, portanto, será ainda mais urgente lidar com isso de forma explícita. Aumenta significativamente o valor de ter tempos de slot rápidos em L1. E também depende fortemente da verificação de L1 ("a Verge") correr bem.