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

Avançado5/20/2024, 4:55:29 AM
O artigo explora a aplicação da tecnologia de execução paralela no domínio do blockchain, particularmente como ela melhora a eficiência das transações, reduz custos e melhora a experiência do usuário. Solana, como pioneira na execução paralela, demonstra suas vantagens em velocidade de processamento e throughput. O artigo fornece uma explicação detalhada de como as transações de blockchain funcionam, incluindo o ciclo de vida da transação, o papel do mempool e a operação de blockchains sem um mempool. A execução paralela permite que blockchains processem várias transações não conflitantes simultaneamente, aumentando assim o throughput e a escalabilidade da rede. O artigo também discute diferentes modelos de execução paralela, incluindo modelos determinísticos e otimistas, e analisa as equipes e projetos que impulsionam a execução paralela no mercado, como Solana, Parallel EVM, Sei Network, Monad, Move language, Aptos, Sui e Movement Labs.

Prelúdio

1.0 Transações de Blockchain

Blockchain é uma máquina virtual, um modelo de computação baseado em software que roda em cima de uma rede distribuída de computadores físicos aos quais qualquer pessoa pode se juntar, mas é extremamente difícil para qualquer entidade única controlar. O conceito de blockchain foi escrito pela primeira vez no infame whitepaper do Bitcoin de Satoshi Nakomoto em 2008, como a infraestrutura central que possibilita pagamentos ponto a ponto criptograficamente seguros no Bitcoin. As transações são para blockchains o que os logs são para as empresas de mídia social e internet; eles servem como registros de atividade para aquela rede específica, sendo a diferença chave que as transações em um blockchain são imutáveis e frequentemente publicamente observáveis.

Obrigado por ler Shoal Research! Inscreva-se gratuitamente para receber novas postagens e apoiar meu trabalho.

Inscrição

Mas 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. As transações podem ser usadas para transferências descentralizadas de peer to peer, ou para vários processos de autenticação e verificação também.


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

1.1 Como as Transações de 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 bastante desses nós tenham 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 então é adicionado à cadeia, daí o nome 'blockchain'. A transação de Bob agora faz parte de um livro-razão seguro e transparente, e tanto ele quanto Alice podem verificar o conteúdo.

De uma maneira geral, todas as transações de blockchain contêm metadados que ajudam os nós que operam e seguram a rede a identificar e executar um determinado conjunto de instruções e parâmetros. Cada transação terá dados de alto nível inseridos pelo remetente original, como o valor a ser transferido, 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 da blockchain.

1.1.1 Mempool

Uma 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 'sala de espera', para transações pendentes que ainda não foram adicionadas a um bloco e executadas.

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

  1. O usuário inicia e assina uma transação.
  2. Nós especializamos os nós que participam na rede de blockchain para verificar o conteúdo da transação como legítimo e conter parâmetros apropriados.
  3. Uma vez verificada, a transação é roteada para a mempool pública ao lado de 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 na blockchain. Nesta fase, o status de nossa transação será lido como "Bem-sucedida".
  5. Após um certo tempo ou limite baseado em bloco ter passado, o bloco em si é 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 algumas 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 permitir alta velocidade e throughput por meio da produção contínua de blocos.

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

  1. O usuário inicia e assina uma transação para um aplicativo que eles 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 para os próximos três produtores; este é um passo de precaução no caso de o líder atual não conseguir executar a transação a tempo. Solana emprega um cronograma de líder de slot que ajuda os RPCs a rotear as transações de forma mais fácil.
  4. O produtor de bloco então envia a transação assinada para os nós de consenso para verificação.
  5. Os nós de consenso votam para verificar o conteúdo da transação e, uma vez concluído, o status da transação é então encaminhado de volta para RPC > aplicativo > usuário como 'sucesso' ou 'falha'.
  6. Similar aos blockchains baseados em mempool, o próprio bloco é finalizado após um certo tempo ou limite baseado em bloco ter passado.

1.2 Execução Sequencial

Blockchains 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 é 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, levando a 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 os componentes de hardware de forma bastante ineficiente e, portanto, não se beneficiam de 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 remontam tão longe quanto ofinal da década de 1950, embora sua ideação e teoria até mesmo tenham sido rastreadas até 1837. Por definição, computação paralela refere-se ao ato de utilizar vários elementos de processamento simultaneamente para resolver uma operação, em que uma tarefa maior e mais complexa é dividida em tarefas menores para ser concluída de forma mais eficiente do que 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 escala de frequência nas décadas anteriores.

Este padrão arquitetônico se aplica às blockchains de maneira muito semelhante, 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 serialmente, uma blockchain pode processar várias transações não conflitantes simultaneamente. Isso pode aumentar significativamente a capacidade de uma rede blockchain, tornando-a mais escalável e eficiente para lidar com cargas de atividade e demanda por espaço de bloco mais altas.

Para uma analogia mais simples, considere a eficiência de um supermercado com várias filas para os compradores passarem no caixa, 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 elevados. No contexto dos ecossistemas cripto, a execução paralela significa que se Bob deseja criar a última coleção popular de NFT e Alice deseja comprar sua mememoeda favorita, a rede atenderá a ambos os usuários sem comprometer qualquer qualidade no desempenho e, assim, na 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 incorporar a próxima grande massa de usuários nos ecossistemas de criptomoedas.

Como Funciona a Execução Paralela?

Embora a premissa da execução paralela seja relativamente simples, nuances nos projetos das blockchains subjacentes afetam 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, utilizada por blockchains como Solana, requer intrinsicamente 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 sobrecarga adicional para os desenvolvedores, de forma mais geral, 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 sob a suposição inerente de que não há conflitos. Isso permite que o blockchain subjacente forneça uma execução de transações mais rápida, embora com o custo de uma possível 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 complexidades de design, pode ser útil analisar a execução paralela por meio das 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 complexidades de design, pode ser útil analisar a execução paralela sob a perspectiva de 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 execute tão rapidamente quanto a física permite, portanto, a velocidade e eficiência desbloqueadas pela computação paralela foram uma escolha de design simples e intuitiva.

Em ambientes baseados em SM, a 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 mudanças fazer - isso é fundamental para determinar quais transações são não conflitantes e podem ser executadas simultaneamente, assim como habilitar transações que estão tentando acessar o mesmo estado a fazê-lo simultaneamente.

Considere a eficiência que as etiquetas proporcionam aos sistemas de bagagem despachada nos aeroportos.

Solana também utiliza Cloudbreak, seu próprio contasDB personalizado, para armazenar e gerenciar dados de estado e 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, a Solana pode lidar com um grande número de transações e ainda executar rapidamente, proporcionando transações com finalidade quase instantânea. A 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 se expandindo lentamente, à medida que equipes como a Eclipse estão implementando infraestrutura de Camada 2 que visa aproveitar o SVM como 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" dos designs da Solana e do Ethereum, com a velocidade e o desempenho da Solana, e a segurança e a liquidez do Ethereum. Ao processar transações em paralelo, em vez de sequencialmente, conforme o design tradicional do EVM, os EVMs paralelos permitem que os desenvolvedores construam aplicativos em uma rede altamente eficiente, podendo aproveitar as conexões com a liquidez e as ferramentas de desenvolvedor do EVM.

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. Sei foi construído para proporcionar 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 transações em sua mainnet pacífica.

Originalmente, Sei empregava um modelo de execução paralela determinística, no qual os contratos inteligentes declaravam antecipadamente seu acesso de estado necessário para o sistema executar transações não conflitantes simultaneamente. Com o início da atualização V2, Sei está fazendo a transição para um modelo paralelo otimista, o que significa que todas as transações serão processadas em paralelo ao serem enviadas para a rede (estágio de execução) e, em seguida, serão revisadas em busca de informações conflitantes com transações anteriores (estágio 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 dados de transações, Sei também introduzirá SeiDB, um banco de dados personalizado que tem como objetivo melhorar as deficiências da v1 otimizando a execução paralela. SeiDB visa reduzir o custo de armazenamento de dados redundantes e manter o uso eficiente do disco para melhorar o desempenho da rede. A V2 reduz a quantidade de metadados necessários para rastreamento e armazenamento, e permite um log de gravação antecipada para ajudar na recuperação de dados em caso de falha.

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

3.2.2 Monad

Monad é uma blockchain Layer 1 paralela iminente que traz compatibilidade total de bytecode e RPC para aplicações e infraestrutura Ethereum. Através de várias 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ção mais baixos, otimizando para desempenho e 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 o throughput das transações. Semelhante ao Sei v2, Monad utilizará 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 reexecuta conforme necessário, com o objetivo final de que o resultado seja idêntico se as transações tivessem sido executadas sequencialmente.

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

A fim de manter e acessar dados de blockchain de forma mais eficiente do que o estado atual dos clientes Ethereum oferece, a Monad criou seu próprio MonadDB personalizado, construído nativamente para blockchains. O Monad DB aproveita os recursos avançados do kernel 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 fundamental para permitir a execução paralela, em que o sistema pode começar a processar a próxima transação enquanto aguarda o estado de leitura 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, em seguida, colocando a massa na água fervente, depois cozinhando o molho e, finalmente, as almôndegas, ao invés de fazer cada etapa de cada vez, completando uma tarefa inteiramente 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 o seu projeto agora extinto Diem. Move foi projetado para lidar com contratos inteligentes e dados de transação de forma segura, eliminando vetores de ataque nativos de outras linguagens, como ataques de recursão.

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

3.3.1 Aptos

Aptos é um blockchain baseado em Move da camada 1 desenvolvido por membros do antigo projeto Diem, que implementa a execução paralela para oferecer um ambiente de alto desempenho para os 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).

Block-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 de blocos, o que é fundamental para resolver conflitos e reexecutar eficientemente essas transações. Pesquisas conduzidas pela Aptos descobriram que até 160K TPS podem ser teoricamente suportados usando a paralelização do Block-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 altera o modelo de armazenamento e as permissões de ativos do design original do Diem. Em particular, isso permite que o Sui utilize um modelo de armazenamento de estado para representar transações independentes como objetos. Cada objeto possui 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 Movimento Labs

O que é Movimento?

O Movement está construindo um conjunto de ferramentas de desenvolvedor e serviços de infraestrutura blockchain para permitir que os desenvolvedores acessem facilmente os benefícios de criar no Move. Operando como um provedor de execução como serviço semelhante à AWS para os desenvolvedores do Move, o Movement implementa a paralelização como uma característica 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 de 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. O 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 questões importantes e considerações a serem ponderadas quanto ao desenvolvimento de blockchains paralelas;

  • Quais compensações a rede está fazendo para permitir melhor desempenho por meio da execução paralela?
    • Menos validadores assegurando a rede permite 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 colaborarem contra a rede?
    • Existe 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 de esse centro de dados específico 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 nível elevado, as blockchains paralelas enfrentam o risco de inconsistências nos registros, ou seja, gastos duplos e alterações 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. Blockchains que implementam processamento otimista devem garantir que os mecanismos que utilizam para validar e reexecutar transações sejam seguros e funcionais, e que os compromissos feitos em termos de desempenho possam ser implementados de forma razoável.

4.2 Perspectivas Futuras / Oportunidades

A história dos computadores nos ensinou que os sistemas paralelos tendem a ser mais eficientes e escaláveis ao longo do tempo do que os sistemas sequenciais. O surgimento das blockchains paralelas pós-Solana enfatiza que essa noção também se aplica à infraestrutura de criptomoedas. 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 de 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 incorporar a próxima grande coorte de usuários e adoção em 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 corresponda à das empresas Web2 com facilidade.

Não aconselhamento financeiro ou fiscal. O objetivo deste boletim informativo é puramente educacional e não deve ser considerado como aconselhamento de investimento, aconselhamento jurídico, um pedido de compra ou venda de quaisquer ativos, ou uma sugestão para tomar quaisquer decisões financeiras. Não substitui a assessoria tributária. Consulte seu contador e realize sua própria pesquisa.

Divulgações. Todas as postagens são do próprio autor, não as opiniões de seu empregador. Esta postagem foi patrocinada pela Fundação Aster. Embora a Shoal Research tenha recebido financiamento para esta iniciativa, os patrocinadores não influenciam o conteúdo analítico. Na Shoal Research, nosso objetivo é garantir que todo o conteúdo seja objetivo e independente. Nossos processos de revisão interna mantêm os mais altos padrões de integridade, e todos os potenciais conflitos de interesse são divulgados e rigorosamente gerenciados para manter a credibilidade e imparcialidade de nossas pesquisas.

Disclaimer:

  1. Este artigo é reproduzido de [Pesquisa de Cardume]. Todos os direitos autorais pertencem ao autor original [PAUL TIMOFEEV, MIKE JIN, AND GABE TRAMBLE]. Se houver objeções a este reenvio, entre em contato com oGate Learnequipe e eles vão lidar com isso prontamente.
  2. Isenção de Responsabilidade: As opiniões expressas 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 seja mencionado, copiar, distribuir ou plagiar os artigos traduzidos é proibido.

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

Avançado5/20/2024, 4:55:29 AM
O artigo explora a aplicação da tecnologia de execução paralela no domínio do blockchain, particularmente como ela melhora a eficiência das transações, reduz custos e melhora a experiência do usuário. Solana, como pioneira na execução paralela, demonstra suas vantagens em velocidade de processamento e throughput. O artigo fornece uma explicação detalhada de como as transações de blockchain funcionam, incluindo o ciclo de vida da transação, o papel do mempool e a operação de blockchains sem um mempool. A execução paralela permite que blockchains processem várias transações não conflitantes simultaneamente, aumentando assim o throughput e a escalabilidade da rede. O artigo também discute diferentes modelos de execução paralela, incluindo modelos determinísticos e otimistas, e analisa as equipes e projetos que impulsionam a execução paralela no mercado, como Solana, Parallel EVM, Sei Network, Monad, Move language, Aptos, Sui e Movement Labs.

Prelúdio

1.0 Transações de Blockchain

Blockchain é uma máquina virtual, um modelo de computação baseado em software que roda em cima de uma rede distribuída de computadores físicos aos quais qualquer pessoa pode se juntar, mas é extremamente difícil para qualquer entidade única controlar. O conceito de blockchain foi escrito pela primeira vez no infame whitepaper do Bitcoin de Satoshi Nakomoto em 2008, como a infraestrutura central que possibilita pagamentos ponto a ponto criptograficamente seguros no Bitcoin. As transações são para blockchains o que os logs são para as empresas de mídia social e internet; eles servem como registros de atividade para aquela rede específica, sendo a diferença chave que as transações em um blockchain são imutáveis e frequentemente publicamente observáveis.

Obrigado por ler Shoal Research! Inscreva-se gratuitamente para receber novas postagens e apoiar meu trabalho.

Inscrição

Mas 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. As transações podem ser usadas para transferências descentralizadas de peer to peer, ou para vários processos de autenticação e verificação também.


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

1.1 Como as Transações de 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 bastante desses nós tenham 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 então é adicionado à cadeia, daí o nome 'blockchain'. A transação de Bob agora faz parte de um livro-razão seguro e transparente, e tanto ele quanto Alice podem verificar o conteúdo.

De uma maneira geral, todas as transações de blockchain contêm metadados que ajudam os nós que operam e seguram a rede a identificar e executar um determinado conjunto de instruções e parâmetros. Cada transação terá dados de alto nível inseridos pelo remetente original, como o valor a ser transferido, 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 da blockchain.

1.1.1 Mempool

Uma 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 'sala de espera', para transações pendentes que ainda não foram adicionadas a um bloco e executadas.

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

  1. O usuário inicia e assina uma transação.
  2. Nós especializamos os nós que participam na rede de blockchain para verificar o conteúdo da transação como legítimo e conter parâmetros apropriados.
  3. Uma vez verificada, a transação é roteada para a mempool pública ao lado de 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 na blockchain. Nesta fase, o status de nossa transação será lido como "Bem-sucedida".
  5. Após um certo tempo ou limite baseado em bloco ter passado, o bloco em si é 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 algumas 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 permitir alta velocidade e throughput por meio da produção contínua de blocos.

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

  1. O usuário inicia e assina uma transação para um aplicativo que eles 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 para os próximos três produtores; este é um passo de precaução no caso de o líder atual não conseguir executar a transação a tempo. Solana emprega um cronograma de líder de slot que ajuda os RPCs a rotear as transações de forma mais fácil.
  4. O produtor de bloco então envia a transação assinada para os nós de consenso para verificação.
  5. Os nós de consenso votam para verificar o conteúdo da transação e, uma vez concluído, o status da transação é então encaminhado de volta para RPC > aplicativo > usuário como 'sucesso' ou 'falha'.
  6. Similar aos blockchains baseados em mempool, o próprio bloco é finalizado após um certo tempo ou limite baseado em bloco ter passado.

1.2 Execução Sequencial

Blockchains 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 é 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, levando a 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 os componentes de hardware de forma bastante ineficiente e, portanto, não se beneficiam de 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 remontam tão longe quanto ofinal da década de 1950, embora sua ideação e teoria até mesmo tenham sido rastreadas até 1837. Por definição, computação paralela refere-se ao ato de utilizar vários elementos de processamento simultaneamente para resolver uma operação, em que uma tarefa maior e mais complexa é dividida em tarefas menores para ser concluída de forma mais eficiente do que 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 escala de frequência nas décadas anteriores.

Este padrão arquitetônico se aplica às blockchains de maneira muito semelhante, 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 serialmente, uma blockchain pode processar várias transações não conflitantes simultaneamente. Isso pode aumentar significativamente a capacidade de uma rede blockchain, tornando-a mais escalável e eficiente para lidar com cargas de atividade e demanda por espaço de bloco mais altas.

Para uma analogia mais simples, considere a eficiência de um supermercado com várias filas para os compradores passarem no caixa, 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 elevados. No contexto dos ecossistemas cripto, a execução paralela significa que se Bob deseja criar a última coleção popular de NFT e Alice deseja comprar sua mememoeda favorita, a rede atenderá a ambos os usuários sem comprometer qualquer qualidade no desempenho e, assim, na 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 incorporar a próxima grande massa de usuários nos ecossistemas de criptomoedas.

Como Funciona a Execução Paralela?

Embora a premissa da execução paralela seja relativamente simples, nuances nos projetos das blockchains subjacentes afetam 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, utilizada por blockchains como Solana, requer intrinsicamente 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 sobrecarga adicional para os desenvolvedores, de forma mais geral, 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 sob a suposição inerente de que não há conflitos. Isso permite que o blockchain subjacente forneça uma execução de transações mais rápida, embora com o custo de uma possível 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 complexidades de design, pode ser útil analisar a execução paralela por meio das 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 complexidades de design, pode ser útil analisar a execução paralela sob a perspectiva de 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 execute tão rapidamente quanto a física permite, portanto, a velocidade e eficiência desbloqueadas pela computação paralela foram uma escolha de design simples e intuitiva.

Em ambientes baseados em SM, a 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 mudanças fazer - isso é fundamental para determinar quais transações são não conflitantes e podem ser executadas simultaneamente, assim como habilitar transações que estão tentando acessar o mesmo estado a fazê-lo simultaneamente.

Considere a eficiência que as etiquetas proporcionam aos sistemas de bagagem despachada nos aeroportos.

Solana também utiliza Cloudbreak, seu próprio contasDB personalizado, para armazenar e gerenciar dados de estado e 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, a Solana pode lidar com um grande número de transações e ainda executar rapidamente, proporcionando transações com finalidade quase instantânea. A 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 se expandindo lentamente, à medida que equipes como a Eclipse estão implementando infraestrutura de Camada 2 que visa aproveitar o SVM como 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" dos designs da Solana e do Ethereum, com a velocidade e o desempenho da Solana, e a segurança e a liquidez do Ethereum. Ao processar transações em paralelo, em vez de sequencialmente, conforme o design tradicional do EVM, os EVMs paralelos permitem que os desenvolvedores construam aplicativos em uma rede altamente eficiente, podendo aproveitar as conexões com a liquidez e as ferramentas de desenvolvedor do EVM.

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. Sei foi construído para proporcionar 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 transações em sua mainnet pacífica.

Originalmente, Sei empregava um modelo de execução paralela determinística, no qual os contratos inteligentes declaravam antecipadamente seu acesso de estado necessário para o sistema executar transações não conflitantes simultaneamente. Com o início da atualização V2, Sei está fazendo a transição para um modelo paralelo otimista, o que significa que todas as transações serão processadas em paralelo ao serem enviadas para a rede (estágio de execução) e, em seguida, serão revisadas em busca de informações conflitantes com transações anteriores (estágio 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 dados de transações, Sei também introduzirá SeiDB, um banco de dados personalizado que tem como objetivo melhorar as deficiências da v1 otimizando a execução paralela. SeiDB visa reduzir o custo de armazenamento de dados redundantes e manter o uso eficiente do disco para melhorar o desempenho da rede. A V2 reduz a quantidade de metadados necessários para rastreamento e armazenamento, e permite um log de gravação antecipada para ajudar na recuperação de dados em caso de falha.

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

3.2.2 Monad

Monad é uma blockchain Layer 1 paralela iminente que traz compatibilidade total de bytecode e RPC para aplicações e infraestrutura Ethereum. Através de várias 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ção mais baixos, otimizando para desempenho e 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 o throughput das transações. Semelhante ao Sei v2, Monad utilizará 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 reexecuta conforme necessário, com o objetivo final de que o resultado seja idêntico se as transações tivessem sido executadas sequencialmente.

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

A fim de manter e acessar dados de blockchain de forma mais eficiente do que o estado atual dos clientes Ethereum oferece, a Monad criou seu próprio MonadDB personalizado, construído nativamente para blockchains. O Monad DB aproveita os recursos avançados do kernel 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 fundamental para permitir a execução paralela, em que o sistema pode começar a processar a próxima transação enquanto aguarda o estado de leitura 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, em seguida, colocando a massa na água fervente, depois cozinhando o molho e, finalmente, as almôndegas, ao invés de fazer cada etapa de cada vez, completando uma tarefa inteiramente 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 o seu projeto agora extinto Diem. Move foi projetado para lidar com contratos inteligentes e dados de transação de forma segura, eliminando vetores de ataque nativos de outras linguagens, como ataques de recursão.

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

3.3.1 Aptos

Aptos é um blockchain baseado em Move da camada 1 desenvolvido por membros do antigo projeto Diem, que implementa a execução paralela para oferecer um ambiente de alto desempenho para os 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).

Block-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 de blocos, o que é fundamental para resolver conflitos e reexecutar eficientemente essas transações. Pesquisas conduzidas pela Aptos descobriram que até 160K TPS podem ser teoricamente suportados usando a paralelização do Block-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 altera o modelo de armazenamento e as permissões de ativos do design original do Diem. Em particular, isso permite que o Sui utilize um modelo de armazenamento de estado para representar transações independentes como objetos. Cada objeto possui 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 Movimento Labs

O que é Movimento?

O Movement está construindo um conjunto de ferramentas de desenvolvedor e serviços de infraestrutura blockchain para permitir que os desenvolvedores acessem facilmente os benefícios de criar no Move. Operando como um provedor de execução como serviço semelhante à AWS para os desenvolvedores do Move, o Movement implementa a paralelização como uma característica 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 de 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. O 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 questões importantes e considerações a serem ponderadas quanto ao desenvolvimento de blockchains paralelas;

  • Quais compensações a rede está fazendo para permitir melhor desempenho por meio da execução paralela?
    • Menos validadores assegurando a rede permite 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 colaborarem contra a rede?
    • Existe 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 de esse centro de dados específico 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 nível elevado, as blockchains paralelas enfrentam o risco de inconsistências nos registros, ou seja, gastos duplos e alterações 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. Blockchains que implementam processamento otimista devem garantir que os mecanismos que utilizam para validar e reexecutar transações sejam seguros e funcionais, e que os compromissos feitos em termos de desempenho possam ser implementados de forma razoável.

4.2 Perspectivas Futuras / Oportunidades

A história dos computadores nos ensinou que os sistemas paralelos tendem a ser mais eficientes e escaláveis ao longo do tempo do que os sistemas sequenciais. O surgimento das blockchains paralelas pós-Solana enfatiza que essa noção também se aplica à infraestrutura de criptomoedas. 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 de 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 incorporar a próxima grande coorte de usuários e adoção em 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 corresponda à das empresas Web2 com facilidade.

Não aconselhamento financeiro ou fiscal. O objetivo deste boletim informativo é puramente educacional e não deve ser considerado como aconselhamento de investimento, aconselhamento jurídico, um pedido de compra ou venda de quaisquer ativos, ou uma sugestão para tomar quaisquer decisões financeiras. Não substitui a assessoria tributária. Consulte seu contador e realize sua própria pesquisa.

Divulgações. Todas as postagens são do próprio autor, não as opiniões de seu empregador. Esta postagem foi patrocinada pela Fundação Aster. Embora a Shoal Research tenha recebido financiamento para esta iniciativa, os patrocinadores não influenciam o conteúdo analítico. Na Shoal Research, nosso objetivo é garantir que todo o conteúdo seja objetivo e independente. Nossos processos de revisão interna mantêm os mais altos padrões de integridade, e todos os potenciais conflitos de interesse são divulgados e rigorosamente gerenciados para manter a credibilidade e imparcialidade de nossas pesquisas.

Disclaimer:

  1. Este artigo é reproduzido de [Pesquisa de Cardume]. Todos os direitos autorais pertencem ao autor original [PAUL TIMOFEEV, MIKE JIN, AND GABE TRAMBLE]. Se houver objeções a este reenvio, entre em contato com oGate Learnequipe e eles vão lidar com isso prontamente.
  2. Isenção de Responsabilidade: As opiniões expressas 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 seja mencionado, copiar, distribuir ou plagiar os artigos traduzidos é proibido.
Comece agora
Inscreva-se e ganhe um cupom de
$100
!