Esta é a primeira versão das notas de estudo pessoais do white paper do @megaeth_labs. Se você estiver interessado, pode dar uma olhada. Como a fronteira de fato da inovação em blockchain, Ethereum é muito digno de atenção. Meu nível pessoal é limitado. Se houver algum erro ou omissão, aponte e agradeça.

1. Três características e casos restritos atuais:

alto rendimento de transações, alto rendimento

O melhor opBNB se destaca por sua taxa de gás extremamente alta de 100MGas/s, mas ainda é muito baixa se comparada às capacidades dos servidores web2, 100MGas/s equivale a 650 swaps uniswap ou 3700 transferências ERC20 por segundo, enquanto servidores modernos por. segundo Mais de 1 milhão de transações podem ser executadas.

capacidade computacional abundante, poder computacional abundante

Aplicativos complexos não podem ser carregados na cadeia e são limitados principalmente pelo poder de computação. Se o contrato EVM for usado para calcular números n-Fibonacci, serão necessários 5,5 bilhões de Gás, o que requer uma velocidade de cálculo de 100MGas/s que ocupa 55. segundos de toda a cadeia opbnb. Tradicionalmente, um programa escrito em linguagem C leva apenas 30ms. Velocidade da CPU de núcleo único aumentada em 1.833 vezes

e, mais exclusivamente, tempos de resposta em nível de milissegundos, mesmo sob carga pesada. Recursos de resposta em nível de milissegundos sob carga pesada.

Exceto o arb, outros blockchains convencionais de segundo nível requerem mais de 1 segundo de tempo de geração de bloco para atualizar o status da cadeia. Isto não é viável para aplicações que exigem altas taxas de atualização e ciclos de feedback rápidos. Por exemplo, mundos e jogos feitos por você mesmo na cadeia exigem um tempo de resposta de 100 ms, enquanto a negociação de alta frequência requer um tempo de resposta de 10 ms para fazer ou cancelar pedidos, caso contrário, nada disso poderá ser alcançado.

2. Como ultrapassar os limites de desempenho

Arquitetura Blockchain Atual (L1)

Cada blockchain consiste em dois componentes básicos, incluindo consenso e execução.

O consenso determina a ordem das transações do usuário e a execução processa essas transações em uma ordem estabelecida para atualizar o estado do blockchain. Na maioria dos blockchains L1, cada nó executa a mesma tarefa sem especialização. Cada nó participa do protocolo distribuído, chega a um consenso e então executa transações localmente. Cada L1 deve decidir até que ponto pode aumentar os requisitos de hardware para que usuários comuns operem nós sem comprometer as propriedades fundamentais do blockchain, como segurança e resistência à censura.

Portanto, os requisitos operacionais dos nós completos são muito importantes, relacionados à segurança e à resistência à censura.

O novo paradigma da camada 2

A natureza do blockchain L2 é heterogênea e inerentemente diferente. Diferentes nós L2 são especializados para executar tarefas específicas com mais eficiência.

megaETH vai um passo além e desacopla (desconecta) tarefas de execução de transações de nós completos. Especificamente, megaETH tem três funções, sequenciadores (sequenciadores), provadores (certificadores) e nós completos (nós completos)

A primeira chave é um classificador centralizado poderoso

Sequenciadores: Responsáveis ​​por ordenar e executar transações, mas o megaeth é diferente porque há apenas um sequenciador ativo em um determinado momento, eliminando assim a sobrecarga de consenso durante a execução normal. A maioria dos nós completos recebem diferenças de estado deste ordenador através da rede p2p e depois aplicam as diferenças diretamente para atualizar seu estado local, mas não reexecutam as transações, eles verificam os blocos indiretamente através de provas fornecidas pelo provador. Os usuários avançados (operadores de ponte e criadores de mercado) ainda podem executar cada transação para atingir a finalidade o mais rápido possível, mas isso exigirá requisitos de hardware mais elevados para acompanhar o sequenciador. Finalmente, os provadores usam o esquema de validação sem estado para verificar blocos de forma assíncrona e fora de ordem.

 

A especialização do nó é muito importante. Embora a geração de blocos seja mais centralizada, o blockchain é mais descentralizado. Por exemplo, o sequenciador requer um servidor de última geração, enquanto o servidor exigido pelo nó completo é muito barato.

Além de poderosos servidores centralizados, existem implementações de engenharia mais complexas

Se você contar apenas com servidores poderosos, Reth só poderá atingir 1000TPS no experimento, o que é cerca de 100MGas/s. Isso se deve principalmente à limitação de atualização da MPT (estrutura de dados usada pelo Ethereum) em cada bloco, que é mais rápida que a atual. o cálculo da execução da transação em si O custo é 10 vezes maior.

Portanto, ainda enfrentamos muitas situações complexas.

3. Projeto de megaETH

medir, depois construir, medir primeiro para encontrar os problemas reais, as restrições de desempenho e, em seguida, projetar o novo sistema para resolver todos os problemas ao mesmo tempo.

Esforça-se para projetar sistemas para atingir os limites de hardware, não gosta de projetos incrementais e prefere novos projetos próximos aos limites teóricos.

A seguir estão vários desafios e soluções encontrados durante o processo de design

Execução de transações Execução de transações

 

Vamos começar com o sequenciador. Muitas pessoas dizem que o EVM é o motivo do baixo desempenho e dos baixos tps de L2s, mas isso está errado. Segundo o teste do megaeth, o evm pode chegar a 14.000 tps, o que já é muito alto.

Mas para blockchain em tempo real, isso não é suficiente. A implementação tradicional de EVM tem três problemas de ineficiência, a saber.

Alta latência de acesso ao estado: o acesso e a leitura do estado do blockchain são lentos porque são armazenados no disco rígido e requerem múltiplas leituras.

Solução: O nó do pedido está equipado com RAM suficiente para salvar todo o estado do blockchain. Atualmente, a RAM do Ethereum é de cerca de 100 GB. Este método acelera significativamente o acesso ao estado, eliminando a latência de leitura do SSD.

Falta de execução paralela: Como as transações são executadas sequencialmente para garantir a consistência do estado e os gastos duplos, é difícil executar em paralelo

Solução: Já existem soluções alternativas para este cenário, mas mesmo que sejam resolvidas, a aceleração real alcançável na produção real é inerentemente limitada pelo paralelismo disponível na carga de trabalho. De acordo com os testes, o paralelismo médio real do Ethereum é inferior a 2 recentemente, indicando paralelismo limitado. Na verdade, o cerne é que diferentes transações no Ethereum possuem um grande número de dependências e até mesmo a leitura e escrita de objetos no mesmo estado, resultando em conflitos de paralelismo.

Sobrecarga do intérprete: A sobrecarga adicional causada pela máquina virtual ou intérprete ao executar contratos inteligentes.

Solução: Uma proporção relativamente alta de opcodes já é nativa do Rust, por isso é difícil se beneficiar da compilação. A aceleração máxima pode ser de apenas 2 vezes.

Além dos problemas enfrentados por esses três blockchains gerais de alto desempenho, ainda existem dois desafios para alcançar um blockchain em tempo real de nível de 10 ms. O primeiro é a produção consistente de blocos em alta frequência, por exemplo, um bloco é gerado. a cada 10 ms. A segunda é que o mecanismo de execução paralela deve suportar a priorização de transações para que as transações críticas possam ser processadas sem atrasos na fila, mesmo durante períodos de pico de congestionamento.

Sincronização de estado

A sincronização de estado é o processo de atualizar os nós completos com o sequenciador, que é um dos aspectos mais desafiadores do design de blockchain de alto desempenho.

Se as transferências e transações uniswap forem transmitidas 100.000 vezes por segundo, elas exigirão largura de banda de 152,6 Mbps e 476,1 Mbps, respectivamente, o que é muito mais do que a largura de banda de 100 Mbps do nó completo. Além disso, é provável que esses 100 Mbps sejam utilizados apenas um terço. A largura de banda real usada para sincronização pode ser de apenas 25 Mbps, o que representa uma enorme diferença em relação aos requisitos reais.

Atualizar raiz do estado

O conceito é muito complicado. Na estrutura de dados do MPT, para atualizar a raiz do estado, muitos nós folha e nós filhos precisam ser lidos e gravados. É calculado usando 100.000 transferências. Se apenas a leitura for calculada, cerca de 6 milhões não. são necessários tempos de cache de leituras de banco de dados, mesmo se assumirmos que cada leitura de banco de dados pode ser tratada por uma única E/S de disco, 6 milhões de IOPS estão muito além das capacidades de qualquer SSD de consumidor hoje, e esse cálculo nem mesmo leva em consideração a gravação. em conta as operações.

Uma estratégia de otimização comum para reduzir a E/S de disco é agrupar vários nós de teste em uma subárvore e armazená-los em uma página de disco de 4 KB. Mas ainda 6 vezes menor do que pedimos.

Bloquear Limite de Gás

Para a segurança e confiabilidade do blockchain, devemos estabelecer limites razoáveis ​​de gás,

infraestrutura

Finalmente, os usuários não interagem diretamente com os nós sequenciadores e a maioria das pessoas não executa nós completos em casa. Em vez disso, os usuários enviam transações para um nó RPC de terceiros e contam com um dApp ou explorador de blockchain, como o front-end da web http://etherscan.io/, para confirmar os resultados da transação.

Portanto, a experiência real do usuário de um blockchain depende muito de sua infraestrutura de suporte, como nós RPC e indexadores. Não importa o quão rápido um blockchain em tempo real seja executado, se os nós RPC não puderem lidar com eficiência com o grande número de solicitações de leitura durante os horários de pico, propagar transações para os nós classificadores rapidamente ou se os indexadores não conseguirem atualizar as visualizações do aplicativo com rapidez suficiente para acompanhar, Então não importa.

Dimensionando o blockchain com uma abordagem baseada em princípios

Comprometido com uma abordagem holística e baseada em princípios de pesquisa e desenvolvimento. Ao realizar análises de desempenho aprofundadas desde o início, garantimos que permaneceremos focados na solução de problemas que proporcionem benefícios reais aos nossos usuários. Na verdade, a chave é a perspectiva geral, aprofundada e do usuário.

4. Tipos de aplicativos esperados

• jogo

• Infraestrutura física descentralizada (dePin) que requer computação em tempo real

• Motor Mundial Autônomo

• Rede VPN descentralizada

• Pagamentos transfronteiriços

• Aproveite a negociação de alta frequência com latência extremamente baixa (Binance on-chain?)

Na verdade, a parte da aplicação deveria ter muito espaço para a imaginação. Ouvi muitos espaços relacionados e sinto que o pensamento de todos ainda não é bom o suficiente.