Execução Paralela: A Próxima Geração de Blockchains

Avançado5/10/2024, 10:43:24 AM
Shoal Research, uma instituição de pesquisa em criptografia, analisou os projetos relacionados atuais no campo paralelo da blockchain, incluindo o progresso do Solana (SVM), EVM paralelo (Sei, Monad) e MoveVM (Aptos, Sui, Movement), e analisou os desafios enfrentados neste campo e oportunidades.

Prelúdio

1.0 Transações Blockchain

Blocos de construção são máquinas virtuais, um modelo de computação baseado em software que roda em cima de uma rede distribuída de computadores físicos aos quais qualquer um pode se juntar, mas é extremamente difícil para qualquer entidade única controlar. O conceito de uma blockchain foi primeiramente colocado por escrito no infame whitepaper do Bitcoin de Satoshi Nakamoto em 2008, como a infraestrutura central que possibilita pagamentos entre pares criptograficamente seguros no Bitcoin. Transações são para blockchains o que registros são para empresas de mídia social e internet; eles servem como registros de atividade para essa rede específica, sendo a diferença fundamental que as transações em uma blockchain são imutáveis e frequentemente publicamente observáveis.

Mas afinal, o que é exatamente uma transação?

Transações em blockchains envolvem a transferência de ativos digitais de um endereço no livro-razão distribuído para outro, garantido pelo uso de criptografia de chave pública. Transações podem ser usadas para transferências descentralizadas entre pares, ou para vários processos de autenticação e verificação também.

Um exemplo de uma transação que qualquer um pode observar em um explorador de blockchain como SeiTrace

1.1 Como as Transações Blockchain Funcionam

Quando uma transação é iniciada, ou seja, Bob envia alguns tokens para Alice, a transação de Bob é transmitida para a rede blockchain subjacente. Posteriormente, clusters de nós especializados na rede começam a verificar e validar a transação como legítima. Uma vez que um número suficiente desses nós tenha verificado o conteúdo da transação, a transação é adicionada a um bloco juntamente com outras transações de usuários. Quando um bloco está cheio, ele é adicionado à cadeia, daí o nome 'blockchain'. A transação de Bob agora faz parte de um livro-razão seguro e transparente, e ele e Alice podem verificar o conteúdo.

Em termos gerais, todas as transações de blockchain contêm metadados que ajudam os nós que operam e garantem a identificação e execução de um conjunto específico de instruções e parâmetros. Cada transação terá dados de alto nível inseridos pelo remetente original, como a quantia a ser transferida, o endereço de destino e a assinatura digital para confirmar a transação, bem como vários dados de baixo nível que são criados e anexados automaticamente, embora esses dados variem de acordo com a rede e o design.

No final, no entanto, os processos envolvidos nos bastidores na camada de rede antes da execução da transação variam de acordo com o design do blockchain.

1.1.1 Mempool

Um pool de memória, ou mempool, é uma característica comum dos designs de blockchain, implementada por redes tradicionais de blockchain como Bitcoin e Ethereum. Mempools são simplesmente zonas de buffer, ou 'salas de espera', para transações pendentes que ainda não foram adicionadas a um bloco e executadas.

Para entender melhor, podemos esquematizar o ciclo de vida de uma transação em um blockchain que utiliza um mempool;

  1. O usuário inicia e assina uma transação.
  2. Nós especializados participantes na rede blockchain verificam o conteúdo da transação para serem legítimos e conterem parâmetros apropriados.
  3. Uma vez verificada, a transação é encaminhada para o mempool público juntamente com outras transações pendentes.
  4. Eventualmente, dependendo da taxa de gás paga pela transação em relação a outras transações na mempool, a transação pendente do nosso usuário é selecionada com um grupo de outras transações pendentes para formar o próximo bloco no Blockchain. Nesta fase, o status de nossa transação será lido como 'Bem-sucedida'.
  5. Após um certo tempo ou limite baseado em blocos ter passado, o próprio bloco é finalizado e a transação se torna um registro imutável registrado na blockchain, que só poderia ser comprometido no caso de um ataque de 51%, uma tarefa extremamente difícil de realizar de outra forma.

1.1.2. No Mempool (Solana)

É importante notar que alguns blockchains, como Solana, não utilizam um mempool, e podem, em vez disso, encaminhar transações diretamente para o produtor de blocos como um meio de possibilitar alta velocidade e throughput através da produção contínua de blocos.

Vamos percorrer o ciclo de vida de uma transação em um blockchain não-mempool:

  1. O usuário inicia e assina uma transação para um aplicativo que estão usando.
  2. A aplicação roteia as informações da transação para o servidor de Chamada de Procedimento Remoto (RPC).
  3. O provedor RPC envia a transação para o produtor de bloco designado atual, e os próximos três produtores; este é um passo de precaução no caso de o líder atual não poder executar a transação a tempo. Solana emprega um cronograma de líder de slot que ajuda as RPCs a rotear as transações mais facilmente.
  4. O produtor de bloco então envia a transação assinada para os nós de consenso para verificação.
  5. Nós de consenso votam para verificar o conteúdo da transação, e uma vez completada, o status da transação é então roteado de volta para RPC > aplicativo > usuário como 'sucesso' ou 'falha'.
  6. Similar às blockchains baseadas em mempool, o bloco em si é finalizado após um certo tempo ou limiar baseado em bloco ter passado.

1.2 Execução Sequencial

Blockchain mais antigos, nomeadamente Bitcoin e Ethereum, utilizam um mecanismo de execução sequencial para transações. Cada transação adicionada ao blockchain invoca uma alteração no estado da rede, e a VM está estruturada para processar apenas uma alteração de estado de cada vez por motivos de segurança.

Isso tem levado a gargalos significativos para a capacidade da rede subjacente, à medida que o número de transações que podem ser adicionadas ao bloco fica limitado, resultando em tempos de espera mais longos e picos sem precedentes nos custos de transação, o que pode tornar a rede inutilizável às vezes. Além disso, os modelos de execução sequencial utilizam componentes de hardware de forma bastante ineficiente e, portanto, não se beneficiam dos avanços na computação, ou seja, múltiplos núcleos de processador.

Execução Paralela

2.0 O que é Execução Paralela?

A computação paralela é um componente chave da arquitetura de computadores, cujas origens podem ser rastreadas até final dos anos 1950, embora sua ideia e teoria tenham sido rastreadas até 1837. Por definição, computação paralela refere-se ao ato de utilizar múltiplos elementos de processamento simultaneamente para resolver uma operação, na qual uma tarefa maior e mais complexa é dividida em tarefas menores a serem completadas de forma mais eficiente do que de maneira serial.

Originalmente implementada apenas em sistemas de computação de alto desempenho, a computação paralela evoluiu para se tornar o paradigma dominante na arquitetura de computadores hoje, à medida que a demanda por computação aumentou exponencialmente na era da internet, exacerbada pelas limitações da escalabilidade de frequência nas décadas anteriores.

Este padrão arquitetônico se aplica às blockchains da mesma forma, apenas que a tarefa principal que os computadores resolvem é o processamento e execução de transações, ou a transferência de valor do contrato inteligente A para o contrato inteligente B, daí o termo execução paralela.

A execução paralela significa que, em vez de processar transações em série, uma blockchain pode processar várias transações não conflitantes simultaneamente. Isso pode aumentar significativamente a capacidade de uma rede de blockchain, tornando-a mais escalável e eficiente para lidar com cargas mais altas de atividade e demanda por espaço de bloco.

Para uma analogia mais simples, considere a eficiência de um supermercado com várias pistas para os compradores pagarem suas compras, em comparação com apenas uma para todos.

Por que a Execução Paralela é importante?

A execução paralela nas blockchains é projetada para desbloquear eficiências na velocidade e desempenho de uma rede, especialmente à medida que a rede vê um tráfego e demanda de recursos mais altos. No contexto dos ecossistemas cripto, a execução paralela significa que se Bob quer lançar a última coleção popular de NFTs, e Alice quer comprar sua mememoeda favorita, a rede atenderá a ambos os usuários sem comprometer qualquer qualidade de desempenho e, assim, a experiência do usuário.

Embora isso possa parecer apenas um recurso intuitivo de qualidade de vida, os desbloqueios no desempenho da rede habilitados pela execução paralela abrem caminho para o desenvolvimento de novos e inovadores casos de uso e aplicativos que podem aproveitar baixa latência e altos volumes, o que, por si só, lança as bases para a integração da próxima grande massa de usuários nos ecossistemas cripto.

Como Funciona a Execução Paralela?

Embora a premissa da execução paralela seja relativamente direta, nuances nos projetos das blockchains subjacentes afetam a forma como o processo de execução paralela se desenrola. A característica mais relevante para projetar blockchains com execução paralela é a capacidade das transações de acessar o estado de sua rede subjacente, incluindo saldos de contas, armazenamento e contratos inteligentes.

A execução paralela em blockchains pode ser categorizada como determinística ou otimista. A execução paralela determinística, empregada por blockchains como Solana, requer que as transações declarem todas as dependências de memória antecipadamente, ou seja, quais partes do estado global desejam acessar antecipadamente. Embora este passo crie uma sobrecarga adicional para os desenvolvedores, mais amplamente, permite que a rede classifique e identifique transações não conflitantes antes da execução, criando um sistema otimizado que é previsível e eficiente. Por outro lado, a execução paralela otimista é estruturada para processar todas as transações em paralelo, operando com a suposição inerente de que não há conflitos. Isso permite que o blockchain subjacente entregue uma execução de transação mais rápida, embora ao custo de uma potencial reexecução posterior em caso de conflito. Se duas transações conflitantes forem encontradas, o sistema pode então reprocessá-las e reexecutá-las seja em paralelo ou sequencialmente.

Para entender melhor as implicações dessas intricadas designações, pode ser útil analisar a execução paralela através da perspectiva de equipes que estão impulsionando a fronteira da execução paralela hoje.

Estado da Execução Paralela Hoje

Para entender melhor as implicações dessas sutilezas de design, pode ser útil analisar a execução paralela através da óptica das equipes que estão impulsionando a fronteira da execução paralela hoje.

3.1 Máquina Virtual Solana (SVM)

Solana foi a primeira rede blockchain a ser projetada em torno da execução paralela, inspirada na experiência anterior do fundador Anatoly Yakovenko na indústria de telecomunicações. Solana tem como objetivo fornecer uma plataforma para desenvolvedores que funcione o mais rápido possível, de acordo com o permitido pela física, portanto, a velocidade e eficiência desbloqueadas pela computação paralela foram uma escolha de design simples e intuitiva.

Um componente crítico para habilitar as velocidades rápidas e alta taxa de transferência da Solana é Sealevel, o ambiente de tempo de execução paralelo de contratos inteligentes da rede. Ao contrário dos ambientes baseados em EVM e WASM, Sealevel emprega uma arquitetura multi-threaded, o que significa que pode processar várias transações simultaneamente até a capacidade do núcleo do validador.

A chave para habilitar a execução paralela da Solana é que quando uma transação é habilitada, a rede atribuirá uma lista de instruções para que essa transação seja executada, especificamente quais contas e estado acessar e que alterações fazer - isso é fundamental para determinar quais transações não conflitantes podem ser executadas simultaneamente, além de habilitar transações que estão tentando acessar o mesmo estado para fazer isso simultaneamente.

Considere a eficiência que os rótulos fornecem aos sistemas de bagagem despachada nos aeroportos.

Solana também utiliza Cloudbreak, seu próprio accountsDB personalizado, para armazenar e gerenciar dados de estado a fim de permitir leituras e gravações concorrentes de transações. Cloudbreak, otimizado para execução paralela, escala horizontalmente para distribuir e gerenciar dados de estado em vários nós.

Graças à sua arquitetura paralela, Solana pode lidar com um grande número de transações e ainda executar rapidamente, dando às transações uma finalidade quase instantânea. Solana lida entre 2.000 e 10.000 transações por segundo (TPS) em média hoje. Além disso, os casos de uso para o SVM estão lentamente, mas seguramente, se expandindo, à medida que equipes como Eclipse estão implementando infraestrutura de Camada 2 que visa aproveitar o SVM como um ambiente de execução.

3.2 EVM Paralelo

O Parallel EVM descreve um novo ambiente de execução para blockchains que tem como objetivo trazer o “melhor dos dois mundos” das designs da Solana e Ethereum, com a velocidade e desempenho da Solana, e a segurança e liquidez da Ethereum. Ao processar transações em paralelo em vez de sequencialmente, como no design tradicional do EVM, os EVMs paralelos permitem que os desenvolvedores construam aplicativos em uma rede altamente performática, ao mesmo tempo em que podem alavancar conexões com a liquidez do EVM e ferramentas de desenvolvedor.

3.2.1 Sei Network

A rede Sei é uma blockchain de camada 1 de código aberto compatível com EVM que hospeda uma variedade de aplicativos descentralizados construídos em torno de alto desempenho. A Sei foi construída visando oferecer velocidades rápidas a baixos custos para usuários e desenvolvedores, e a execução paralela é um componente-chave para habilitar esse desempenho e UX. Atualmente, a Sei oferece tempos de confirmação de bloco de 390ms e processou mais de 1,9B de transações em sua mainnet pacífica.

Originalmente, Sei utilizava um modelo determinístico de execução paralela, no qual os contratos inteligentes declaravam antecipadamente seu acesso ao estado necessário para que o sistema executasse transações não conflitantes simultaneamente. Com o início da atualização V2, Sei está migrando para um modelo paralelo otimista, o que significa que todas as transações serão processadas em paralelo ao serem enviadas para a rede (a fase de execução) e, em seguida, serão revisadas quanto a informações conflitantes com transações anteriores (a fase de validação). No caso de duas ou mais transações conflitantes, ou seja, transações que tentam acessar o mesmo estado da rede, Sei identifica esse ponto de conflito e então reexecuta as transações em paralelo ou sequencialmente, dependendo da natureza do conflito.

Para armazenar e manter os dados de transação, Sei também introduzirá o SeiDB, um banco de dados personalizado que tem como objetivo melhorar as deficiências da v1 otimizando a execução paralela. O SeiDB visa reduzir o custo de armazenar dados redundantes e manter o uso eficiente do disco para melhorar o desempenho da rede. A V2 reduz a quantidade de metadados necessária para rastreamento e armazenamento, e permite um log de pré-escrita para ajudar na recuperação de dados em caso de falha.

Por último, a Sei também anunciou recentemente o lançamento de sua Parallel Stack, um framework de código aberto para permitir que soluções de escalonamento de Camada 2, ou seja, rollups, utilizem e se beneficiem da execução paralela.

3.2.2 Monad

Monad é uma blockchain de Camada 1 paralela-EVM futura que traz compatibilidade total de bytecodes e RPC para aplicações de Ethereum e infraestrutura. Através de uma série de implementações técnicas inovadoras, o Monad tem como objetivo oferecer experiências mais interativas do que as blockchains existentes, ao mesmo tempo que mantém custos de transações mais baixos otimizando o desempenho e a portabilidade, com tempos de bloco de 1 segundo e finalidade com até 10.000 TPS.

Monad implementa execução paralela e pipeline superscalar para otimizar a velocidade e a taxa de transações. Semelhante ao Sei v2, Monad empregará um modelo de execução otimista, o que significa que a rede começa a executar todas as transações recebidas simultaneamente e, em seguida, analisa e valida as transações em busca de conflitos e as reexecuta conforme necessário, com o objetivo final de que o resultado seja idêntico se as transações fossem executadas sequencialmente.

É importante notar que, para manter a sincronia com o Ethereum, o Monad ordena transações em um bloco em ordem linear, com cada transação atualizada sequencialmente.

Para manter e acessar dados de blockchain de forma mais eficiente do que o estado atual oferecido pelos clientes Ethereum, a Monad criou seu próprio MonadDB personalizado, construído nativamente para blockchains. O Monad DB aproveita recursos avançados do kernel do Linux para operações de disco assíncronas eficientes, eliminando as restrições de acesso síncrono de entrada/saída. O MonadDB oferece acesso assíncrono de entrada/saída (E/S assíncrona), um recurso-chave para permitir a execução em paralelo, em que o sistema pode começar a processar a próxima transação enquanto espera para ler o estado de uma transação anterior.

Para uma analogia simples, considere cozinhar uma refeição multifacetada (espaguete com almôndegas). As etapas envolvidas são 1) preparar um molho, 2) cozinhar as almôndegas e c) cozinhar a massa. Um chef eficiente começaria fervendo água para a massa, depois preparando os ingredientes para o molho, depois jogando a massa na água já fervente, depois cozinhando o molho e, finalmente, as almôndegas, em vez de fazer cada etapa de cada vez, completando uma tarefa por completo antes de passar para a próxima.

3.3 Mover

Move é uma linguagem de programação originalmente desenvolvida pela equipe do Facebook em 2019 para seu projeto agora extinto Diem. Move foi projetado para lidar com contratos inteligentes e dados de transações de forma segura, eliminando vetores de ataque nativos de outras linguagens, como ataques de reentrância.

O MoveVM serve como o ambiente de execução nativo para blockchains baseadas em Move, aproveitando a paralelização para oferecer velocidades de execução de transações mais rápidas e maior eficiência geral.

3.3.1 Aptos

Aptos é uma blockchain de camada 1 baseada em Move desenvolvida por membros do antigo projeto Diem, que implementa execução paralela para oferecer um ambiente de alto desempenho para desenvolvedores de aplicativos. Aptos utiliza o Block-STM, uma implementação modificada do mecanismo de controle de concorrência da Memória Transacional de Software (STM).

Bloquear-STM é um mecanismo de execução paralela multi-threaded que permite a execução paralela otimista. As transações são pré-ordenadas e sequenciadas estrategicamente dentro dos blocos, o que é fundamental para resolver conflitos de forma eficiente e reexecutar essas transações. Pesquisas realizadas pela Aptos descobriram que até 160K TPS podem ser teoricamente suportados usando a paralelização do Bloquear-STM.

3.3.2 Sui

Similar ao Aptos, Sui é um blockchain de camada 1 desenvolvido por ex-membros do projeto Diem, que utiliza a linguagem Move. No entanto, Sui utiliza uma implementação personalizada do Move que muda o modelo de armazenamento e as permissões de ativos do design original do Diem. Em particular, isso permite que Sui utilize um modelo de armazenamento de estado para representar transações independentes como objetos. Cada objeto tem um ID único dentro do ambiente de execução do Sui, e ao fazer isso, permite que o sistema identifique facilmente transações não conflitantes e as processe em paralelo.

Similar ao Solana, Sui implementa execução paralela determinística, que requer que as transações declarem antecipadamente quais contas precisam acessar.

3.3.3 Movement Labs

O que é Movimento?

Movement está construindo um conjunto de ferramentas de desenvolvedor e serviços de infraestrutura de blockchain para permitir que os desenvolvedores acessem facilmente os benefícios de construir em Move. Operando como um provedor de execução como serviço semelhante à AWS para desenvolvedores Move, Movement implementa a paralelização como um recurso de design central para permitir maior throughput e maior eficiência geral da rede. O MoveVM é um ambiente de execução modular que permite que as redes blockchain expandam e ajustem suas capacidades de processamento de transações conforme necessário para poder suportar um volume crescente de transações, reforçando suas habilidades para processar e executar transações em paralelo.

Arquitetura MoveVM

O Movimento também lançará M2, um ZK-rollup que será interoperável com clientes EVM e Move. M2 herdará o motor de paralelização Block-STM e espera-se que entregue dezenas de milhares de TPS como resultado.

Pensamentos Finais

4.1 Desafios Para Sistemas Paralelos Hoje

Algumas perguntas importantes e considerações a serem ponderadas sobre o desenvolvimento de blockchains paralelas;

  • Quais compensações a rede está fazendo para permitir melhor desempenho por meio de execução paralela?
    • Menos validadores garantindo a rede possibilita velocidades mais rápidas de verificação e execução, mas isso compromete a segurança da blockchain, tornando mais fácil para os validadores conspirarem contra a rede?
    • Há um número significativo de validadores co-localizados? Esta é uma estratégia comum para minimizar a latência em sistemas cripto e não cripto, mas o que acontece com a rede no caso desse data center em particular ser comprometido?
  • Para sistemas paralelos otimistas, o processo de reexecução de transações inválidas cria um gargalo à medida que a rede escala? Como essa eficiência está sendo testada e avaliada?

Em um alto nível, as blockchains paralelas enfrentam o risco de inconsistências de registro, ou seja, gastos duplos e mudanças na ordem das transações (de fato, este é o principal benefício da execução sequencial). A paralelização determinística aborda isso criando um sistema de rotulagem interno para transações na blockchain subjacente. As blockchains que implementam processamento otimista devem garantir que os mecanismos que usam para validar e reexecutar transações sejam seguros e funcionais, e as compensações feitas para o desempenho possam ser implementadas de forma razoável.

4.2 Perspectivas Futuras / Oportunidades

A história dos computadores nos ensinou que sistemas paralelos tendem a ser mais eficientes e escaláveis ao longo do tempo do que sistemas sequenciais. O surgimento de blockchains paralelas pós-Solana destaca que essa noção também se aplica à infraestrutura cripto. Até mesmo Vitalik fez alusão aparalelizaçãocomo uma das potenciais soluções-chave para melhorar a escalabilidade dos rollups EVM recentemente. Em termos gerais, o crescimento da adoção de cripto/blockchain exige sistemas mais otimizados do que os disponíveis hoje, incluindo blockchains paralelas. As recentes dificuldades na rede da Solana destacaram que há muito espaço para melhorias no desenvolvimento de blockchains paralelas. À medida que mais equipes buscam empurrar os limites da fronteira onchain e integrar a próxima grande leva de usuários e adoção de aplicações e ecossistemas nativos de blockchain, os modelos de execução paralela fornecem um framework intuitivo para construir sistemas que podem lidar eficientemente com magnitudes de atividade de rede em uma escala que corresponde à das empresas Web2 com facilidade.

Obras Citadas

Disclaimer:

  1. Este artigo é reimpresso de [cardumeEncaminhar o Título Original 'Execução Paralela: A Próxima Geração de Blockchains', Todos os direitos autorais pertencem ao autor originalPAUL TIMOFEEV, MIKE JIN, E GABE TRAMBLE]. Se houver objeções a esta reimpressão, por favor entre em contato com oGate Aprenderequipe e eles vão lidar com isso prontamente.

  2. Isenção de Responsabilidade: As opiniões e pontos de vista expressos neste artigo são exclusivamente do autor e não constituem qualquer conselho de investimento.

  3. As traduções do artigo para outros idiomas são feitas pela equipe Gate Learn. A menos que mencionado, copiar, distribuir ou plagiar os artigos traduzidos é proibido.

Execução Paralela: A Próxima Geração de Blockchains

Avançado5/10/2024, 10:43:24 AM
Shoal Research, uma instituição de pesquisa em criptografia, analisou os projetos relacionados atuais no campo paralelo da blockchain, incluindo o progresso do Solana (SVM), EVM paralelo (Sei, Monad) e MoveVM (Aptos, Sui, Movement), e analisou os desafios enfrentados neste campo e oportunidades.

Prelúdio

1.0 Transações Blockchain

Blocos de construção são máquinas virtuais, um modelo de computação baseado em software que roda em cima de uma rede distribuída de computadores físicos aos quais qualquer um pode se juntar, mas é extremamente difícil para qualquer entidade única controlar. O conceito de uma blockchain foi primeiramente colocado por escrito no infame whitepaper do Bitcoin de Satoshi Nakamoto em 2008, como a infraestrutura central que possibilita pagamentos entre pares criptograficamente seguros no Bitcoin. Transações são para blockchains o que registros são para empresas de mídia social e internet; eles servem como registros de atividade para essa rede específica, sendo a diferença fundamental que as transações em uma blockchain são imutáveis e frequentemente publicamente observáveis.

Mas afinal, o que é exatamente uma transação?

Transações em blockchains envolvem a transferência de ativos digitais de um endereço no livro-razão distribuído para outro, garantido pelo uso de criptografia de chave pública. Transações podem ser usadas para transferências descentralizadas entre pares, ou para vários processos de autenticação e verificação também.

Um exemplo de uma transação que qualquer um pode observar em um explorador de blockchain como SeiTrace

1.1 Como as Transações Blockchain Funcionam

Quando uma transação é iniciada, ou seja, Bob envia alguns tokens para Alice, a transação de Bob é transmitida para a rede blockchain subjacente. Posteriormente, clusters de nós especializados na rede começam a verificar e validar a transação como legítima. Uma vez que um número suficiente desses nós tenha verificado o conteúdo da transação, a transação é adicionada a um bloco juntamente com outras transações de usuários. Quando um bloco está cheio, ele é adicionado à cadeia, daí o nome 'blockchain'. A transação de Bob agora faz parte de um livro-razão seguro e transparente, e ele e Alice podem verificar o conteúdo.

Em termos gerais, todas as transações de blockchain contêm metadados que ajudam os nós que operam e garantem a identificação e execução de um conjunto específico de instruções e parâmetros. Cada transação terá dados de alto nível inseridos pelo remetente original, como a quantia a ser transferida, o endereço de destino e a assinatura digital para confirmar a transação, bem como vários dados de baixo nível que são criados e anexados automaticamente, embora esses dados variem de acordo com a rede e o design.

No final, no entanto, os processos envolvidos nos bastidores na camada de rede antes da execução da transação variam de acordo com o design do blockchain.

1.1.1 Mempool

Um pool de memória, ou mempool, é uma característica comum dos designs de blockchain, implementada por redes tradicionais de blockchain como Bitcoin e Ethereum. Mempools são simplesmente zonas de buffer, ou 'salas de espera', para transações pendentes que ainda não foram adicionadas a um bloco e executadas.

Para entender melhor, podemos esquematizar o ciclo de vida de uma transação em um blockchain que utiliza um mempool;

  1. O usuário inicia e assina uma transação.
  2. Nós especializados participantes na rede blockchain verificam o conteúdo da transação para serem legítimos e conterem parâmetros apropriados.
  3. Uma vez verificada, a transação é encaminhada para o mempool público juntamente com outras transações pendentes.
  4. Eventualmente, dependendo da taxa de gás paga pela transação em relação a outras transações na mempool, a transação pendente do nosso usuário é selecionada com um grupo de outras transações pendentes para formar o próximo bloco no Blockchain. Nesta fase, o status de nossa transação será lido como 'Bem-sucedida'.
  5. Após um certo tempo ou limite baseado em blocos ter passado, o próprio bloco é finalizado e a transação se torna um registro imutável registrado na blockchain, que só poderia ser comprometido no caso de um ataque de 51%, uma tarefa extremamente difícil de realizar de outra forma.

1.1.2. No Mempool (Solana)

É importante notar que alguns blockchains, como Solana, não utilizam um mempool, e podem, em vez disso, encaminhar transações diretamente para o produtor de blocos como um meio de possibilitar alta velocidade e throughput através da produção contínua de blocos.

Vamos percorrer o ciclo de vida de uma transação em um blockchain não-mempool:

  1. O usuário inicia e assina uma transação para um aplicativo que estão usando.
  2. A aplicação roteia as informações da transação para o servidor de Chamada de Procedimento Remoto (RPC).
  3. O provedor RPC envia a transação para o produtor de bloco designado atual, e os próximos três produtores; este é um passo de precaução no caso de o líder atual não poder executar a transação a tempo. Solana emprega um cronograma de líder de slot que ajuda as RPCs a rotear as transações mais facilmente.
  4. O produtor de bloco então envia a transação assinada para os nós de consenso para verificação.
  5. Nós de consenso votam para verificar o conteúdo da transação, e uma vez completada, o status da transação é então roteado de volta para RPC > aplicativo > usuário como 'sucesso' ou 'falha'.
  6. Similar às blockchains baseadas em mempool, o bloco em si é finalizado após um certo tempo ou limiar baseado em bloco ter passado.

1.2 Execução Sequencial

Blockchain mais antigos, nomeadamente Bitcoin e Ethereum, utilizam um mecanismo de execução sequencial para transações. Cada transação adicionada ao blockchain invoca uma alteração no estado da rede, e a VM está estruturada para processar apenas uma alteração de estado de cada vez por motivos de segurança.

Isso tem levado a gargalos significativos para a capacidade da rede subjacente, à medida que o número de transações que podem ser adicionadas ao bloco fica limitado, resultando em tempos de espera mais longos e picos sem precedentes nos custos de transação, o que pode tornar a rede inutilizável às vezes. Além disso, os modelos de execução sequencial utilizam componentes de hardware de forma bastante ineficiente e, portanto, não se beneficiam dos avanços na computação, ou seja, múltiplos núcleos de processador.

Execução Paralela

2.0 O que é Execução Paralela?

A computação paralela é um componente chave da arquitetura de computadores, cujas origens podem ser rastreadas até final dos anos 1950, embora sua ideia e teoria tenham sido rastreadas até 1837. Por definição, computação paralela refere-se ao ato de utilizar múltiplos elementos de processamento simultaneamente para resolver uma operação, na qual uma tarefa maior e mais complexa é dividida em tarefas menores a serem completadas de forma mais eficiente do que de maneira serial.

Originalmente implementada apenas em sistemas de computação de alto desempenho, a computação paralela evoluiu para se tornar o paradigma dominante na arquitetura de computadores hoje, à medida que a demanda por computação aumentou exponencialmente na era da internet, exacerbada pelas limitações da escalabilidade de frequência nas décadas anteriores.

Este padrão arquitetônico se aplica às blockchains da mesma forma, apenas que a tarefa principal que os computadores resolvem é o processamento e execução de transações, ou a transferência de valor do contrato inteligente A para o contrato inteligente B, daí o termo execução paralela.

A execução paralela significa que, em vez de processar transações em série, uma blockchain pode processar várias transações não conflitantes simultaneamente. Isso pode aumentar significativamente a capacidade de uma rede de blockchain, tornando-a mais escalável e eficiente para lidar com cargas mais altas de atividade e demanda por espaço de bloco.

Para uma analogia mais simples, considere a eficiência de um supermercado com várias pistas para os compradores pagarem suas compras, em comparação com apenas uma para todos.

Por que a Execução Paralela é importante?

A execução paralela nas blockchains é projetada para desbloquear eficiências na velocidade e desempenho de uma rede, especialmente à medida que a rede vê um tráfego e demanda de recursos mais altos. No contexto dos ecossistemas cripto, a execução paralela significa que se Bob quer lançar a última coleção popular de NFTs, e Alice quer comprar sua mememoeda favorita, a rede atenderá a ambos os usuários sem comprometer qualquer qualidade de desempenho e, assim, a experiência do usuário.

Embora isso possa parecer apenas um recurso intuitivo de qualidade de vida, os desbloqueios no desempenho da rede habilitados pela execução paralela abrem caminho para o desenvolvimento de novos e inovadores casos de uso e aplicativos que podem aproveitar baixa latência e altos volumes, o que, por si só, lança as bases para a integração da próxima grande massa de usuários nos ecossistemas cripto.

Como Funciona a Execução Paralela?

Embora a premissa da execução paralela seja relativamente direta, nuances nos projetos das blockchains subjacentes afetam a forma como o processo de execução paralela se desenrola. A característica mais relevante para projetar blockchains com execução paralela é a capacidade das transações de acessar o estado de sua rede subjacente, incluindo saldos de contas, armazenamento e contratos inteligentes.

A execução paralela em blockchains pode ser categorizada como determinística ou otimista. A execução paralela determinística, empregada por blockchains como Solana, requer que as transações declarem todas as dependências de memória antecipadamente, ou seja, quais partes do estado global desejam acessar antecipadamente. Embora este passo crie uma sobrecarga adicional para os desenvolvedores, mais amplamente, permite que a rede classifique e identifique transações não conflitantes antes da execução, criando um sistema otimizado que é previsível e eficiente. Por outro lado, a execução paralela otimista é estruturada para processar todas as transações em paralelo, operando com a suposição inerente de que não há conflitos. Isso permite que o blockchain subjacente entregue uma execução de transação mais rápida, embora ao custo de uma potencial reexecução posterior em caso de conflito. Se duas transações conflitantes forem encontradas, o sistema pode então reprocessá-las e reexecutá-las seja em paralelo ou sequencialmente.

Para entender melhor as implicações dessas intricadas designações, pode ser útil analisar a execução paralela através da perspectiva de equipes que estão impulsionando a fronteira da execução paralela hoje.

Estado da Execução Paralela Hoje

Para entender melhor as implicações dessas sutilezas de design, pode ser útil analisar a execução paralela através da óptica das equipes que estão impulsionando a fronteira da execução paralela hoje.

3.1 Máquina Virtual Solana (SVM)

Solana foi a primeira rede blockchain a ser projetada em torno da execução paralela, inspirada na experiência anterior do fundador Anatoly Yakovenko na indústria de telecomunicações. Solana tem como objetivo fornecer uma plataforma para desenvolvedores que funcione o mais rápido possível, de acordo com o permitido pela física, portanto, a velocidade e eficiência desbloqueadas pela computação paralela foram uma escolha de design simples e intuitiva.

Um componente crítico para habilitar as velocidades rápidas e alta taxa de transferência da Solana é Sealevel, o ambiente de tempo de execução paralelo de contratos inteligentes da rede. Ao contrário dos ambientes baseados em EVM e WASM, Sealevel emprega uma arquitetura multi-threaded, o que significa que pode processar várias transações simultaneamente até a capacidade do núcleo do validador.

A chave para habilitar a execução paralela da Solana é que quando uma transação é habilitada, a rede atribuirá uma lista de instruções para que essa transação seja executada, especificamente quais contas e estado acessar e que alterações fazer - isso é fundamental para determinar quais transações não conflitantes podem ser executadas simultaneamente, além de habilitar transações que estão tentando acessar o mesmo estado para fazer isso simultaneamente.

Considere a eficiência que os rótulos fornecem aos sistemas de bagagem despachada nos aeroportos.

Solana também utiliza Cloudbreak, seu próprio accountsDB personalizado, para armazenar e gerenciar dados de estado a fim de permitir leituras e gravações concorrentes de transações. Cloudbreak, otimizado para execução paralela, escala horizontalmente para distribuir e gerenciar dados de estado em vários nós.

Graças à sua arquitetura paralela, Solana pode lidar com um grande número de transações e ainda executar rapidamente, dando às transações uma finalidade quase instantânea. Solana lida entre 2.000 e 10.000 transações por segundo (TPS) em média hoje. Além disso, os casos de uso para o SVM estão lentamente, mas seguramente, se expandindo, à medida que equipes como Eclipse estão implementando infraestrutura de Camada 2 que visa aproveitar o SVM como um ambiente de execução.

3.2 EVM Paralelo

O Parallel EVM descreve um novo ambiente de execução para blockchains que tem como objetivo trazer o “melhor dos dois mundos” das designs da Solana e Ethereum, com a velocidade e desempenho da Solana, e a segurança e liquidez da Ethereum. Ao processar transações em paralelo em vez de sequencialmente, como no design tradicional do EVM, os EVMs paralelos permitem que os desenvolvedores construam aplicativos em uma rede altamente performática, ao mesmo tempo em que podem alavancar conexões com a liquidez do EVM e ferramentas de desenvolvedor.

3.2.1 Sei Network

A rede Sei é uma blockchain de camada 1 de código aberto compatível com EVM que hospeda uma variedade de aplicativos descentralizados construídos em torno de alto desempenho. A Sei foi construída visando oferecer velocidades rápidas a baixos custos para usuários e desenvolvedores, e a execução paralela é um componente-chave para habilitar esse desempenho e UX. Atualmente, a Sei oferece tempos de confirmação de bloco de 390ms e processou mais de 1,9B de transações em sua mainnet pacífica.

Originalmente, Sei utilizava um modelo determinístico de execução paralela, no qual os contratos inteligentes declaravam antecipadamente seu acesso ao estado necessário para que o sistema executasse transações não conflitantes simultaneamente. Com o início da atualização V2, Sei está migrando para um modelo paralelo otimista, o que significa que todas as transações serão processadas em paralelo ao serem enviadas para a rede (a fase de execução) e, em seguida, serão revisadas quanto a informações conflitantes com transações anteriores (a fase de validação). No caso de duas ou mais transações conflitantes, ou seja, transações que tentam acessar o mesmo estado da rede, Sei identifica esse ponto de conflito e então reexecuta as transações em paralelo ou sequencialmente, dependendo da natureza do conflito.

Para armazenar e manter os dados de transação, Sei também introduzirá o SeiDB, um banco de dados personalizado que tem como objetivo melhorar as deficiências da v1 otimizando a execução paralela. O SeiDB visa reduzir o custo de armazenar dados redundantes e manter o uso eficiente do disco para melhorar o desempenho da rede. A V2 reduz a quantidade de metadados necessária para rastreamento e armazenamento, e permite um log de pré-escrita para ajudar na recuperação de dados em caso de falha.

Por último, a Sei também anunciou recentemente o lançamento de sua Parallel Stack, um framework de código aberto para permitir que soluções de escalonamento de Camada 2, ou seja, rollups, utilizem e se beneficiem da execução paralela.

3.2.2 Monad

Monad é uma blockchain de Camada 1 paralela-EVM futura que traz compatibilidade total de bytecodes e RPC para aplicações de Ethereum e infraestrutura. Através de uma série de implementações técnicas inovadoras, o Monad tem como objetivo oferecer experiências mais interativas do que as blockchains existentes, ao mesmo tempo que mantém custos de transações mais baixos otimizando o desempenho e a portabilidade, com tempos de bloco de 1 segundo e finalidade com até 10.000 TPS.

Monad implementa execução paralela e pipeline superscalar para otimizar a velocidade e a taxa de transações. Semelhante ao Sei v2, Monad empregará um modelo de execução otimista, o que significa que a rede começa a executar todas as transações recebidas simultaneamente e, em seguida, analisa e valida as transações em busca de conflitos e as reexecuta conforme necessário, com o objetivo final de que o resultado seja idêntico se as transações fossem executadas sequencialmente.

É importante notar que, para manter a sincronia com o Ethereum, o Monad ordena transações em um bloco em ordem linear, com cada transação atualizada sequencialmente.

Para manter e acessar dados de blockchain de forma mais eficiente do que o estado atual oferecido pelos clientes Ethereum, a Monad criou seu próprio MonadDB personalizado, construído nativamente para blockchains. O Monad DB aproveita recursos avançados do kernel do Linux para operações de disco assíncronas eficientes, eliminando as restrições de acesso síncrono de entrada/saída. O MonadDB oferece acesso assíncrono de entrada/saída (E/S assíncrona), um recurso-chave para permitir a execução em paralelo, em que o sistema pode começar a processar a próxima transação enquanto espera para ler o estado de uma transação anterior.

Para uma analogia simples, considere cozinhar uma refeição multifacetada (espaguete com almôndegas). As etapas envolvidas são 1) preparar um molho, 2) cozinhar as almôndegas e c) cozinhar a massa. Um chef eficiente começaria fervendo água para a massa, depois preparando os ingredientes para o molho, depois jogando a massa na água já fervente, depois cozinhando o molho e, finalmente, as almôndegas, em vez de fazer cada etapa de cada vez, completando uma tarefa por completo antes de passar para a próxima.

3.3 Mover

Move é uma linguagem de programação originalmente desenvolvida pela equipe do Facebook em 2019 para seu projeto agora extinto Diem. Move foi projetado para lidar com contratos inteligentes e dados de transações de forma segura, eliminando vetores de ataque nativos de outras linguagens, como ataques de reentrância.

O MoveVM serve como o ambiente de execução nativo para blockchains baseadas em Move, aproveitando a paralelização para oferecer velocidades de execução de transações mais rápidas e maior eficiência geral.

3.3.1 Aptos

Aptos é uma blockchain de camada 1 baseada em Move desenvolvida por membros do antigo projeto Diem, que implementa execução paralela para oferecer um ambiente de alto desempenho para desenvolvedores de aplicativos. Aptos utiliza o Block-STM, uma implementação modificada do mecanismo de controle de concorrência da Memória Transacional de Software (STM).

Bloquear-STM é um mecanismo de execução paralela multi-threaded que permite a execução paralela otimista. As transações são pré-ordenadas e sequenciadas estrategicamente dentro dos blocos, o que é fundamental para resolver conflitos de forma eficiente e reexecutar essas transações. Pesquisas realizadas pela Aptos descobriram que até 160K TPS podem ser teoricamente suportados usando a paralelização do Bloquear-STM.

3.3.2 Sui

Similar ao Aptos, Sui é um blockchain de camada 1 desenvolvido por ex-membros do projeto Diem, que utiliza a linguagem Move. No entanto, Sui utiliza uma implementação personalizada do Move que muda o modelo de armazenamento e as permissões de ativos do design original do Diem. Em particular, isso permite que Sui utilize um modelo de armazenamento de estado para representar transações independentes como objetos. Cada objeto tem um ID único dentro do ambiente de execução do Sui, e ao fazer isso, permite que o sistema identifique facilmente transações não conflitantes e as processe em paralelo.

Similar ao Solana, Sui implementa execução paralela determinística, que requer que as transações declarem antecipadamente quais contas precisam acessar.

3.3.3 Movement Labs

O que é Movimento?

Movement está construindo um conjunto de ferramentas de desenvolvedor e serviços de infraestrutura de blockchain para permitir que os desenvolvedores acessem facilmente os benefícios de construir em Move. Operando como um provedor de execução como serviço semelhante à AWS para desenvolvedores Move, Movement implementa a paralelização como um recurso de design central para permitir maior throughput e maior eficiência geral da rede. O MoveVM é um ambiente de execução modular que permite que as redes blockchain expandam e ajustem suas capacidades de processamento de transações conforme necessário para poder suportar um volume crescente de transações, reforçando suas habilidades para processar e executar transações em paralelo.

Arquitetura MoveVM

O Movimento também lançará M2, um ZK-rollup que será interoperável com clientes EVM e Move. M2 herdará o motor de paralelização Block-STM e espera-se que entregue dezenas de milhares de TPS como resultado.

Pensamentos Finais

4.1 Desafios Para Sistemas Paralelos Hoje

Algumas perguntas importantes e considerações a serem ponderadas sobre o desenvolvimento de blockchains paralelas;

  • Quais compensações a rede está fazendo para permitir melhor desempenho por meio de execução paralela?
    • Menos validadores garantindo a rede possibilita velocidades mais rápidas de verificação e execução, mas isso compromete a segurança da blockchain, tornando mais fácil para os validadores conspirarem contra a rede?
    • Há um número significativo de validadores co-localizados? Esta é uma estratégia comum para minimizar a latência em sistemas cripto e não cripto, mas o que acontece com a rede no caso desse data center em particular ser comprometido?
  • Para sistemas paralelos otimistas, o processo de reexecução de transações inválidas cria um gargalo à medida que a rede escala? Como essa eficiência está sendo testada e avaliada?

Em um alto nível, as blockchains paralelas enfrentam o risco de inconsistências de registro, ou seja, gastos duplos e mudanças na ordem das transações (de fato, este é o principal benefício da execução sequencial). A paralelização determinística aborda isso criando um sistema de rotulagem interno para transações na blockchain subjacente. As blockchains que implementam processamento otimista devem garantir que os mecanismos que usam para validar e reexecutar transações sejam seguros e funcionais, e as compensações feitas para o desempenho possam ser implementadas de forma razoável.

4.2 Perspectivas Futuras / Oportunidades

A história dos computadores nos ensinou que sistemas paralelos tendem a ser mais eficientes e escaláveis ao longo do tempo do que sistemas sequenciais. O surgimento de blockchains paralelas pós-Solana destaca que essa noção também se aplica à infraestrutura cripto. Até mesmo Vitalik fez alusão aparalelizaçãocomo uma das potenciais soluções-chave para melhorar a escalabilidade dos rollups EVM recentemente. Em termos gerais, o crescimento da adoção de cripto/blockchain exige sistemas mais otimizados do que os disponíveis hoje, incluindo blockchains paralelas. As recentes dificuldades na rede da Solana destacaram que há muito espaço para melhorias no desenvolvimento de blockchains paralelas. À medida que mais equipes buscam empurrar os limites da fronteira onchain e integrar a próxima grande leva de usuários e adoção de aplicações e ecossistemas nativos de blockchain, os modelos de execução paralela fornecem um framework intuitivo para construir sistemas que podem lidar eficientemente com magnitudes de atividade de rede em uma escala que corresponde à das empresas Web2 com facilidade.

Obras Citadas

Disclaimer:

  1. Este artigo é reimpresso de [cardumeEncaminhar o Título Original 'Execução Paralela: A Próxima Geração de Blockchains', Todos os direitos autorais pertencem ao autor originalPAUL TIMOFEEV, MIKE JIN, E GABE TRAMBLE]. Se houver objeções a esta reimpressão, por favor entre em contato com oGate Aprenderequipe e eles vão lidar com isso prontamente.

  2. Isenção de Responsabilidade: As opiniões e pontos de vista expressos neste artigo são exclusivamente do autor e não constituem qualquer conselho de investimento.

  3. As traduções do artigo para outros idiomas são feitas pela equipe Gate Learn. A menos que mencionado, copiar, distribuir ou plagiar os artigos traduzidos é proibido.

Comece agora
Registe-se e ganhe um cupão de
100 USD
!