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

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

Prelúdio

1.0 Transações Blockchain

As blockchains são máquinas virtuais, um modelo de computação baseado em software que é executado em cima de uma rede distribuída de computadores físicos aos quais qualquer pessoa pode aderir, 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 Nakomoto em 2008, como a infraestrutura central que permite pagamentos ponto a ponto criptograficamente seguros em Bitcoin. As transações são para as blockchains o que os registros são para as empresas de redes sociais e da internet; eles servem como registros de atividade para essa rede em particular, sendo a diferença-chave que as transações em uma blockchain são imutáveis e frequentemente publicamente observáveis.

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

As 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 num 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 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. Uma vez que 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 ele e Alice podem verificar o conteúdo.

De uma forma geral, todas as transações em blockchain contêm metadados que ajudam os nós a operar e a proteger 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 transferir, 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.

Em última análise, no entanto, os processos envolvidos nos bastidores, a nível 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, é um recurso comum dos designs de blockchain, implementado por redes de blockchain tradicionais como Bitcoin e Ethereum. As 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 descrever o ciclo de vida de uma transação em um blockchain que utiliza uma mempool;

  1. O utilizador inicia e assina uma transação.
  2. Nós participantes da rede blockchain verificam os conteúdos da transação para garantir que sejam legítimos e contenham parâmetros apropriados.
  3. Uma vez verificada, a transação é encaminhada para a mempool pública 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 na blockchain. Nesta fase, o status da nossa transação será lido como "Bem-sucedida".
  5. Após um certo tempo ou limiar baseado em blocos ter passado, o bloco em si é finalizado e a transação torna-se um registo imutável gravado 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. Sem Mempool (Solana)

É importante notar que alguns blockchains, como Solana, não usam um mempool e podem, em vez disso, encaminhar transações diretamente para o produtor de blocos como forma de permitir 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 sem mempool:

  1. O utilizador inicia e assina uma transação para uma aplicação que está a utilizar.
  2. A aplicação encaminha as informações da transação para o servidor de Chamada de Procedimento Remoto (RPC).
  3. O fornecedor 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 conseguir executar a transação a tempo. Solana emprega um agendamento de líder de slot que ajuda os RPCs a rotear as transações mais facilmente.
  4. O produtor de blocos envia então 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 estado da transação é então encaminhado de volta para RPC > aplicação > usuário como 'sucesso' ou 'falha'.
  6. Semelhante às blockchains baseadas em mempool, o próprio bloco é finalizado após um certo tempo ou limiar 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 à 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, uma vez 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 em 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 já tenham sido rastreadas até 1837Por definição, a 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 a serem completadas de forma mais eficiente do que de forma 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 cálculos aumentou exponencialmente na era da internet, exacerbada pelas limitações da escala de frequência nas décadas anteriores.

Este padrão arquitetónico aplica-se à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 conflituantes simultaneamente. Isso pode aumentar significativamente a capacidade de uma rede blockchain, tornando-a mais escalável e eficiente para lidar com cargas mais elevadas de atividade e demanda por espaço de bloco.

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

Por que é importante a Execução Paralela?

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

Embora isto possa parecer simplesmente uma funcionalidade intuitiva de qualidade de vida, os desbloqueios no desempenho da rede possibilitados pela execução paralela abrem caminho para o desenvolvimento de novos e inovadores casos de uso e aplicações que podem tirar partido de baixa latência e volumes elevados, o que por si só lança as bases para integrar a próxima grande coorte de utilizadores nos ecossistemas de criptomoedas.

Como Funciona a Execução Paralela?

Embora a premissa da execução paralela seja relativamente simples, nuances nos designs 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 ampla permite à rede classificar e identificar transações não conflituosas antes da execução, criando um sistema otimizado que é previsível e eficiente. Por outro lado, a execução paralela otimista está estruturada para processar todas as transações em paralelo, operando sob a suposição inerente de que não existem conflitos. Isso permite que o blockchain subjacente entregue uma execução de transações mais rápida, embora ao custo de potencial reexecução posteriormente no caso de um conflito. Se forem encontradas duas transações conflituosas submetidas, o sistema pode então reprocessá-las e reexecutá-las quer em paralelo quer sequencialmente.

Para entender melhor as implicações destas intricacias de design, pode ser útil analisar a execução paralela através da lente das equipas que estão a empurrar a fronteira da execução paralela hoje.

Estado da Execução Paralela Hoje

Para melhor compreender as implicações destas intricadas de design, pode ser útil analisar a execução paralela através da perspetiva das equipas que estão a impulsionar a fronteira da execução paralela nos dias de 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 tão rapidamente quanto a física permite, sendo assim, a velocidade e eficiência desbloqueadas pela computação paralela foram uma escolha de design simples e intuitiva.

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

A chave para permitir a execução paralela da Solana é que, quando uma transação é ativada, 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 - isto é fundamental para determinar quais transações não são conflituantes e podem ser executadas simultaneamente, bem como para permitir transações que estão tentando acessar o mesmo estado para o fazerem simultaneamente.

Considere a eficiência que as etiquetas proporcionam aos sistemas de bagagens verificadas nos aeroportos.

Solana também utiliza Cloudbreak, sua própria contasDB personalizada, para armazenar e gerir dados de estado e permitir leituras e escritas concorrentes de transações. Cloudbreak, otimizado para execução paralela, dimensiona horizontalmente para distribuir e gerir dados de estado em vários nós.

Graças à sua arquitetura paralela, a Solana consegue lidar com um grande número de transações e ainda assim executar rapidamente, conferindo às transações uma finalidade quase instantânea. Atualmente, a Solana processa entre 2.000 e 10.000 transações por segundo (TPS) em média. Além disso, os casos de uso para o SVM estão a expandir lentamente, à medida que equipas como a Eclipse estão a implementar infraestruturas de Camada 2 que visam tirar partido do 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 da 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, de acordo com o design tradicional do EVM, os EVMs paralelos permitem aos desenvolvedores construir aplicações em uma rede altamente eficiente, enquanto podem aproveitar as conexões com a liquidez e ferramentas de desenvolvedor do EVM.

3.2.1 Rede Sei

A rede Sei é uma blockchain de camada 1 de código aberto compatível com EVM, que hospeda uma variedade de aplicações descentralizadas construídas em torno de alto desempenho. A Sei foi desenvolvida para 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 do pacífico.

Inicialmente, a Sei utilizava um modelo de execução paralela determinístico, no qual os contratos inteligentes declaravam antecipadamente o acesso ao estado necessário para o sistema executar transações não conflituosas simultaneamente. Com o início da sua atualização V2, a Sei está a fazer a transição para um modelo paralelo otimista, o que significa que todas as transações serão processadas em paralelo após serem submetidas à rede (a fase de execução), e depois serão revistas quanto a informações conflituosas com transações anteriores (a fase de validação). No caso de duas ou mais transações conflituosas, ou seja, transações que tentam aceder ao mesmo estado de rede, a Sei identifica este ponto de conflito e depois reexecuta as transações em paralelo ou sequencialmente, dependendo da natureza do conflito.

Para armazenar e manter os dados de transação, a Sei também introduzirá o SeiDB, um banco de dados personalizado que visa melhorar as deficiências da v1 otimizando a execução paralela. O 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 fins de 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 que as soluções de escalonamento de Camada 2, ou seja, rollups, utilizem e beneficiem da execução paralela.

3.2.2 Monad

Monad é uma blockchain de camada 1 paralela-EVM futura que traz total compatibilidade 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 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 o débito das transações. Semelhante ao Sei v2, o 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 depois analisa e valida as transações em busca de conflitos e as reexecuta de acordo, com o objetivo final de que o resultado seja idêntico se as transações tivessem sido executadas sequencialmente.

É importante notar que, para manter a sincronicidade com o Ethereum, o Monad ordena transações num bloco de forma linear, com cada transação atualizada sequencialmente.

Para manter e aceder aos dados da blockchain de forma mais eficiente do que o estado atual oferecido pelos clientes Ethereum, a Monad criou o seu próprio MonadDB personalizado, construído nativamente para blockchains. O Monad DB aproveita funcionalidades avançadas 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), uma funcionalidade chave para permitir a execução paralela, onde 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). Os passos envolvidos são 1) preparar um molho, 2) cozinhar as almôndegas e c) cozinhar a massa. Um chef eficiente começaria por ferver água para a massa, depois preparar os ingredientes para o molho, depois adicionar a massa na água a ferver, depois cozinhar o molho e, finalmente, as almôndegas, em vez de fazer cada passo de cada vez, completando uma tarefa inteiramente antes de avançar.

3.3 Mover

Move é uma linguagem de programação desenvolvida originalmente pela equipa do Facebook em 2019 para o 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 línguas, como ataques de reentrada.

O MoveVM serve como o ambiente de execução nativo para blockchains baseados 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 é 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 Bloco-STM, uma implementação modificada do mecanismo de controle de concorrência da Memória Transacional de Software (STM).

Bloco-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 de forma eficiente e reexecutar essas transações. A pesquisa conduzida pela Aptos descobriu que até 160K TPS podem ser teoricamente suportados usando a paralelização do Bloco-STM.

3.3.2 Sui

Semelhante ao Aptos, o Sui é um blockchain de camada 1 desenvolvido por antigos membros do projeto Diem, que utiliza a linguagem Move. No entanto, o 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 tem um ID único dentro do ambiente de execução do Sui e, ao fazer isso, o sistema permite identificar facilmente transações não conflitantes e processá-las em paralelo.

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

3.3.3 Movement Labs

O que é Movimento?

Movement está a construir um conjunto de ferramentas de desenvolvimento e serviços de infraestrutura blockchain para permitir que os programadores acedam facilmente aos benefícios de trabalhar no Move. A operar como um fornecedor de execução como serviço semelhante à AWS para programadores do Move, a Movement implementa a paralelização como uma funcionalidade de design central para permitir uma maior capacidade de processamento e uma maior eficiência global da rede. O MoveVM é um ambiente de execução modular que permite que as redes blockchain expandam e ajustem as suas capacidades de processamento de transações conforme necessário para poderem suportar um volume crescente de transações, reforçando as suas capacidades 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 mecanismo 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 sobre o desenvolvimento de blockchains paralelas;

  • Que compensações está a rede a fazer para permitir um melhor desempenho através da execução paralela?
    • Menos validadores a proteger a rede permite velocidades de verificação e execução mais rápidas, mas isso compromete a segurança da blockchain, tornando mais fácil para os validadores conspirarem 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 à rede no caso desse centro de dados 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 está sendo testada e avaliada essa eficiência?

Em um nível elevado, os blockchains paralelos 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 interna para transações no blockchain subjacente. Os blockchains que implementam processamento otimista devem garantir que os mecanismos que usam para validar e reexecutar transações sejam seguros e funcionais, e os compromissos feitos em termos de desempenho possam ser implementados de forma razoável.

4.2 Perspetivas Futuras / Oportunidades

A história dos computadores ensinou-nos 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 esta noção se aplica também à infraestrutura cripto. Até o próprio Vitalik fez alusão aparalelização como 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 que sejam mais ótimos do que o que está disponível hoje, incluindo blockchains paralelos. As recentes lutas de rede de Solana destacaram que há muito espaço para melhorias no desenvolvimento de blockchains paralelas. À medida que mais equipes procuram expandir os limites da fronteira onchain e integrar a próxima coorte em massa de usuários e adoção de aplicativos e ecossistemas nativos de blockchain, os modelos de execução paralela fornecem uma estrutura intuitiva para a construção de sistemas que podem lidar eficientemente com magnitudes de atividade de rede em uma escala que corresponde à das empresas Web2 com facilidade.

Obras Citadas

Aviso legal:

  1. Este artigo é reproduzido a partir de [cardumeAvance 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, entre em contato com o Gate Aprenderequipa e eles vão tratar disso 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 da Gate Learn. Salvo indicação em contrário, a cópia, distribuição ou plágio dos artigos traduzidos é proibida.

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

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

Prelúdio

1.0 Transações Blockchain

As blockchains são máquinas virtuais, um modelo de computação baseado em software que é executado em cima de uma rede distribuída de computadores físicos aos quais qualquer pessoa pode aderir, 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 Nakomoto em 2008, como a infraestrutura central que permite pagamentos ponto a ponto criptograficamente seguros em Bitcoin. As transações são para as blockchains o que os registros são para as empresas de redes sociais e da internet; eles servem como registros de atividade para essa rede em particular, sendo a diferença-chave que as transações em uma blockchain são imutáveis e frequentemente publicamente observáveis.

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

As 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 num 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 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. Uma vez que 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 ele e Alice podem verificar o conteúdo.

De uma forma geral, todas as transações em blockchain contêm metadados que ajudam os nós a operar e a proteger 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 transferir, 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.

Em última análise, no entanto, os processos envolvidos nos bastidores, a nível 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, é um recurso comum dos designs de blockchain, implementado por redes de blockchain tradicionais como Bitcoin e Ethereum. As 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 descrever o ciclo de vida de uma transação em um blockchain que utiliza uma mempool;

  1. O utilizador inicia e assina uma transação.
  2. Nós participantes da rede blockchain verificam os conteúdos da transação para garantir que sejam legítimos e contenham parâmetros apropriados.
  3. Uma vez verificada, a transação é encaminhada para a mempool pública 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 na blockchain. Nesta fase, o status da nossa transação será lido como "Bem-sucedida".
  5. Após um certo tempo ou limiar baseado em blocos ter passado, o bloco em si é finalizado e a transação torna-se um registo imutável gravado 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. Sem Mempool (Solana)

É importante notar que alguns blockchains, como Solana, não usam um mempool e podem, em vez disso, encaminhar transações diretamente para o produtor de blocos como forma de permitir 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 sem mempool:

  1. O utilizador inicia e assina uma transação para uma aplicação que está a utilizar.
  2. A aplicação encaminha as informações da transação para o servidor de Chamada de Procedimento Remoto (RPC).
  3. O fornecedor 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 conseguir executar a transação a tempo. Solana emprega um agendamento de líder de slot que ajuda os RPCs a rotear as transações mais facilmente.
  4. O produtor de blocos envia então 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 estado da transação é então encaminhado de volta para RPC > aplicação > usuário como 'sucesso' ou 'falha'.
  6. Semelhante às blockchains baseadas em mempool, o próprio bloco é finalizado após um certo tempo ou limiar 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 à 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, uma vez 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 em 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 já tenham sido rastreadas até 1837Por definição, a 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 a serem completadas de forma mais eficiente do que de forma 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 cálculos aumentou exponencialmente na era da internet, exacerbada pelas limitações da escala de frequência nas décadas anteriores.

Este padrão arquitetónico aplica-se à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 conflituantes simultaneamente. Isso pode aumentar significativamente a capacidade de uma rede blockchain, tornando-a mais escalável e eficiente para lidar com cargas mais elevadas de atividade e demanda por espaço de bloco.

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

Por que é importante a Execução Paralela?

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

Embora isto possa parecer simplesmente uma funcionalidade intuitiva de qualidade de vida, os desbloqueios no desempenho da rede possibilitados pela execução paralela abrem caminho para o desenvolvimento de novos e inovadores casos de uso e aplicações que podem tirar partido de baixa latência e volumes elevados, o que por si só lança as bases para integrar a próxima grande coorte de utilizadores nos ecossistemas de criptomoedas.

Como Funciona a Execução Paralela?

Embora a premissa da execução paralela seja relativamente simples, nuances nos designs 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 ampla permite à rede classificar e identificar transações não conflituosas antes da execução, criando um sistema otimizado que é previsível e eficiente. Por outro lado, a execução paralela otimista está estruturada para processar todas as transações em paralelo, operando sob a suposição inerente de que não existem conflitos. Isso permite que o blockchain subjacente entregue uma execução de transações mais rápida, embora ao custo de potencial reexecução posteriormente no caso de um conflito. Se forem encontradas duas transações conflituosas submetidas, o sistema pode então reprocessá-las e reexecutá-las quer em paralelo quer sequencialmente.

Para entender melhor as implicações destas intricacias de design, pode ser útil analisar a execução paralela através da lente das equipas que estão a empurrar a fronteira da execução paralela hoje.

Estado da Execução Paralela Hoje

Para melhor compreender as implicações destas intricadas de design, pode ser útil analisar a execução paralela através da perspetiva das equipas que estão a impulsionar a fronteira da execução paralela nos dias de 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 tão rapidamente quanto a física permite, sendo assim, a velocidade e eficiência desbloqueadas pela computação paralela foram uma escolha de design simples e intuitiva.

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

A chave para permitir a execução paralela da Solana é que, quando uma transação é ativada, 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 - isto é fundamental para determinar quais transações não são conflituantes e podem ser executadas simultaneamente, bem como para permitir transações que estão tentando acessar o mesmo estado para o fazerem simultaneamente.

Considere a eficiência que as etiquetas proporcionam aos sistemas de bagagens verificadas nos aeroportos.

Solana também utiliza Cloudbreak, sua própria contasDB personalizada, para armazenar e gerir dados de estado e permitir leituras e escritas concorrentes de transações. Cloudbreak, otimizado para execução paralela, dimensiona horizontalmente para distribuir e gerir dados de estado em vários nós.

Graças à sua arquitetura paralela, a Solana consegue lidar com um grande número de transações e ainda assim executar rapidamente, conferindo às transações uma finalidade quase instantânea. Atualmente, a Solana processa entre 2.000 e 10.000 transações por segundo (TPS) em média. Além disso, os casos de uso para o SVM estão a expandir lentamente, à medida que equipas como a Eclipse estão a implementar infraestruturas de Camada 2 que visam tirar partido do 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 da 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, de acordo com o design tradicional do EVM, os EVMs paralelos permitem aos desenvolvedores construir aplicações em uma rede altamente eficiente, enquanto podem aproveitar as conexões com a liquidez e ferramentas de desenvolvedor do EVM.

3.2.1 Rede Sei

A rede Sei é uma blockchain de camada 1 de código aberto compatível com EVM, que hospeda uma variedade de aplicações descentralizadas construídas em torno de alto desempenho. A Sei foi desenvolvida para 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 do pacífico.

Inicialmente, a Sei utilizava um modelo de execução paralela determinístico, no qual os contratos inteligentes declaravam antecipadamente o acesso ao estado necessário para o sistema executar transações não conflituosas simultaneamente. Com o início da sua atualização V2, a Sei está a fazer a transição para um modelo paralelo otimista, o que significa que todas as transações serão processadas em paralelo após serem submetidas à rede (a fase de execução), e depois serão revistas quanto a informações conflituosas com transações anteriores (a fase de validação). No caso de duas ou mais transações conflituosas, ou seja, transações que tentam aceder ao mesmo estado de rede, a Sei identifica este ponto de conflito e depois reexecuta as transações em paralelo ou sequencialmente, dependendo da natureza do conflito.

Para armazenar e manter os dados de transação, a Sei também introduzirá o SeiDB, um banco de dados personalizado que visa melhorar as deficiências da v1 otimizando a execução paralela. O 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 fins de 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 que as soluções de escalonamento de Camada 2, ou seja, rollups, utilizem e beneficiem da execução paralela.

3.2.2 Monad

Monad é uma blockchain de camada 1 paralela-EVM futura que traz total compatibilidade 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 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 o débito das transações. Semelhante ao Sei v2, o 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 depois analisa e valida as transações em busca de conflitos e as reexecuta de acordo, com o objetivo final de que o resultado seja idêntico se as transações tivessem sido executadas sequencialmente.

É importante notar que, para manter a sincronicidade com o Ethereum, o Monad ordena transações num bloco de forma linear, com cada transação atualizada sequencialmente.

Para manter e aceder aos dados da blockchain de forma mais eficiente do que o estado atual oferecido pelos clientes Ethereum, a Monad criou o seu próprio MonadDB personalizado, construído nativamente para blockchains. O Monad DB aproveita funcionalidades avançadas 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), uma funcionalidade chave para permitir a execução paralela, onde 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). Os passos envolvidos são 1) preparar um molho, 2) cozinhar as almôndegas e c) cozinhar a massa. Um chef eficiente começaria por ferver água para a massa, depois preparar os ingredientes para o molho, depois adicionar a massa na água a ferver, depois cozinhar o molho e, finalmente, as almôndegas, em vez de fazer cada passo de cada vez, completando uma tarefa inteiramente antes de avançar.

3.3 Mover

Move é uma linguagem de programação desenvolvida originalmente pela equipa do Facebook em 2019 para o 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 línguas, como ataques de reentrada.

O MoveVM serve como o ambiente de execução nativo para blockchains baseados 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 é 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 Bloco-STM, uma implementação modificada do mecanismo de controle de concorrência da Memória Transacional de Software (STM).

Bloco-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 de forma eficiente e reexecutar essas transações. A pesquisa conduzida pela Aptos descobriu que até 160K TPS podem ser teoricamente suportados usando a paralelização do Bloco-STM.

3.3.2 Sui

Semelhante ao Aptos, o Sui é um blockchain de camada 1 desenvolvido por antigos membros do projeto Diem, que utiliza a linguagem Move. No entanto, o 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 tem um ID único dentro do ambiente de execução do Sui e, ao fazer isso, o sistema permite identificar facilmente transações não conflitantes e processá-las em paralelo.

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

3.3.3 Movement Labs

O que é Movimento?

Movement está a construir um conjunto de ferramentas de desenvolvimento e serviços de infraestrutura blockchain para permitir que os programadores acedam facilmente aos benefícios de trabalhar no Move. A operar como um fornecedor de execução como serviço semelhante à AWS para programadores do Move, a Movement implementa a paralelização como uma funcionalidade de design central para permitir uma maior capacidade de processamento e uma maior eficiência global da rede. O MoveVM é um ambiente de execução modular que permite que as redes blockchain expandam e ajustem as suas capacidades de processamento de transações conforme necessário para poderem suportar um volume crescente de transações, reforçando as suas capacidades 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 mecanismo 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 sobre o desenvolvimento de blockchains paralelas;

  • Que compensações está a rede a fazer para permitir um melhor desempenho através da execução paralela?
    • Menos validadores a proteger a rede permite velocidades de verificação e execução mais rápidas, mas isso compromete a segurança da blockchain, tornando mais fácil para os validadores conspirarem 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 à rede no caso desse centro de dados 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 está sendo testada e avaliada essa eficiência?

Em um nível elevado, os blockchains paralelos 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 interna para transações no blockchain subjacente. Os blockchains que implementam processamento otimista devem garantir que os mecanismos que usam para validar e reexecutar transações sejam seguros e funcionais, e os compromissos feitos em termos de desempenho possam ser implementados de forma razoável.

4.2 Perspetivas Futuras / Oportunidades

A história dos computadores ensinou-nos 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 esta noção se aplica também à infraestrutura cripto. Até o próprio Vitalik fez alusão aparalelização como 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 que sejam mais ótimos do que o que está disponível hoje, incluindo blockchains paralelos. As recentes lutas de rede de Solana destacaram que há muito espaço para melhorias no desenvolvimento de blockchains paralelas. À medida que mais equipes procuram expandir os limites da fronteira onchain e integrar a próxima coorte em massa de usuários e adoção de aplicativos e ecossistemas nativos de blockchain, os modelos de execução paralela fornecem uma estrutura intuitiva para a construção de sistemas que podem lidar eficientemente com magnitudes de atividade de rede em uma escala que corresponde à das empresas Web2 com facilidade.

Obras Citadas

Aviso legal:

  1. Este artigo é reproduzido a partir de [cardumeAvance 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, entre em contato com o Gate Aprenderequipa e eles vão tratar disso 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 da Gate Learn. Salvo indicação em contrário, a cópia, distribuição ou plágio dos artigos traduzidos é proibida.

即刻开始交易
注册并交易即可获得
$100
和价值
$5500
理财体验金奖励!