Blockchain é uma máquina virtual, um modelo de computação baseado em software que roda em cima de uma rede distribuída de computadores físicos aos quais qualquer pessoa pode se juntar, mas é extremamente difícil para qualquer entidade única controlar. O conceito de blockchain foi escrito pela primeira vez no infame whitepaper do Bitcoin de Satoshi Nakomoto em 2008, como a infraestrutura central que possibilita pagamentos ponto a ponto criptograficamente seguros no Bitcoin. As transações são para blockchains o que os logs são para as empresas de mídia social e internet; eles servem como registros de atividade para aquela rede específica, sendo a diferença chave que as transações em um blockchain são imutáveis e frequentemente publicamente observáveis.
Obrigado por ler Shoal Research! Inscreva-se gratuitamente para receber novas postagens e apoiar meu trabalho.
Inscrição
Mas o que exatamente é uma transação?
Transações em blockchains envolvem a transferência de ativos digitais de um endereço no livro-razão distribuído para outro, garantido pelo uso de criptografia de chave pública. As transações podem ser usadas para transferências descentralizadas de peer to peer, ou para vários processos de autenticação e verificação também.
Um exemplo de uma transação que qualquer pessoa pode observar em um explorador de blockchain como SeiTrace
Quando uma transação é iniciada, ou seja, Bob envia alguns tokens para Alice, a transação de Bob é transmitida para a rede blockchain subjacente. Posteriormente, clusters de nós especializados na rede começam a verificar e validar a transação como legítima. Uma vez que bastante desses nós tenham verificado o conteúdo da transação, a transação é adicionada a um bloco juntamente com outras transações de usuários. Quando um bloco está cheio, ele então é adicionado à cadeia, daí o nome 'blockchain'. A transação de Bob agora faz parte de um livro-razão seguro e transparente, e tanto ele quanto Alice podem verificar o conteúdo.
De uma maneira geral, todas as transações de blockchain contêm metadados que ajudam os nós que operam e seguram a rede a identificar e executar um determinado conjunto de instruções e parâmetros. Cada transação terá dados de alto nível inseridos pelo remetente original, como o valor a ser transferido, o endereço de destino e a assinatura digital para confirmar a transação, bem como vários dados de baixo nível que são criados e anexados automaticamente, embora esses dados variem de acordo com a rede e o design.
No final, no entanto, os processos envolvidos nos bastidores na camada de rede antes da execução da transação variam de acordo com o design da blockchain.
Uma pool de memória, ou mempool, é uma característica comum dos designs de blockchain, implementada por redes tradicionais de blockchain como Bitcoin e Ethereum. Mempools são simplesmente zonas de buffer, ou 'sala de espera', para transações pendentes que ainda não foram adicionadas a um bloco e executadas.
Para entender melhor, podemos estabelecer o ciclo de vida de uma transação em um blockchain que usa um mempool;
É importante notar que algumas blockchains, como Solana, não utilizam um mempool e podem, em vez disso, encaminhar transações diretamente para o produtor de blocos como um meio de permitir alta velocidade e throughput por meio da produção contínua de blocos.
Vamos percorrer o ciclo de vida de uma transação em uma blockchain não-mempool:
Blockchains mais antigos, nomeadamente Bitcoin e Ethereum, utilizam um mecanismo de execução sequencial para transações. Cada transação adicionada ao blockchain invoca uma alteração no estado da rede, e a VM é estruturada para processar apenas uma alteração de estado de cada vez, por motivos de segurança.
Isso tem levado a gargalos significativos para a capacidade da rede subjacente, à medida que o número de transações que podem ser adicionadas ao bloco fica limitado, levando a tempos de espera mais longos e picos sem precedentes nos custos de transação, o que pode tornar a rede inutilizável às vezes. Além disso, os modelos de execução sequencial utilizam os componentes de hardware de forma bastante ineficiente e, portanto, não se beneficiam de avanços na computação, ou seja, múltiplos núcleos de processador.
A computação paralela é um componente chave da arquitetura de computadores cujas origens remontam tão longe quanto ofinal da década de 1950, embora sua ideação e teoria até mesmo tenham sido rastreadas até 1837. Por definição, computação paralela refere-se ao ato de utilizar vários elementos de processamento simultaneamente para resolver uma operação, em que uma tarefa maior e mais complexa é dividida em tarefas menores para ser concluída de forma mais eficiente do que serial.
Originalmente implementada apenas em sistemas de computação de alto desempenho, a computação paralela evoluiu para se tornar o paradigma dominante na arquitetura de computadores hoje, à medida que a demanda por computação aumentou exponencialmente na era da internet, exacerbada pelas limitações da escala de frequência nas décadas anteriores.
Este padrão arquitetônico se aplica às blockchains de maneira muito semelhante, apenas que a tarefa principal que os computadores resolvem é o processamento e execução de transações, ou a transferência de valor do contrato inteligente A para o contrato inteligente B, daí o termo execução paralela.
A execução paralela significa que, em vez de processar transações serialmente, uma blockchain pode processar várias transações não conflitantes simultaneamente. Isso pode aumentar significativamente a capacidade de uma rede blockchain, tornando-a mais escalável e eficiente para lidar com cargas de atividade e demanda por espaço de bloco mais altas.
Para uma analogia mais simples, considere a eficiência de um supermercado com várias filas para os compradores passarem no caixa, em comparação com apenas uma para todos.
A execução paralela nas blockchains é projetada para desbloquear eficiências na velocidade e desempenho de uma rede, especialmente à medida que a rede vê um tráfego e demanda de recursos mais elevados. No contexto dos ecossistemas cripto, a execução paralela significa que se Bob deseja criar a última coleção popular de NFT e Alice deseja comprar sua mememoeda favorita, a rede atenderá a ambos os usuários sem comprometer qualquer qualidade no desempenho e, assim, na experiência do usuário.
Embora isso possa parecer apenas um recurso intuitivo de qualidade de vida, os desbloqueios no desempenho da rede habilitados pela execução paralela abrem caminho para o desenvolvimento de novos e inovadores casos de uso e aplicativos que podem aproveitar baixa latência e altos volumes, o que, por si só, lança as bases para incorporar a próxima grande massa de usuários nos ecossistemas de criptomoedas.
Embora a premissa da execução paralela seja relativamente simples, nuances nos projetos das blockchains subjacentes afetam como o processo de execução paralela se desenrola. A característica mais relevante para projetar blockchains com execução paralela é a capacidade das transações de acessar o estado de sua rede subjacente, incluindo saldos de contas, armazenamento e contratos inteligentes.
A execução paralela em blockchains pode ser categorizada como determinística ou otimista. A execução paralela determinística, utilizada por blockchains como Solana, requer intrinsicamente que as transações declarem todas as dependências de memória antecipadamente, ou seja, quais partes do estado global desejam acessar antecipadamente. Embora este passo crie sobrecarga adicional para os desenvolvedores, de forma mais geral, permite que a rede classifique e identifique transações não conflitantes antes da execução, criando um sistema otimizado que é previsível e eficiente. Por outro lado, a execução paralela otimista é estruturada para processar todas as transações em paralelo, operando sob a suposição inerente de que não há conflitos. Isso permite que o blockchain subjacente forneça uma execução de transações mais rápida, embora com o custo de uma possível reexecução posterior em caso de conflito. Se duas transações conflitantes forem encontradas, o sistema pode então reprocessá-las e reexecutá-las, seja em paralelo ou sequencialmente.
Para entender melhor as implicações dessas complexidades de design, pode ser útil analisar a execução paralela por meio das equipes que estão impulsionando a fronteira da execução paralela hoje.
Para entender melhor as implicações dessas complexidades de design, pode ser útil analisar a execução paralela sob a perspectiva de equipes que estão impulsionando a fronteira da execução paralela hoje.
Solana foi a primeira rede blockchain a ser projetada em torno da execução paralela, inspirada na experiência anterior do fundador Anatoly Yakovenko na indústria de telecomunicações. Solana tem como objetivo fornecer uma plataforma para desenvolvedores que execute tão rapidamente quanto a física permite, portanto, a velocidade e eficiência desbloqueadas pela computação paralela foram uma escolha de design simples e intuitiva.
Em ambientes baseados em SM, a Sealevel emprega uma arquitetura multi-threaded, o que significa que pode processar várias transações simultaneamente até a capacidade do núcleo do validador.
A chave para habilitar a execução paralela da Solana é que quando uma transação é habilitada, a rede atribuirá uma lista de instruções para que essa transação seja executada, especificamente quais contas e estado acessar e que mudanças fazer - isso é fundamental para determinar quais transações são não conflitantes e podem ser executadas simultaneamente, assim como habilitar transações que estão tentando acessar o mesmo estado a fazê-lo simultaneamente.
Considere a eficiência que as etiquetas proporcionam aos sistemas de bagagem despachada nos aeroportos.
Solana também utiliza Cloudbreak, seu próprio contasDB personalizado, para armazenar e gerenciar dados de estado e permitir leituras e gravações concorrentes de transações. Cloudbreak, otimizado para execução paralela, escala horizontalmente para distribuir e gerenciar dados de estado em vários nós.
Graças à sua arquitetura paralela, a Solana pode lidar com um grande número de transações e ainda executar rapidamente, proporcionando transações com finalidade quase instantânea. A Solana lida entre 2.000 e 10.000 transações por segundo (TPS) em média hoje. Além disso, os casos de uso para o SVM estão se expandindo lentamente, à medida que equipes como a Eclipse estão implementando infraestrutura de Camada 2 que visa aproveitar o SVM como ambiente de execução.
O Parallel EVM descreve um novo ambiente de execução para blockchains que tem como objetivo trazer o "melhor dos dois mundos" dos designs da Solana e do Ethereum, com a velocidade e o desempenho da Solana, e a segurança e a liquidez do Ethereum. Ao processar transações em paralelo, em vez de sequencialmente, conforme o design tradicional do EVM, os EVMs paralelos permitem que os desenvolvedores construam aplicativos em uma rede altamente eficiente, podendo aproveitar as conexões com a liquidez e as ferramentas de desenvolvedor do EVM.
A rede Sei é uma blockchain de camada 1 de código aberto compatível com EVM que hospeda uma variedade de aplicativos descentralizados construídos em torno de alto desempenho. Sei foi construído para proporcionar velocidades rápidas a baixos custos para usuários e desenvolvedores, e a execução paralela é um componente-chave para habilitar esse desempenho e UX. Atualmente, a Sei oferece tempos de confirmação de bloco de 390ms e processou mais de 1,9B transações em sua mainnet pacífica.
Originalmente, Sei empregava um modelo de execução paralela determinística, no qual os contratos inteligentes declaravam antecipadamente seu acesso de estado necessário para o sistema executar transações não conflitantes simultaneamente. Com o início da atualização V2, Sei está fazendo a transição para um modelo paralelo otimista, o que significa que todas as transações serão processadas em paralelo ao serem enviadas para a rede (estágio de execução) e, em seguida, serão revisadas em busca de informações conflitantes com transações anteriores (estágio de validação). No caso de duas ou mais transações conflitantes, ou seja, transações que tentam acessar o mesmo estado da rede, Sei identifica esse ponto de conflito e então reexecuta as transações em paralelo ou sequencialmente, dependendo da natureza do conflito.
Para armazenar e manter dados de transações, Sei também introduzirá SeiDB, um banco de dados personalizado que tem como objetivo melhorar as deficiências da v1 otimizando a execução paralela. SeiDB visa reduzir o custo de armazenamento de dados redundantes e manter o uso eficiente do disco para melhorar o desempenho da rede. A V2 reduz a quantidade de metadados necessários para rastreamento e armazenamento, e permite um log de gravação antecipada para ajudar na recuperação de dados em caso de falha.
Por último, a Sei também anunciou recentemente o lançamento do seu Parallel Stack, um framework de código aberto para permitir soluções de escalonamento de Camada 2, ou seja, rollups, para utilizar e se beneficiar da execução paralela.
Monad é uma blockchain Layer 1 paralela iminente que traz compatibilidade total de bytecode e RPC para aplicações e infraestrutura Ethereum. Através de várias implementações técnicas inovadoras, o Monad tem como objetivo oferecer experiências mais interativas do que as blockchains existentes, ao mesmo tempo que mantém custos de transação mais baixos, otimizando para desempenho e portabilidade, com tempos de bloco de 1 segundo e finalidade com até 10.000 TPS.
Monad implementa execução paralela e pipeline superscalar para otimizar a velocidade e o throughput das transações. Semelhante ao Sei v2, Monad utilizará um modelo de execução otimista, o que significa que a rede começa a executar todas as transações recebidas simultaneamente e, em seguida, analisa e valida as transações em busca de conflitos e reexecuta conforme necessário, com o objetivo final de que o resultado seja idêntico se as transações tivessem sido executadas sequencialmente.
É importante notar que, ao manter a sincronicidade com o Ethereum, o Monad ordena transações em um bloco em ordem linear, com cada transação atualizada sequencialmente.
A fim de manter e acessar dados de blockchain de forma mais eficiente do que o estado atual dos clientes Ethereum oferece, a Monad criou seu próprio MonadDB personalizado, construído nativamente para blockchains. O Monad DB aproveita os recursos avançados do kernel Linux para operações de disco assíncronas eficientes, eliminando as restrições de acesso síncrono de entrada/saída. O MonadDB oferece acesso assíncrono de entrada/saída (E/S assíncrona), um recurso fundamental para permitir a execução paralela, em que o sistema pode começar a processar a próxima transação enquanto aguarda o estado de leitura de uma transação anterior.
Para uma analogia simples, considere cozinhar uma refeição multifacetada (espaguete com almôndegas). As etapas envolvidas são 1) preparar um molho, 2) cozinhar as almôndegas e c) cozinhar a massa. Um chef eficiente começaria fervendo água para a massa, depois preparando os ingredientes para o molho, em seguida, colocando a massa na água fervente, depois cozinhando o molho e, finalmente, as almôndegas, ao invés de fazer cada etapa de cada vez, completando uma tarefa inteiramente antes de passar para a próxima.
Move é uma linguagem de programação originalmente desenvolvida pela equipe do Facebook em 2019 para o seu projeto agora extinto Diem. Move foi projetado para lidar com contratos inteligentes e dados de transação de forma segura, eliminando vetores de ataque nativos de outras linguagens, como ataques de recursão.
O MoveVM serve como o ambiente nativo de execução para blockchains baseadas em Move, aproveitando a paralelização para fornecer velocidades de execução de transação mais rápidas e maior eficiência geral.
Aptos é um blockchain baseado em Move da camada 1 desenvolvido por membros do antigo projeto Diem, que implementa a execução paralela para oferecer um ambiente de alto desempenho para os desenvolvedores de aplicativos. Aptos utiliza o Block-STM, uma implementação modificada do mecanismo de controle de concorrência da Memória Transacional de Software (STM).
Block-STM é um mecanismo de execução paralela multi-threaded que permite a execução paralela otimista. As transações são pré-ordenadas e sequenciadas estrategicamente dentro de blocos, o que é fundamental para resolver conflitos e reexecutar eficientemente essas transações. Pesquisas conduzidas pela Aptos descobriram que até 160K TPS podem ser teoricamente suportados usando a paralelização do Block-STM.
Similar ao Aptos, Sui é um blockchain de camada 1 desenvolvido por ex-membros do projeto Diem, que utiliza a linguagem Move. No entanto, Sui utiliza uma implementação personalizada do Move que altera o modelo de armazenamento e as permissões de ativos do design original do Diem. Em particular, isso permite que o Sui utilize um modelo de armazenamento de estado para representar transações independentes como objetos. Cada objeto possui um ID único dentro do ambiente de execução do Sui, e ao fazer isso, permite que o sistema identifique facilmente transações não conflitantes e as processe em paralelo.
Similar ao Solana, Sui implementa execução paralela determinística, que requer que as transações declarem antecipadamente quais contas precisam acessar.
O que é Movimento?
O Movement está construindo um conjunto de ferramentas de desenvolvedor e serviços de infraestrutura blockchain para permitir que os desenvolvedores acessem facilmente os benefícios de criar no Move. Operando como um provedor de execução como serviço semelhante à AWS para os desenvolvedores do Move, o Movement implementa a paralelização como uma característica de design central para permitir maior throughput e maior eficiência geral da rede. O MoveVM é um ambiente de execução modular que permite que as redes blockchain expandam e ajustem suas capacidades de processamento de transações conforme necessário para poder suportar um volume crescente de transações, reforçando suas habilidades de processar e executar transações em paralelo.
Arquitetura MoveVM
O Movimento também lançará M2, um ZK-rollup que será interoperável com clientes EVM e Move. O M2 herdará o motor de paralelização Block-STM e espera-se que entregue dezenas de milhares de TPS como resultado.
Algumas questões importantes e considerações a serem ponderadas quanto ao desenvolvimento de blockchains paralelas;
Em um nível elevado, as blockchains paralelas enfrentam o risco de inconsistências nos registros, ou seja, gastos duplos e alterações na ordem das transações (de fato, este é o principal benefício da execução sequencial). A paralelização determinística aborda isso criando um sistema de rotulagem interno para transações na blockchain subjacente. Blockchains que implementam processamento otimista devem garantir que os mecanismos que utilizam para validar e reexecutar transações sejam seguros e funcionais, e que os compromissos feitos em termos de desempenho possam ser implementados de forma razoável.
A história dos computadores nos ensinou que os sistemas paralelos tendem a ser mais eficientes e escaláveis ao longo do tempo do que os sistemas sequenciais. O surgimento das blockchains paralelas pós-Solana enfatiza que essa noção também se aplica à infraestrutura de criptomoedas. Até mesmo Vitalik fez alusão aparalelizaçãocomo uma das potenciais soluções-chave para melhorar a escalabilidade dos rollups EVM recentemente. Em termos gerais, o crescimento da adoção de cripto/blockchain exige sistemas mais otimizados do que os disponíveis hoje, incluindo blockchains paralelas. As recentes dificuldades de rede da Solana destacaram que há muito espaço para melhorias no desenvolvimento de blockchains paralelas. À medida que mais equipes buscam empurrar os limites da fronteira onchain e incorporar a próxima grande coorte de usuários e adoção em aplicações e ecossistemas nativos de blockchain, os modelos de execução paralela fornecem um framework intuitivo para construir sistemas que podem lidar eficientemente com magnitudes de atividade de rede em uma escala que corresponda à das empresas Web2 com facilidade.
Não aconselhamento financeiro ou fiscal. O objetivo deste boletim informativo é puramente educacional e não deve ser considerado como aconselhamento de investimento, aconselhamento jurídico, um pedido de compra ou venda de quaisquer ativos, ou uma sugestão para tomar quaisquer decisões financeiras. Não substitui a assessoria tributária. Consulte seu contador e realize sua própria pesquisa.
Divulgações. Todas as postagens são do próprio autor, não as opiniões de seu empregador. Esta postagem foi patrocinada pela Fundação Aster. Embora a Shoal Research tenha recebido financiamento para esta iniciativa, os patrocinadores não influenciam o conteúdo analítico. Na Shoal Research, nosso objetivo é garantir que todo o conteúdo seja objetivo e independente. Nossos processos de revisão interna mantêm os mais altos padrões de integridade, e todos os potenciais conflitos de interesse são divulgados e rigorosamente gerenciados para manter a credibilidade e imparcialidade de nossas pesquisas.
Blockchain é uma máquina virtual, um modelo de computação baseado em software que roda em cima de uma rede distribuída de computadores físicos aos quais qualquer pessoa pode se juntar, mas é extremamente difícil para qualquer entidade única controlar. O conceito de blockchain foi escrito pela primeira vez no infame whitepaper do Bitcoin de Satoshi Nakomoto em 2008, como a infraestrutura central que possibilita pagamentos ponto a ponto criptograficamente seguros no Bitcoin. As transações são para blockchains o que os logs são para as empresas de mídia social e internet; eles servem como registros de atividade para aquela rede específica, sendo a diferença chave que as transações em um blockchain são imutáveis e frequentemente publicamente observáveis.
Obrigado por ler Shoal Research! Inscreva-se gratuitamente para receber novas postagens e apoiar meu trabalho.
Inscrição
Mas o que exatamente é uma transação?
Transações em blockchains envolvem a transferência de ativos digitais de um endereço no livro-razão distribuído para outro, garantido pelo uso de criptografia de chave pública. As transações podem ser usadas para transferências descentralizadas de peer to peer, ou para vários processos de autenticação e verificação também.
Um exemplo de uma transação que qualquer pessoa pode observar em um explorador de blockchain como SeiTrace
Quando uma transação é iniciada, ou seja, Bob envia alguns tokens para Alice, a transação de Bob é transmitida para a rede blockchain subjacente. Posteriormente, clusters de nós especializados na rede começam a verificar e validar a transação como legítima. Uma vez que bastante desses nós tenham verificado o conteúdo da transação, a transação é adicionada a um bloco juntamente com outras transações de usuários. Quando um bloco está cheio, ele então é adicionado à cadeia, daí o nome 'blockchain'. A transação de Bob agora faz parte de um livro-razão seguro e transparente, e tanto ele quanto Alice podem verificar o conteúdo.
De uma maneira geral, todas as transações de blockchain contêm metadados que ajudam os nós que operam e seguram a rede a identificar e executar um determinado conjunto de instruções e parâmetros. Cada transação terá dados de alto nível inseridos pelo remetente original, como o valor a ser transferido, o endereço de destino e a assinatura digital para confirmar a transação, bem como vários dados de baixo nível que são criados e anexados automaticamente, embora esses dados variem de acordo com a rede e o design.
No final, no entanto, os processos envolvidos nos bastidores na camada de rede antes da execução da transação variam de acordo com o design da blockchain.
Uma pool de memória, ou mempool, é uma característica comum dos designs de blockchain, implementada por redes tradicionais de blockchain como Bitcoin e Ethereum. Mempools são simplesmente zonas de buffer, ou 'sala de espera', para transações pendentes que ainda não foram adicionadas a um bloco e executadas.
Para entender melhor, podemos estabelecer o ciclo de vida de uma transação em um blockchain que usa um mempool;
É importante notar que algumas blockchains, como Solana, não utilizam um mempool e podem, em vez disso, encaminhar transações diretamente para o produtor de blocos como um meio de permitir alta velocidade e throughput por meio da produção contínua de blocos.
Vamos percorrer o ciclo de vida de uma transação em uma blockchain não-mempool:
Blockchains mais antigos, nomeadamente Bitcoin e Ethereum, utilizam um mecanismo de execução sequencial para transações. Cada transação adicionada ao blockchain invoca uma alteração no estado da rede, e a VM é estruturada para processar apenas uma alteração de estado de cada vez, por motivos de segurança.
Isso tem levado a gargalos significativos para a capacidade da rede subjacente, à medida que o número de transações que podem ser adicionadas ao bloco fica limitado, levando a tempos de espera mais longos e picos sem precedentes nos custos de transação, o que pode tornar a rede inutilizável às vezes. Além disso, os modelos de execução sequencial utilizam os componentes de hardware de forma bastante ineficiente e, portanto, não se beneficiam de avanços na computação, ou seja, múltiplos núcleos de processador.
A computação paralela é um componente chave da arquitetura de computadores cujas origens remontam tão longe quanto ofinal da década de 1950, embora sua ideação e teoria até mesmo tenham sido rastreadas até 1837. Por definição, computação paralela refere-se ao ato de utilizar vários elementos de processamento simultaneamente para resolver uma operação, em que uma tarefa maior e mais complexa é dividida em tarefas menores para ser concluída de forma mais eficiente do que serial.
Originalmente implementada apenas em sistemas de computação de alto desempenho, a computação paralela evoluiu para se tornar o paradigma dominante na arquitetura de computadores hoje, à medida que a demanda por computação aumentou exponencialmente na era da internet, exacerbada pelas limitações da escala de frequência nas décadas anteriores.
Este padrão arquitetônico se aplica às blockchains de maneira muito semelhante, apenas que a tarefa principal que os computadores resolvem é o processamento e execução de transações, ou a transferência de valor do contrato inteligente A para o contrato inteligente B, daí o termo execução paralela.
A execução paralela significa que, em vez de processar transações serialmente, uma blockchain pode processar várias transações não conflitantes simultaneamente. Isso pode aumentar significativamente a capacidade de uma rede blockchain, tornando-a mais escalável e eficiente para lidar com cargas de atividade e demanda por espaço de bloco mais altas.
Para uma analogia mais simples, considere a eficiência de um supermercado com várias filas para os compradores passarem no caixa, em comparação com apenas uma para todos.
A execução paralela nas blockchains é projetada para desbloquear eficiências na velocidade e desempenho de uma rede, especialmente à medida que a rede vê um tráfego e demanda de recursos mais elevados. No contexto dos ecossistemas cripto, a execução paralela significa que se Bob deseja criar a última coleção popular de NFT e Alice deseja comprar sua mememoeda favorita, a rede atenderá a ambos os usuários sem comprometer qualquer qualidade no desempenho e, assim, na experiência do usuário.
Embora isso possa parecer apenas um recurso intuitivo de qualidade de vida, os desbloqueios no desempenho da rede habilitados pela execução paralela abrem caminho para o desenvolvimento de novos e inovadores casos de uso e aplicativos que podem aproveitar baixa latência e altos volumes, o que, por si só, lança as bases para incorporar a próxima grande massa de usuários nos ecossistemas de criptomoedas.
Embora a premissa da execução paralela seja relativamente simples, nuances nos projetos das blockchains subjacentes afetam como o processo de execução paralela se desenrola. A característica mais relevante para projetar blockchains com execução paralela é a capacidade das transações de acessar o estado de sua rede subjacente, incluindo saldos de contas, armazenamento e contratos inteligentes.
A execução paralela em blockchains pode ser categorizada como determinística ou otimista. A execução paralela determinística, utilizada por blockchains como Solana, requer intrinsicamente que as transações declarem todas as dependências de memória antecipadamente, ou seja, quais partes do estado global desejam acessar antecipadamente. Embora este passo crie sobrecarga adicional para os desenvolvedores, de forma mais geral, permite que a rede classifique e identifique transações não conflitantes antes da execução, criando um sistema otimizado que é previsível e eficiente. Por outro lado, a execução paralela otimista é estruturada para processar todas as transações em paralelo, operando sob a suposição inerente de que não há conflitos. Isso permite que o blockchain subjacente forneça uma execução de transações mais rápida, embora com o custo de uma possível reexecução posterior em caso de conflito. Se duas transações conflitantes forem encontradas, o sistema pode então reprocessá-las e reexecutá-las, seja em paralelo ou sequencialmente.
Para entender melhor as implicações dessas complexidades de design, pode ser útil analisar a execução paralela por meio das equipes que estão impulsionando a fronteira da execução paralela hoje.
Para entender melhor as implicações dessas complexidades de design, pode ser útil analisar a execução paralela sob a perspectiva de equipes que estão impulsionando a fronteira da execução paralela hoje.
Solana foi a primeira rede blockchain a ser projetada em torno da execução paralela, inspirada na experiência anterior do fundador Anatoly Yakovenko na indústria de telecomunicações. Solana tem como objetivo fornecer uma plataforma para desenvolvedores que execute tão rapidamente quanto a física permite, portanto, a velocidade e eficiência desbloqueadas pela computação paralela foram uma escolha de design simples e intuitiva.
Em ambientes baseados em SM, a Sealevel emprega uma arquitetura multi-threaded, o que significa que pode processar várias transações simultaneamente até a capacidade do núcleo do validador.
A chave para habilitar a execução paralela da Solana é que quando uma transação é habilitada, a rede atribuirá uma lista de instruções para que essa transação seja executada, especificamente quais contas e estado acessar e que mudanças fazer - isso é fundamental para determinar quais transações são não conflitantes e podem ser executadas simultaneamente, assim como habilitar transações que estão tentando acessar o mesmo estado a fazê-lo simultaneamente.
Considere a eficiência que as etiquetas proporcionam aos sistemas de bagagem despachada nos aeroportos.
Solana também utiliza Cloudbreak, seu próprio contasDB personalizado, para armazenar e gerenciar dados de estado e permitir leituras e gravações concorrentes de transações. Cloudbreak, otimizado para execução paralela, escala horizontalmente para distribuir e gerenciar dados de estado em vários nós.
Graças à sua arquitetura paralela, a Solana pode lidar com um grande número de transações e ainda executar rapidamente, proporcionando transações com finalidade quase instantânea. A Solana lida entre 2.000 e 10.000 transações por segundo (TPS) em média hoje. Além disso, os casos de uso para o SVM estão se expandindo lentamente, à medida que equipes como a Eclipse estão implementando infraestrutura de Camada 2 que visa aproveitar o SVM como ambiente de execução.
O Parallel EVM descreve um novo ambiente de execução para blockchains que tem como objetivo trazer o "melhor dos dois mundos" dos designs da Solana e do Ethereum, com a velocidade e o desempenho da Solana, e a segurança e a liquidez do Ethereum. Ao processar transações em paralelo, em vez de sequencialmente, conforme o design tradicional do EVM, os EVMs paralelos permitem que os desenvolvedores construam aplicativos em uma rede altamente eficiente, podendo aproveitar as conexões com a liquidez e as ferramentas de desenvolvedor do EVM.
A rede Sei é uma blockchain de camada 1 de código aberto compatível com EVM que hospeda uma variedade de aplicativos descentralizados construídos em torno de alto desempenho. Sei foi construído para proporcionar velocidades rápidas a baixos custos para usuários e desenvolvedores, e a execução paralela é um componente-chave para habilitar esse desempenho e UX. Atualmente, a Sei oferece tempos de confirmação de bloco de 390ms e processou mais de 1,9B transações em sua mainnet pacífica.
Originalmente, Sei empregava um modelo de execução paralela determinística, no qual os contratos inteligentes declaravam antecipadamente seu acesso de estado necessário para o sistema executar transações não conflitantes simultaneamente. Com o início da atualização V2, Sei está fazendo a transição para um modelo paralelo otimista, o que significa que todas as transações serão processadas em paralelo ao serem enviadas para a rede (estágio de execução) e, em seguida, serão revisadas em busca de informações conflitantes com transações anteriores (estágio de validação). No caso de duas ou mais transações conflitantes, ou seja, transações que tentam acessar o mesmo estado da rede, Sei identifica esse ponto de conflito e então reexecuta as transações em paralelo ou sequencialmente, dependendo da natureza do conflito.
Para armazenar e manter dados de transações, Sei também introduzirá SeiDB, um banco de dados personalizado que tem como objetivo melhorar as deficiências da v1 otimizando a execução paralela. SeiDB visa reduzir o custo de armazenamento de dados redundantes e manter o uso eficiente do disco para melhorar o desempenho da rede. A V2 reduz a quantidade de metadados necessários para rastreamento e armazenamento, e permite um log de gravação antecipada para ajudar na recuperação de dados em caso de falha.
Por último, a Sei também anunciou recentemente o lançamento do seu Parallel Stack, um framework de código aberto para permitir soluções de escalonamento de Camada 2, ou seja, rollups, para utilizar e se beneficiar da execução paralela.
Monad é uma blockchain Layer 1 paralela iminente que traz compatibilidade total de bytecode e RPC para aplicações e infraestrutura Ethereum. Através de várias implementações técnicas inovadoras, o Monad tem como objetivo oferecer experiências mais interativas do que as blockchains existentes, ao mesmo tempo que mantém custos de transação mais baixos, otimizando para desempenho e portabilidade, com tempos de bloco de 1 segundo e finalidade com até 10.000 TPS.
Monad implementa execução paralela e pipeline superscalar para otimizar a velocidade e o throughput das transações. Semelhante ao Sei v2, Monad utilizará um modelo de execução otimista, o que significa que a rede começa a executar todas as transações recebidas simultaneamente e, em seguida, analisa e valida as transações em busca de conflitos e reexecuta conforme necessário, com o objetivo final de que o resultado seja idêntico se as transações tivessem sido executadas sequencialmente.
É importante notar que, ao manter a sincronicidade com o Ethereum, o Monad ordena transações em um bloco em ordem linear, com cada transação atualizada sequencialmente.
A fim de manter e acessar dados de blockchain de forma mais eficiente do que o estado atual dos clientes Ethereum oferece, a Monad criou seu próprio MonadDB personalizado, construído nativamente para blockchains. O Monad DB aproveita os recursos avançados do kernel Linux para operações de disco assíncronas eficientes, eliminando as restrições de acesso síncrono de entrada/saída. O MonadDB oferece acesso assíncrono de entrada/saída (E/S assíncrona), um recurso fundamental para permitir a execução paralela, em que o sistema pode começar a processar a próxima transação enquanto aguarda o estado de leitura de uma transação anterior.
Para uma analogia simples, considere cozinhar uma refeição multifacetada (espaguete com almôndegas). As etapas envolvidas são 1) preparar um molho, 2) cozinhar as almôndegas e c) cozinhar a massa. Um chef eficiente começaria fervendo água para a massa, depois preparando os ingredientes para o molho, em seguida, colocando a massa na água fervente, depois cozinhando o molho e, finalmente, as almôndegas, ao invés de fazer cada etapa de cada vez, completando uma tarefa inteiramente antes de passar para a próxima.
Move é uma linguagem de programação originalmente desenvolvida pela equipe do Facebook em 2019 para o seu projeto agora extinto Diem. Move foi projetado para lidar com contratos inteligentes e dados de transação de forma segura, eliminando vetores de ataque nativos de outras linguagens, como ataques de recursão.
O MoveVM serve como o ambiente nativo de execução para blockchains baseadas em Move, aproveitando a paralelização para fornecer velocidades de execução de transação mais rápidas e maior eficiência geral.
Aptos é um blockchain baseado em Move da camada 1 desenvolvido por membros do antigo projeto Diem, que implementa a execução paralela para oferecer um ambiente de alto desempenho para os desenvolvedores de aplicativos. Aptos utiliza o Block-STM, uma implementação modificada do mecanismo de controle de concorrência da Memória Transacional de Software (STM).
Block-STM é um mecanismo de execução paralela multi-threaded que permite a execução paralela otimista. As transações são pré-ordenadas e sequenciadas estrategicamente dentro de blocos, o que é fundamental para resolver conflitos e reexecutar eficientemente essas transações. Pesquisas conduzidas pela Aptos descobriram que até 160K TPS podem ser teoricamente suportados usando a paralelização do Block-STM.
Similar ao Aptos, Sui é um blockchain de camada 1 desenvolvido por ex-membros do projeto Diem, que utiliza a linguagem Move. No entanto, Sui utiliza uma implementação personalizada do Move que altera o modelo de armazenamento e as permissões de ativos do design original do Diem. Em particular, isso permite que o Sui utilize um modelo de armazenamento de estado para representar transações independentes como objetos. Cada objeto possui um ID único dentro do ambiente de execução do Sui, e ao fazer isso, permite que o sistema identifique facilmente transações não conflitantes e as processe em paralelo.
Similar ao Solana, Sui implementa execução paralela determinística, que requer que as transações declarem antecipadamente quais contas precisam acessar.
O que é Movimento?
O Movement está construindo um conjunto de ferramentas de desenvolvedor e serviços de infraestrutura blockchain para permitir que os desenvolvedores acessem facilmente os benefícios de criar no Move. Operando como um provedor de execução como serviço semelhante à AWS para os desenvolvedores do Move, o Movement implementa a paralelização como uma característica de design central para permitir maior throughput e maior eficiência geral da rede. O MoveVM é um ambiente de execução modular que permite que as redes blockchain expandam e ajustem suas capacidades de processamento de transações conforme necessário para poder suportar um volume crescente de transações, reforçando suas habilidades de processar e executar transações em paralelo.
Arquitetura MoveVM
O Movimento também lançará M2, um ZK-rollup que será interoperável com clientes EVM e Move. O M2 herdará o motor de paralelização Block-STM e espera-se que entregue dezenas de milhares de TPS como resultado.
Algumas questões importantes e considerações a serem ponderadas quanto ao desenvolvimento de blockchains paralelas;
Em um nível elevado, as blockchains paralelas enfrentam o risco de inconsistências nos registros, ou seja, gastos duplos e alterações na ordem das transações (de fato, este é o principal benefício da execução sequencial). A paralelização determinística aborda isso criando um sistema de rotulagem interno para transações na blockchain subjacente. Blockchains que implementam processamento otimista devem garantir que os mecanismos que utilizam para validar e reexecutar transações sejam seguros e funcionais, e que os compromissos feitos em termos de desempenho possam ser implementados de forma razoável.
A história dos computadores nos ensinou que os sistemas paralelos tendem a ser mais eficientes e escaláveis ao longo do tempo do que os sistemas sequenciais. O surgimento das blockchains paralelas pós-Solana enfatiza que essa noção também se aplica à infraestrutura de criptomoedas. Até mesmo Vitalik fez alusão aparalelizaçãocomo uma das potenciais soluções-chave para melhorar a escalabilidade dos rollups EVM recentemente. Em termos gerais, o crescimento da adoção de cripto/blockchain exige sistemas mais otimizados do que os disponíveis hoje, incluindo blockchains paralelas. As recentes dificuldades de rede da Solana destacaram que há muito espaço para melhorias no desenvolvimento de blockchains paralelas. À medida que mais equipes buscam empurrar os limites da fronteira onchain e incorporar a próxima grande coorte de usuários e adoção em aplicações e ecossistemas nativos de blockchain, os modelos de execução paralela fornecem um framework intuitivo para construir sistemas que podem lidar eficientemente com magnitudes de atividade de rede em uma escala que corresponda à das empresas Web2 com facilidade.
Não aconselhamento financeiro ou fiscal. O objetivo deste boletim informativo é puramente educacional e não deve ser considerado como aconselhamento de investimento, aconselhamento jurídico, um pedido de compra ou venda de quaisquer ativos, ou uma sugestão para tomar quaisquer decisões financeiras. Não substitui a assessoria tributária. Consulte seu contador e realize sua própria pesquisa.
Divulgações. Todas as postagens são do próprio autor, não as opiniões de seu empregador. Esta postagem foi patrocinada pela Fundação Aster. Embora a Shoal Research tenha recebido financiamento para esta iniciativa, os patrocinadores não influenciam o conteúdo analítico. Na Shoal Research, nosso objetivo é garantir que todo o conteúdo seja objetivo e independente. Nossos processos de revisão interna mantêm os mais altos padrões de integridade, e todos os potenciais conflitos de interesse são divulgados e rigorosamente gerenciados para manter a credibilidade e imparcialidade de nossas pesquisas.