EVM é a parte central do Ethereum, responsável por executar contratos inteligentes e processar transações. Como um motor de computação, o EVM fornece uma abstração de computação e armazenamento, semelhante à especificação da máquina virtual Java. O EVM executa seu próprio conjunto de instruções em bytecode, que geralmente é compilado a partir do Solidity.
EVM é uma máquina de estados quase Turing completa. "Quase" porque todos os passos de execução consomem recursos limitados de Gas, evitando assim a possibilidade de loops infinitos que poderiam levar a uma paragem total da plataforma Ethereum.
O EVM não tem função de agendamento, o módulo de execução do Ethereum retira transações dos blocos, e o EVM é responsável pela execução sequencial. Durante a execução, o estado mundial mais recente é modificado, e após a conclusão da execução de uma transação, o estado é acumulado, chegando ao estado mundial mais recente após a conclusão do bloco. A execução do próximo bloco depende estritamente do estado mundial após a execução do bloco anterior, por isso o processo de execução linear das transações do Ethereum é difícil de otimizar para execução paralela.
Nesse sentido, o protocolo Ethereum estipula que as transações sejam executadas em ordem. Embora a execução em ordem garanta que as transações e os contratos inteligentes possam ser executados em uma sequência determinística, garantindo a segurança, em situações de alta carga, isso pode levar a congestionamentos e atrasos na rede, que é também a razão pela qual o Ethereum tem grandes gargalos de desempenho e necessita de escalabilidade Layer 2.
O caminho paralelo de Layer1 de alto desempenho
A maioria das Layer 1 de alto desempenho é projetada com base na falha da Ethereum em processar em paralelo, aqui falamos apenas sobre a otimização da camada de execução, ou seja, a máquina virtual e a execução paralela.
Máquina Virtual
O EVM é projetado como uma máquina virtual de 256 bits, com o objetivo de facilitar o processamento do algoritmo hash do Ethereum. No entanto, os computadores que executam o EVM precisam mapear os bytes de 256 bits para a arquitetura local para executar contratos inteligentes, tornando todo o sistema muito ineficiente e impraticável. Portanto, na escolha da máquina virtual, camadas de alto desempenho (Layer1) adotam mais frequentemente máquinas virtuais baseadas em WASM, bytecode eBPF ou bytecode Move, em vez de EVM.
WASM é um formato de bytecode pequeno, de carregamento rápido, portátil e baseado em um mecanismo de segurança em sandbox, onde os desenvolvedores podem escrever contratos inteligentes em várias linguagens de programação e, em seguida, compilar para bytecode WASM e executar. O WASM já foi adotado como padrão por muitos projetos de blockchain, e o Ethereum também integrará o WASM no futuro, garantindo que a camada de execução do Ethereum seja mais eficiente e simples, adequada para ser uma plataforma de computação totalmente descentralizada.
O eBPF é a evolução do BPF, originalmente utilizado para filtragem eficiente de pacotes de dados de rede. Após sua evolução, formou-se o eBPF, que oferece um conjunto de instruções mais rico, permitindo intervenções dinâmicas no núcleo do sistema operacional e modificações em seu comportamento sem a necessidade de alterar o código-fonte. Os contratos inteligentes executados em uma determinada blockchain são compilados em SBF (baseado em eBPF) em bytecode e são executados na rede dessa blockchain.
Move é uma nova linguagem de programação de contratos inteligentes, focada em flexibilidade, segurança e verificabilidade. A linguagem Move foi projetada para resolver problemas de segurança em ativos e transações, permitindo que os ativos e transações sejam rigorosamente definidos e controlados. O verificador de bytecode Move é uma ferramenta de análise estática que analisa o bytecode Move e determina se cumpre as regras de segurança de tipo, memória e recursos necessárias, sem a necessidade de implementação e verificação em nível de contrato inteligente em tempo de execução. Certos projetos de blockchain herdaram o Move ou escreveram seus contratos inteligentes através de versões personalizadas.
Execução Paralela
A execução paralela em blockchain significa processar simultaneamente transações não relacionadas. Considere as transações não relacionadas como eventos que não se afetam mutuamente. Por exemplo, se duas pessoas negociam tokens em plataformas de negociação diferentes, suas transações podem ser processadas ao mesmo tempo. No entanto, se elas negociam na mesma plataforma, pode ser necessário executar as transações em uma ordem específica.
O principal desafio da execução paralela é determinar quais transações são irrelevantes e quais são independentes. A maioria das Layer1 de alto desempenho depende de duas abordagens: o método de acesso ao estado e o modelo de paralelismo otimista.
O método de acesso ao estado precisa saber previamente qual parte do estado da blockchain cada transação pode acessar, permitindo assim analisar quais transações são independentes.
Em algumas blockchains, os programas (contratos inteligentes) são sem estado, pois não podem acessar (ler ou escrever) qualquer estado que persista durante todo o processo de transação. Para acessar ou manter estado, os programas precisam usar contas. Cada transação deve especificar quais contas serão acessadas durante a execução da transação, para que o tempo de execução do processamento da transação possa agendar transações não sobrepostas para execução paralela, garantindo ao mesmo tempo a consistência dos dados.
Em algumas blockchains, cada contrato inteligente é um módulo, composto por definições de funções e estruturas. As estruturas são instanciadas dentro das funções e podem ser passadas para outros módulos através de chamadas de função. As instâncias de estrutura armazenadas em tempo de execução existem como objetos, e há três tipos diferentes de objetos: objeto proprietário, objeto compartilhado e objeto imutável. A estratégia de paralelização é semelhante ao que foi mencionado acima, e as transações também precisam especificar quais objetos estão a operar.
O modelo de otimização paralela opera sob a suposição de que todas as transações são independentes, apenas validando retroativamente essa suposição e realizando ajustes quando necessário.
Algumas blockchains utilizam o método Block-STM (Memória de Transações de Software de Bloco) para aplicar execução paralela otimista. No Block-STM, as transações são inicialmente configuradas na ordem em que aparecem dentro do bloco e, em seguida, são divididas entre diferentes threads de processamento para serem executadas simultaneamente. Durante o processamento dessas transações, o sistema acompanha as localizações de memória alteradas por cada transação. Após cada rodada de processamento, o sistema verifica todos os resultados das transações. Se descobrir que uma transação atingiu uma localização de memória alterada por uma transação anterior, apaga seu resultado e a executa novamente. Este processo continua até que todas as transações no bloco tenham sido processadas.
EVM paralelo
A EVM Paralela (Parallel EVM) foi mencionada já em 2021, referindo-se à EVM que suporta o processamento simultâneo de várias transações, com o objetivo de melhorar o desempenho e a eficiência da EVM existente. As soluções representativas incluem a EVM paralela implementada por uma plataforma com base no Block-STM e a EVM paralela desenvolvida em colaboração por outra plataforma.
Mas no final de 2023, especialistas da indústria mencionaram de forma unânime, ao prever as tendências de 2024, a EVM paralela, o que impulsionou uma onda de Layer 1 compatíveis com EVM que adotaram a tecnologia de execução paralela, incluindo Monand e Sei.
Hoje em dia, alguns projetos Layer1 e Layer2 estão todos colando o rótulo de EVM paralelo, deixando as pessoas deslumbradas.
Acredito que as únicas três categorias que podem ser definidas como EVMs paralelas são:
Atualização de execução paralela para Layer1 compatível com EVM que não adotou tecnologia de execução paralela;
Layer1 compatível com EVM que utiliza tecnologia de execução paralela;
Uma solução compatível com EVM de Layer 1 não compatível com EVM que utiliza tecnologia de execução paralela.
Aqui está uma breve introdução a alguns projetos representativos.
Monad é uma Layer1 de alto desempenho compatível com EVM que utiliza o mecanismo PoS, destinada a melhorar significativamente a escalabilidade e a velocidade das transações através da execução paralela. Monad permite a execução paralela de transações dentro de um bloco para aumentar a eficiência. Utiliza um modelo de paralelismo otimista, começando a executar novas transações antes que a execução da etapa anterior seja concluída. Para lidar com resultados incorretos, Monad rastreia entradas/saídas e re-executa transações inconsistentes. Um analisador de código estático pode prever dependências, evitando paralelismo inválido e, em situações de incerteza, retorna ao modo simples. Essa execução paralela aumenta a capacidade de processamento, ao mesmo tempo que reduz a probabilidade de falhas nas transações.
Sei é uma Layer1 desenvolvida com base no Cosmos SDK, projetada especificamente para DeFi. Sei V2 é uma grande atualização da rede Sei, destinada a se tornar o primeiro EVM completamente paralelo. Assim como Monad, Sei V2 usará paralelização otimista. Isso permite que a blockchain execute transações simultaneamente, sem que os desenvolvedores precisem definir quaisquer dependências. Quando ocorrem conflitos, a blockchain rastreará cada parte de armazenamento tocada por cada transação e reexecutará essas transações em ordem. Esse processo continuará recursivamente até que todos os conflitos não resolvidos sejam resolvidos.
Artela é uma rede blockchain escalável que permite aos desenvolvedores construir aplicações descentralizadas (dApps) ricas em funcionalidades. O EVM++ lançado pela Artela representa uma EVM paralela de alta escalabilidade + alto desempenho, que será implementada em duas fases; a primeira fase será projetada em torno da execução paralela e, com base na execução paralela, garantirá a escalabilidade do poder computacional dos nós da rede através de computação elástica, alcançando assim um espaço de bloco elástico. Na execução paralela, as transações serão agrupadas com base na análise de conflitos de dependência de transações para suportar a execução paralela.
Uma solução compatível com EVM em uma determinada plataforma é uma solução para executar transações EVM sobre essa plataforma. Na verdade, é um contrato inteligente nessa plataforma, que implementa um interpretador EVM e compila para um bytecode específico. Internamente, implementa um conjunto de modelos de transação e de contas do Ethereum, onde os usuários apenas precisam pagar as taxas de GAS EVM para enviar transações. As taxas da rede da plataforma são pagas pelos intermediários. A plataforma exige que as transações forneçam uma lista de contas, e transações embaladas não são uma exceção, portanto, as responsabilidades do intermediário incluem gerar essa lista de contas, ao mesmo tempo que obtém a capacidade de execução paralela de transações da plataforma.
Existem outros projetos semelhantes que usam o EVM para executar contratos inteligentes e implementar soluções compatíveis com o EVM. Teoricamente, essa solução também pode ser adotada em certas plataformas para alcançar compatibilidade com o EVM sem invasão. Alguns projetos estão trabalhando nesse sentido, desenvolvendo uma estrutura modular para construir e implantar infraestruturas, aplicações e blockchains baseadas em Move em qualquer ambiente distribuído. Um dos módulos desse projeto pode converter de forma transparente os códigos de operação do EVM em códigos de operação do Move, o que significa que projetos em Solidity podem aproveitar as vantagens de desempenho e segurança do Move, sem precisar de uma linha de código em Move.
A compatibilidade com EVM permite que os desenvolvedores migrem facilmente suas aplicações Ethereum para a blockchain, sem a necessidade de grandes modificações, o que é uma boa direção para construir um ecossistema.
Resumo
A tecnologia de paralelismo na blockchain já é um tópico recorrente, que surge de tempos em tempos. No entanto, atualmente, a maioria das inovações se concentra na modificação e imitação de modelos de execução otimista, representados principalmente pelo mecanismo Block-STM de uma determinada blockchain, sem avanços substanciais, o que dificulta a manutenção do entusiasmo.
Olhando para o futuro, haverá mais projetos emergentes de Layer 1 a entrar na competição do EVM paralelo, e alguns Layer 1 mais antigos também irão implementar atualizações de EVM paralelo ou soluções compatíveis com EVM. Ambas as direções convergem, e mais novas narrativas relacionadas ao aumento de desempenho também surgirão.
No entanto, em comparação com a narrativa de alto desempenho do EVM, a possibilidade de a blockchain florescer em diversas direções, com narrativas como WASM, SVM e Move VM, pode ser ainda mais promissora.
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
14 gostos
Recompensa
14
7
Partilhar
Comentar
0/400
SingleForYears
· 50m atrás
Isso é a máquina virtual Java do Web3?
Ver originalResponder0
BlockImposter
· 07-30 12:07
gás verdadeiramente caro
Ver originalResponder0
RektHunter
· 07-30 12:06
gás alto ainda tem cadeia alternativa Quem jogar quem é burro
Ver originalResponder0
degenonymous
· 07-30 11:51
Adicionar uma taxa de gás está a tornar-se insuportável, está bem?
Ver originalResponder0
SchrodingerGas
· 07-30 11:49
a guerra do gás é realmente absurda. Na noite de anteontem, eu perdi três dígitos em uma mintagem e queima.
A ascensão do EVM paralelo: o caminho da evolução de Layer1 de alto desempenho
EVM: O componente central do Ethereum
EVM é a parte central do Ethereum, responsável por executar contratos inteligentes e processar transações. Como um motor de computação, o EVM fornece uma abstração de computação e armazenamento, semelhante à especificação da máquina virtual Java. O EVM executa seu próprio conjunto de instruções em bytecode, que geralmente é compilado a partir do Solidity.
EVM é uma máquina de estados quase Turing completa. "Quase" porque todos os passos de execução consomem recursos limitados de Gas, evitando assim a possibilidade de loops infinitos que poderiam levar a uma paragem total da plataforma Ethereum.
O EVM não tem função de agendamento, o módulo de execução do Ethereum retira transações dos blocos, e o EVM é responsável pela execução sequencial. Durante a execução, o estado mundial mais recente é modificado, e após a conclusão da execução de uma transação, o estado é acumulado, chegando ao estado mundial mais recente após a conclusão do bloco. A execução do próximo bloco depende estritamente do estado mundial após a execução do bloco anterior, por isso o processo de execução linear das transações do Ethereum é difícil de otimizar para execução paralela.
Nesse sentido, o protocolo Ethereum estipula que as transações sejam executadas em ordem. Embora a execução em ordem garanta que as transações e os contratos inteligentes possam ser executados em uma sequência determinística, garantindo a segurança, em situações de alta carga, isso pode levar a congestionamentos e atrasos na rede, que é também a razão pela qual o Ethereum tem grandes gargalos de desempenho e necessita de escalabilidade Layer 2.
O caminho paralelo de Layer1 de alto desempenho
A maioria das Layer 1 de alto desempenho é projetada com base na falha da Ethereum em processar em paralelo, aqui falamos apenas sobre a otimização da camada de execução, ou seja, a máquina virtual e a execução paralela.
Máquina Virtual
O EVM é projetado como uma máquina virtual de 256 bits, com o objetivo de facilitar o processamento do algoritmo hash do Ethereum. No entanto, os computadores que executam o EVM precisam mapear os bytes de 256 bits para a arquitetura local para executar contratos inteligentes, tornando todo o sistema muito ineficiente e impraticável. Portanto, na escolha da máquina virtual, camadas de alto desempenho (Layer1) adotam mais frequentemente máquinas virtuais baseadas em WASM, bytecode eBPF ou bytecode Move, em vez de EVM.
WASM é um formato de bytecode pequeno, de carregamento rápido, portátil e baseado em um mecanismo de segurança em sandbox, onde os desenvolvedores podem escrever contratos inteligentes em várias linguagens de programação e, em seguida, compilar para bytecode WASM e executar. O WASM já foi adotado como padrão por muitos projetos de blockchain, e o Ethereum também integrará o WASM no futuro, garantindo que a camada de execução do Ethereum seja mais eficiente e simples, adequada para ser uma plataforma de computação totalmente descentralizada.
O eBPF é a evolução do BPF, originalmente utilizado para filtragem eficiente de pacotes de dados de rede. Após sua evolução, formou-se o eBPF, que oferece um conjunto de instruções mais rico, permitindo intervenções dinâmicas no núcleo do sistema operacional e modificações em seu comportamento sem a necessidade de alterar o código-fonte. Os contratos inteligentes executados em uma determinada blockchain são compilados em SBF (baseado em eBPF) em bytecode e são executados na rede dessa blockchain.
Move é uma nova linguagem de programação de contratos inteligentes, focada em flexibilidade, segurança e verificabilidade. A linguagem Move foi projetada para resolver problemas de segurança em ativos e transações, permitindo que os ativos e transações sejam rigorosamente definidos e controlados. O verificador de bytecode Move é uma ferramenta de análise estática que analisa o bytecode Move e determina se cumpre as regras de segurança de tipo, memória e recursos necessárias, sem a necessidade de implementação e verificação em nível de contrato inteligente em tempo de execução. Certos projetos de blockchain herdaram o Move ou escreveram seus contratos inteligentes através de versões personalizadas.
Execução Paralela
A execução paralela em blockchain significa processar simultaneamente transações não relacionadas. Considere as transações não relacionadas como eventos que não se afetam mutuamente. Por exemplo, se duas pessoas negociam tokens em plataformas de negociação diferentes, suas transações podem ser processadas ao mesmo tempo. No entanto, se elas negociam na mesma plataforma, pode ser necessário executar as transações em uma ordem específica.
O principal desafio da execução paralela é determinar quais transações são irrelevantes e quais são independentes. A maioria das Layer1 de alto desempenho depende de duas abordagens: o método de acesso ao estado e o modelo de paralelismo otimista.
O método de acesso ao estado precisa saber previamente qual parte do estado da blockchain cada transação pode acessar, permitindo assim analisar quais transações são independentes.
Em algumas blockchains, os programas (contratos inteligentes) são sem estado, pois não podem acessar (ler ou escrever) qualquer estado que persista durante todo o processo de transação. Para acessar ou manter estado, os programas precisam usar contas. Cada transação deve especificar quais contas serão acessadas durante a execução da transação, para que o tempo de execução do processamento da transação possa agendar transações não sobrepostas para execução paralela, garantindo ao mesmo tempo a consistência dos dados.
Em algumas blockchains, cada contrato inteligente é um módulo, composto por definições de funções e estruturas. As estruturas são instanciadas dentro das funções e podem ser passadas para outros módulos através de chamadas de função. As instâncias de estrutura armazenadas em tempo de execução existem como objetos, e há três tipos diferentes de objetos: objeto proprietário, objeto compartilhado e objeto imutável. A estratégia de paralelização é semelhante ao que foi mencionado acima, e as transações também precisam especificar quais objetos estão a operar.
O modelo de otimização paralela opera sob a suposição de que todas as transações são independentes, apenas validando retroativamente essa suposição e realizando ajustes quando necessário.
Algumas blockchains utilizam o método Block-STM (Memória de Transações de Software de Bloco) para aplicar execução paralela otimista. No Block-STM, as transações são inicialmente configuradas na ordem em que aparecem dentro do bloco e, em seguida, são divididas entre diferentes threads de processamento para serem executadas simultaneamente. Durante o processamento dessas transações, o sistema acompanha as localizações de memória alteradas por cada transação. Após cada rodada de processamento, o sistema verifica todos os resultados das transações. Se descobrir que uma transação atingiu uma localização de memória alterada por uma transação anterior, apaga seu resultado e a executa novamente. Este processo continua até que todas as transações no bloco tenham sido processadas.
EVM paralelo
A EVM Paralela (Parallel EVM) foi mencionada já em 2021, referindo-se à EVM que suporta o processamento simultâneo de várias transações, com o objetivo de melhorar o desempenho e a eficiência da EVM existente. As soluções representativas incluem a EVM paralela implementada por uma plataforma com base no Block-STM e a EVM paralela desenvolvida em colaboração por outra plataforma.
Mas no final de 2023, especialistas da indústria mencionaram de forma unânime, ao prever as tendências de 2024, a EVM paralela, o que impulsionou uma onda de Layer 1 compatíveis com EVM que adotaram a tecnologia de execução paralela, incluindo Monand e Sei.
Hoje em dia, alguns projetos Layer1 e Layer2 estão todos colando o rótulo de EVM paralelo, deixando as pessoas deslumbradas.
Acredito que as únicas três categorias que podem ser definidas como EVMs paralelas são:
Atualização de execução paralela para Layer1 compatível com EVM que não adotou tecnologia de execução paralela;
Layer1 compatível com EVM que utiliza tecnologia de execução paralela;
Uma solução compatível com EVM de Layer 1 não compatível com EVM que utiliza tecnologia de execução paralela.
Aqui está uma breve introdução a alguns projetos representativos.
Monad é uma Layer1 de alto desempenho compatível com EVM que utiliza o mecanismo PoS, destinada a melhorar significativamente a escalabilidade e a velocidade das transações através da execução paralela. Monad permite a execução paralela de transações dentro de um bloco para aumentar a eficiência. Utiliza um modelo de paralelismo otimista, começando a executar novas transações antes que a execução da etapa anterior seja concluída. Para lidar com resultados incorretos, Monad rastreia entradas/saídas e re-executa transações inconsistentes. Um analisador de código estático pode prever dependências, evitando paralelismo inválido e, em situações de incerteza, retorna ao modo simples. Essa execução paralela aumenta a capacidade de processamento, ao mesmo tempo que reduz a probabilidade de falhas nas transações.
Sei é uma Layer1 desenvolvida com base no Cosmos SDK, projetada especificamente para DeFi. Sei V2 é uma grande atualização da rede Sei, destinada a se tornar o primeiro EVM completamente paralelo. Assim como Monad, Sei V2 usará paralelização otimista. Isso permite que a blockchain execute transações simultaneamente, sem que os desenvolvedores precisem definir quaisquer dependências. Quando ocorrem conflitos, a blockchain rastreará cada parte de armazenamento tocada por cada transação e reexecutará essas transações em ordem. Esse processo continuará recursivamente até que todos os conflitos não resolvidos sejam resolvidos.
Artela é uma rede blockchain escalável que permite aos desenvolvedores construir aplicações descentralizadas (dApps) ricas em funcionalidades. O EVM++ lançado pela Artela representa uma EVM paralela de alta escalabilidade + alto desempenho, que será implementada em duas fases; a primeira fase será projetada em torno da execução paralela e, com base na execução paralela, garantirá a escalabilidade do poder computacional dos nós da rede através de computação elástica, alcançando assim um espaço de bloco elástico. Na execução paralela, as transações serão agrupadas com base na análise de conflitos de dependência de transações para suportar a execução paralela.
Uma solução compatível com EVM em uma determinada plataforma é uma solução para executar transações EVM sobre essa plataforma. Na verdade, é um contrato inteligente nessa plataforma, que implementa um interpretador EVM e compila para um bytecode específico. Internamente, implementa um conjunto de modelos de transação e de contas do Ethereum, onde os usuários apenas precisam pagar as taxas de GAS EVM para enviar transações. As taxas da rede da plataforma são pagas pelos intermediários. A plataforma exige que as transações forneçam uma lista de contas, e transações embaladas não são uma exceção, portanto, as responsabilidades do intermediário incluem gerar essa lista de contas, ao mesmo tempo que obtém a capacidade de execução paralela de transações da plataforma.
Existem outros projetos semelhantes que usam o EVM para executar contratos inteligentes e implementar soluções compatíveis com o EVM. Teoricamente, essa solução também pode ser adotada em certas plataformas para alcançar compatibilidade com o EVM sem invasão. Alguns projetos estão trabalhando nesse sentido, desenvolvendo uma estrutura modular para construir e implantar infraestruturas, aplicações e blockchains baseadas em Move em qualquer ambiente distribuído. Um dos módulos desse projeto pode converter de forma transparente os códigos de operação do EVM em códigos de operação do Move, o que significa que projetos em Solidity podem aproveitar as vantagens de desempenho e segurança do Move, sem precisar de uma linha de código em Move.
A compatibilidade com EVM permite que os desenvolvedores migrem facilmente suas aplicações Ethereum para a blockchain, sem a necessidade de grandes modificações, o que é uma boa direção para construir um ecossistema.
Resumo
A tecnologia de paralelismo na blockchain já é um tópico recorrente, que surge de tempos em tempos. No entanto, atualmente, a maioria das inovações se concentra na modificação e imitação de modelos de execução otimista, representados principalmente pelo mecanismo Block-STM de uma determinada blockchain, sem avanços substanciais, o que dificulta a manutenção do entusiasmo.
Olhando para o futuro, haverá mais projetos emergentes de Layer 1 a entrar na competição do EVM paralelo, e alguns Layer 1 mais antigos também irão implementar atualizações de EVM paralelo ou soluções compatíveis com EVM. Ambas as direções convergem, e mais novas narrativas relacionadas ao aumento de desempenho também surgirão.
No entanto, em comparação com a narrativa de alto desempenho do EVM, a possibilidade de a blockchain florescer em diversas direções, com narrativas como WASM, SVM e Move VM, pode ser ainda mais promissora.