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 da Blockchain, particularmente como melhora a eficiência das transações, reduz custos e melhora a experiência do usuário. Solana, como pioneira da execução paralela, demonstra suas vantagens em velocidade de processamento e throughput. O artigo fornece uma explicação detalhada de como funcionam as transações na blockchain, 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 as 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 em 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 se juntar, mas é extremamente difícil para qualquer entidade única controlar. O conceito de uma blockchain foi primeiro colocado por escrito no infame whitepaper do Bitcoin de Satoshi Nakomoto em 2008, como a infraestrutura central que possibilita pagamentos peer-to-peer criptograficamente seguros em Bitcoin. As transações são para as blockchains o que os logs são para as empresas de mídia social e internet; elas servem como registros de atividade para essa rede específica, sendo a diferença fundamental que as transações em uma blockchain são imutáveis e frequentemente publicamente observáveis.

Obrigado por ler a Shoal Research! Subscreva gratuitamente para receber novas publicações e apoiar o meu trabalho.

Subscrever

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

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


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

1.1 Como funcionam as transações de Blockchain

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 trabalhar verificando e validando 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 junto com outras transações do usuário. Uma vez que um bloco está cheio, ele é adicionado à cadeia, daí o nome 'blockchain'. A transação de Bob agora faz parte de um livro razão seguro e transparente, e ele e Alice podem verificar o conteúdo.

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

Em última análise, 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

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

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

  1. O utilizador inicia e assina uma transação.
  2. Nós de nós especializados que participam na rede blockchain verificam o conteúdo da transação para garantir que é legítimo e contém 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á "Bem-sucedida".
  5. Depois de um certo tempo ou limite baseado em blocos ter passado, o bloco em si é finalizado e a transação torna-se um registo imutável registado 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 utilizam um mempool e podem, em vez disso, encaminhar transações diretamente para o produtor de bloco como forma de permitir alta velocidade e débito através da produção contínua de blocos.

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

  1. O utilizador inicia e assina uma transação para uma aplicação que está a usar.
  2. A aplicação encaminha as informações da transação para o servidor de Chamada de Procedimento Remoto (RPC).
  3. O fornecedor de 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 calendário 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ída, o estado da transação é então encaminhado de volta para RPC > aplicação > usuário como 'sucesso' ou 'falhou'.
  6. Semelhante às blockchains baseadas em mempool, o bloco em si é finalizado após um certo tempo ou limiar baseado em blocos 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 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 o throughput 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 dos avanços na computação, ou seja, vários núcleos de processador.

Execução Paralela

2.0 O que é a Execução Paralela?

A computação paralela é um componente-chave da arquitetura de computadores cujas origens podem ser rastreadas até o final dos anos 1950, embora a sua ideia e teoria remontem até1837Por definição, a computação paralela refere-se ao ato de utilizar múltiplos elementos de processamento simultaneamente para resolver uma operação, onde uma tarefa maior e mais complexa é dividida em tarefas mais pequenas 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 computação aumentou exponencialmente na era da internet, exacerbada pelas limitações da escalabilidade de frequência nas décadas anteriores.

Este padrão arquitetónico aplica-se às blockchains de forma 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 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 altas de atividade e demanda por espaço em bloco.

Para uma analogia mais simples, considere a eficiência de um supermercado com várias pistas para os compradores 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 utilizadores sem comprometer qualquer qualidade no desempenho e, assim, na experiência do utilizador.

Embora isso possa parecer apenas uma característica intuitiva 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 aplicações que podem aproveitar baixa latência e altos volumes, o que, por si só, lança as bases para a integração da próxima grande 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 conta, 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 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, mais amplamente permite que a rede classifique e identifique 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 é 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ção mais rápida, embora ao custo de uma 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 em paralelo ou sequencialmente.

A fim de entender melhor as implicações dessas complexidades de projeto, pode ser útil analisar a execução paralela através da lente de equipes que empurram a fronteira da execução paralela hoje.

Estado da Execução Paralela Hoje

A fim de entender melhor as implicações dessas complexidades de projeto, pode ser útil analisar a execução paralela através da lente de equipes que empurram 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 de desenvolvimento que funcione tão rápido 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 de vários threads, 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 que contas e estado acessar e que alterações fazer - isso é fundamental para determinar quais transações são não conflitantes e podem ser executadas simultaneamente, bem como habilitar transações que estão tentando acessar o mesmo estado para fazê-lo simultaneamente.

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

Solana também utiliza Cloudbreak, sua própria accountsDB personalizada, para armazenar e gerenciar dados de estado a fim de permitir leituras e escritas simultâneas de transações. Cloudbreak, otimizado para execução paralela, escala horizontalmente para distribuir e gerenciar dados de estado entre vários nós.

Graças à sua arquitetura paralela, a Solana pode lidar com um grande número de transações e ainda assim executar rapidamente, proporcionando transações quase instantâneas. A Solana lida, em média, entre 2.000 e 10.000 transações por segundo (TPS) hoje. 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 Parallel EVM

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 Ethereum, com a velocidade e desempenho da Solana e a segurança e liquidez da Ethereum. Ao processar transações em paralelo, em vez de sequencialmente como no design tradicional do EVM, os EVMs paralelos permitem aos desenvolvedores construir aplicações numa rede altamente performante, ao mesmo tempo que podem aproveitar as conexões com a liquidez do EVM e as ferramentas de desenvolvimento.

3.2.1 Sei Network

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

Originalmente, a Sei utilizava um modelo de execução paralela determinística, no qual os contratos inteligentes declaravam antecipadamente o acesso ao estado necessário para que o sistema executasse 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 ao serem submetidas à rede (a fase de execução) e, em seguida, 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 da rede, a Sei identifica este ponto de conflito e depois volta a executar as transações em paralelo ou sequencialmente, dependendo da natureza do conflito.

Para armazenar e manter os dados da transação, Sei também introduzirá SeiDB, um banco de dados personalizado que visa melhorar as deficiências da v1, otimizando a execução paralela. SeiDB tem como objetivo reduzir os custos de armazenamento de dados redundantes e manter a utilização eficiente do disco para melhorar o desempenho da rede. A V2 reduz a quantidade de metadados necessária para rastreamento e armazenamento, e permite um log de 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 da sua Pilha Paralela, um framework open-source para permitir que as soluções de escalabilidade de Camada 2, ou seja, rollups, utilizem e beneficiem da execução paralela.

3.2.2 Monad

Monad é uma blockchain de camada 1 paralela do EVM 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, mantendo custos de transação mais baixos através da otimização de 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 débito 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 sincronia com o Ethereum, a Monad ordena transações num bloco de forma linear, com cada transação atualizada sequencialmente.

Para manter e aceder aos dados de blockchain de forma mais eficiente do que o estado atual oferecido pelos clientes Ethereum, a Monad criou a sua própria MonadDB personalizada, construída nativamente para blockchains. O Monad DB aproveita funcionalidades avançadas do kernel do Linux para operações de disco assíncronas eficientes, eliminando as restrições do acesso de entrada/saída síncrono. A MonadDB oferece acesso assíncrono de entrada/saída (E/S assíncrona), uma funcionalidade chave para permitir a execução paralela, em que o sistema pode começar a processar a transação seguinte enquanto aguarda a leitura do estado para 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 colocar a massa na água que está a ferver, depois cozinhar o molho e, finalmente, as almôndegas, em vez de fazer cada passo de cada vez, completando uma tarefa por completo antes de passar para a próxima.

3.3 Mover

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

O MoveVM funciona como o ambiente de execução nativo para blockchains baseados em Move, tirando proveito da paralelização para oferecer velocidades de execução de transação mais rápidas e maior eficiência geral.

3.3.1 Aptos

Aptos é uma blockchain baseada em Move na Camada 1 desenvolvida por membros do antigo projeto Diem, que implementa 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 de Memória Transacional de Software (STM).

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

3.3.2 Sui

Semelhante ao Aptos, Sui é uma blockchain de camada 1 desenvolvida 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 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 conflituantes e processá-las em paralelo.

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

3.3.3 Laboratórios de Movimento

O que é Movimento?

A Movement está a construir um conjunto de ferramentas de desenvolvimento e serviços de infraestrutura de blockchain para permitir que os programadores acedam facilmente aos benefícios de construir em Move. A operar como um fornecedor de execução como serviço semelhante à AWS para programadores 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 geral 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á o 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.

Considerações Finais

4.1 Desafios Para Sistemas Paralelos Hoje

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

  • Que compensações está a rede a fazer para permitir um melhor desempenho através da execução paralela?
    • Menos validadores a garantir a rede permite velocidades de verificação e execução mais rápidas, mas isso compromete a segurança da blockchain, uma vez que se torna mais fácil para os validadores conluirem contra a rede?
    • Existe um número significativo de validadores co-localizados? Esta é uma estratégia comum para minimizar a latência em sistemas criptográficos e não criptográficos, 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á a ser testada e avaliada esta eficiência?

Num nível elevado, as blockchains paralelas enfrentam o risco de inconsistências de ledger, ou seja, gastos duplos e alterações na ordem das transações (de facto, este é o principal benefício da execução sequencial). A paralelização determinística aborda isso criando um sistema de rotulagem interno para transações na blockchain subjacente. As blockchains que implementam processamento otimista devem garantir que os mecanismos que 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 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 de blockchains paralelos pós-Solana enfatiza que esta noção também se aplica à infraestrutura cripto. Até 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.

Não é aconselhamento financeiro ou fiscal. O objetivo desta newsletter é puramente educativo e não deve ser considerado como aconselhamento de investimento, aconselhamento legal, um pedido de compra ou venda de ativos, ou uma sugestão para tomar decisões financeiras. Não substitui o aconselhamento fiscal. Consulte o seu contabilista e faça a sua própria pesquisa.

Divulgações. Todas as publicações são da autoria do autor, não refletem as opiniões do seu empregador. Esta publicação 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, temos como objetivo garantir que todo o conteúdo seja objetivo e independente. Os 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 geridos para manter a credibilidade e imparcialidade da nossa pesquisa.

Isenção de responsabilidade:

  1. Este artigo é reproduzido a partir de [Pesquisa Shoal]. Todos os direitos de autor pertencem ao autor original [PAUL TIMOFEEV, MIKE JIN, E GABE TRAMBLE]. Se houver objeções a esta reedição, entre em contato com o Gate Learnequipa, 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. Salvo indicação em contrário, 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 da Blockchain, particularmente como melhora a eficiência das transações, reduz custos e melhora a experiência do usuário. Solana, como pioneira da execução paralela, demonstra suas vantagens em velocidade de processamento e throughput. O artigo fornece uma explicação detalhada de como funcionam as transações na blockchain, 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 as 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 em 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 se juntar, mas é extremamente difícil para qualquer entidade única controlar. O conceito de uma blockchain foi primeiro colocado por escrito no infame whitepaper do Bitcoin de Satoshi Nakomoto em 2008, como a infraestrutura central que possibilita pagamentos peer-to-peer criptograficamente seguros em Bitcoin. As transações são para as blockchains o que os logs são para as empresas de mídia social e internet; elas servem como registros de atividade para essa rede específica, sendo a diferença fundamental que as transações em uma blockchain são imutáveis e frequentemente publicamente observáveis.

Obrigado por ler a Shoal Research! Subscreva gratuitamente para receber novas publicações e apoiar o meu trabalho.

Subscrever

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

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


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

1.1 Como funcionam as transações de Blockchain

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 trabalhar verificando e validando 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 junto com outras transações do usuário. Uma vez que um bloco está cheio, ele é adicionado à cadeia, daí o nome 'blockchain'. A transação de Bob agora faz parte de um livro razão seguro e transparente, e ele e Alice podem verificar o conteúdo.

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

Em última análise, 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

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

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

  1. O utilizador inicia e assina uma transação.
  2. Nós de nós especializados que participam na rede blockchain verificam o conteúdo da transação para garantir que é legítimo e contém 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á "Bem-sucedida".
  5. Depois de um certo tempo ou limite baseado em blocos ter passado, o bloco em si é finalizado e a transação torna-se um registo imutável registado 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 utilizam um mempool e podem, em vez disso, encaminhar transações diretamente para o produtor de bloco como forma de permitir alta velocidade e débito através da produção contínua de blocos.

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

  1. O utilizador inicia e assina uma transação para uma aplicação que está a usar.
  2. A aplicação encaminha as informações da transação para o servidor de Chamada de Procedimento Remoto (RPC).
  3. O fornecedor de 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 calendário 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ída, o estado da transação é então encaminhado de volta para RPC > aplicação > usuário como 'sucesso' ou 'falhou'.
  6. Semelhante às blockchains baseadas em mempool, o bloco em si é finalizado após um certo tempo ou limiar baseado em blocos 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 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 o throughput 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 dos avanços na computação, ou seja, vários núcleos de processador.

Execução Paralela

2.0 O que é a Execução Paralela?

A computação paralela é um componente-chave da arquitetura de computadores cujas origens podem ser rastreadas até o final dos anos 1950, embora a sua ideia e teoria remontem até1837Por definição, a computação paralela refere-se ao ato de utilizar múltiplos elementos de processamento simultaneamente para resolver uma operação, onde uma tarefa maior e mais complexa é dividida em tarefas mais pequenas 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 computação aumentou exponencialmente na era da internet, exacerbada pelas limitações da escalabilidade de frequência nas décadas anteriores.

Este padrão arquitetónico aplica-se às blockchains de forma 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 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 altas de atividade e demanda por espaço em bloco.

Para uma analogia mais simples, considere a eficiência de um supermercado com várias pistas para os compradores 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 utilizadores sem comprometer qualquer qualidade no desempenho e, assim, na experiência do utilizador.

Embora isso possa parecer apenas uma característica intuitiva 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 aplicações que podem aproveitar baixa latência e altos volumes, o que, por si só, lança as bases para a integração da próxima grande 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 conta, 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 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, mais amplamente permite que a rede classifique e identifique 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 é 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ção mais rápida, embora ao custo de uma 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 em paralelo ou sequencialmente.

A fim de entender melhor as implicações dessas complexidades de projeto, pode ser útil analisar a execução paralela através da lente de equipes que empurram a fronteira da execução paralela hoje.

Estado da Execução Paralela Hoje

A fim de entender melhor as implicações dessas complexidades de projeto, pode ser útil analisar a execução paralela através da lente de equipes que empurram 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 de desenvolvimento que funcione tão rápido 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 de vários threads, 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 que contas e estado acessar e que alterações fazer - isso é fundamental para determinar quais transações são não conflitantes e podem ser executadas simultaneamente, bem como habilitar transações que estão tentando acessar o mesmo estado para fazê-lo simultaneamente.

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

Solana também utiliza Cloudbreak, sua própria accountsDB personalizada, para armazenar e gerenciar dados de estado a fim de permitir leituras e escritas simultâneas de transações. Cloudbreak, otimizado para execução paralela, escala horizontalmente para distribuir e gerenciar dados de estado entre vários nós.

Graças à sua arquitetura paralela, a Solana pode lidar com um grande número de transações e ainda assim executar rapidamente, proporcionando transações quase instantâneas. A Solana lida, em média, entre 2.000 e 10.000 transações por segundo (TPS) hoje. 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 Parallel EVM

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 Ethereum, com a velocidade e desempenho da Solana e a segurança e liquidez da Ethereum. Ao processar transações em paralelo, em vez de sequencialmente como no design tradicional do EVM, os EVMs paralelos permitem aos desenvolvedores construir aplicações numa rede altamente performante, ao mesmo tempo que podem aproveitar as conexões com a liquidez do EVM e as ferramentas de desenvolvimento.

3.2.1 Sei Network

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

Originalmente, a Sei utilizava um modelo de execução paralela determinística, no qual os contratos inteligentes declaravam antecipadamente o acesso ao estado necessário para que o sistema executasse 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 ao serem submetidas à rede (a fase de execução) e, em seguida, 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 da rede, a Sei identifica este ponto de conflito e depois volta a executar as transações em paralelo ou sequencialmente, dependendo da natureza do conflito.

Para armazenar e manter os dados da transação, Sei também introduzirá SeiDB, um banco de dados personalizado que visa melhorar as deficiências da v1, otimizando a execução paralela. SeiDB tem como objetivo reduzir os custos de armazenamento de dados redundantes e manter a utilização eficiente do disco para melhorar o desempenho da rede. A V2 reduz a quantidade de metadados necessária para rastreamento e armazenamento, e permite um log de 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 da sua Pilha Paralela, um framework open-source para permitir que as soluções de escalabilidade de Camada 2, ou seja, rollups, utilizem e beneficiem da execução paralela.

3.2.2 Monad

Monad é uma blockchain de camada 1 paralela do EVM 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, mantendo custos de transação mais baixos através da otimização de 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 débito 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 sincronia com o Ethereum, a Monad ordena transações num bloco de forma linear, com cada transação atualizada sequencialmente.

Para manter e aceder aos dados de blockchain de forma mais eficiente do que o estado atual oferecido pelos clientes Ethereum, a Monad criou a sua própria MonadDB personalizada, construída nativamente para blockchains. O Monad DB aproveita funcionalidades avançadas do kernel do Linux para operações de disco assíncronas eficientes, eliminando as restrições do acesso de entrada/saída síncrono. A MonadDB oferece acesso assíncrono de entrada/saída (E/S assíncrona), uma funcionalidade chave para permitir a execução paralela, em que o sistema pode começar a processar a transação seguinte enquanto aguarda a leitura do estado para 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 colocar a massa na água que está a ferver, depois cozinhar o molho e, finalmente, as almôndegas, em vez de fazer cada passo de cada vez, completando uma tarefa por completo antes de passar para a próxima.

3.3 Mover

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

O MoveVM funciona como o ambiente de execução nativo para blockchains baseados em Move, tirando proveito da paralelização para oferecer velocidades de execução de transação mais rápidas e maior eficiência geral.

3.3.1 Aptos

Aptos é uma blockchain baseada em Move na Camada 1 desenvolvida por membros do antigo projeto Diem, que implementa 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 de Memória Transacional de Software (STM).

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

3.3.2 Sui

Semelhante ao Aptos, Sui é uma blockchain de camada 1 desenvolvida 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 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 conflituantes e processá-las em paralelo.

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

3.3.3 Laboratórios de Movimento

O que é Movimento?

A Movement está a construir um conjunto de ferramentas de desenvolvimento e serviços de infraestrutura de blockchain para permitir que os programadores acedam facilmente aos benefícios de construir em Move. A operar como um fornecedor de execução como serviço semelhante à AWS para programadores 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 geral 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á o 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.

Considerações Finais

4.1 Desafios Para Sistemas Paralelos Hoje

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

  • Que compensações está a rede a fazer para permitir um melhor desempenho através da execução paralela?
    • Menos validadores a garantir a rede permite velocidades de verificação e execução mais rápidas, mas isso compromete a segurança da blockchain, uma vez que se torna mais fácil para os validadores conluirem contra a rede?
    • Existe um número significativo de validadores co-localizados? Esta é uma estratégia comum para minimizar a latência em sistemas criptográficos e não criptográficos, 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á a ser testada e avaliada esta eficiência?

Num nível elevado, as blockchains paralelas enfrentam o risco de inconsistências de ledger, ou seja, gastos duplos e alterações na ordem das transações (de facto, este é o principal benefício da execução sequencial). A paralelização determinística aborda isso criando um sistema de rotulagem interno para transações na blockchain subjacente. As blockchains que implementam processamento otimista devem garantir que os mecanismos que 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 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 de blockchains paralelos pós-Solana enfatiza que esta noção também se aplica à infraestrutura cripto. Até 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.

Não é aconselhamento financeiro ou fiscal. O objetivo desta newsletter é puramente educativo e não deve ser considerado como aconselhamento de investimento, aconselhamento legal, um pedido de compra ou venda de ativos, ou uma sugestão para tomar decisões financeiras. Não substitui o aconselhamento fiscal. Consulte o seu contabilista e faça a sua própria pesquisa.

Divulgações. Todas as publicações são da autoria do autor, não refletem as opiniões do seu empregador. Esta publicação 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, temos como objetivo garantir que todo o conteúdo seja objetivo e independente. Os 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 geridos para manter a credibilidade e imparcialidade da nossa pesquisa.

Isenção de responsabilidade:

  1. Este artigo é reproduzido a partir de [Pesquisa Shoal]. Todos os direitos de autor pertencem ao autor original [PAUL TIMOFEEV, MIKE JIN, E GABE TRAMBLE]. Se houver objeções a esta reedição, entre em contato com o Gate Learnequipa, 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. Salvo indicação em contrário, copiar, distribuir ou plagiar os artigos traduzidos é proibido.
Розпочати зараз
Зареєструйтеся та отримайте ваучер на
$100
!