um relatório de desempenho
O relatório "Fastest Chains" divulgado pela CoinGecko em 17 de maio mostra que Solana é o mais rápido entre os grandes blockchains, com a maior média diária de TPS real chegando a 1.054 (as transações de votação foram removidas), e Sui é o segundo Blockchain mais rápido, o mais alto. A média diária do TPS real atinge 854, o BSC ocupa o terceiro lugar, mas o TPS real alcançado é menos da metade do Sui.
Como pode ser visto neste relatório, Solana e Sui com melhor desempenho são blockchains não compatíveis com EVM. Além disso, o TPS real médio de 8 blockchains não compatíveis com EVM é 284, 17 blockchains compatíveis com EVM e o TPS médio. da camada 2 do Ethereum é de apenas 74, e o desempenho de blockchains não compatíveis com EVM é cerca de 4 vezes maior que o de blockchains compatíveis com EVM.
Este artigo explorará os gargalos de desempenho de blockchains compatíveis com EVM e revelará os métodos de desempenho de Solana.
Gargalos de desempenho de blockchains compatíveis com EVM
Primeiro, generalizamos o blockchain EVM para blockchains gerais. De modo geral, se o blockchain quiser melhorar o TPS, existem vários métodos, como segue:
Melhorar o desempenho do nó: Melhorar o desempenho do nó empilhando recursos de hardware Os requisitos de hardware do nó afetarão o grau de descentralização. Por exemplo, a configuração recomendada do Ethereum, CPU 4 núcleos, memória 16 G, largura de banda da rede 25 Mbps, usuário comum. equipamento de nível pode alcançar, um maior grau de descentralização Solana recomenda uma configuração relativamente mais alta de 32 núcleos de CPU, 128 G de memória e largura de banda de rede de 1 Gbps, que só pode ser alcançada com equipamento de nível profissional, e o grau de descentralização é médio; ;
Melhorar os protocolos subjacentes: incluindo protocolos de rede, criptografia, armazenamento, etc. Melhorar os protocolos subjacentes do blockchain não altera as propriedades do blockchain em si, nem afeta as regras operacionais do blockchain. o blockchain, mas a atenção técnica subjacente é baixa e não há grandes avanços no campo de pesquisa atual;
Blocos de expansão: Aumentar o tamanho dos blocos pode incluir mais transações, aumentando assim o rendimento da transação do blockchain. Por exemplo, o Bitcoin Cash (BCH) expandiu os blocos de 1 MB para 8 MB e depois para 32 MB. No entanto, a expansão do bloco também aumentará o atraso de propagação e causará ameaças à segurança, como aumentar a possibilidade de bifurcações e ataques DDoS;
Protocolo de consenso: O protocolo de consenso garante que todos os nós do blockchain cheguem a um acordo sobre a atualização do status do blockchain. É o portão de segurança mais importante do blockchain. Os mecanismos de consenso que foram usados no blockchain incluem PoW, PoS,. PBFT, etc. A fim de satisfazer as necessidades de escalabilidade, as cadeias públicas de alto desempenho geralmente melhoram o protocolo de consenso e combinam-no com os seus próprios mecanismos especiais, tais como o mecanismo de consenso baseado em PoH de Solana e o mecanismo de consenso baseado em avalanche de Avalanche;
Execução de transações: A execução de transações se preocupa apenas com o número de transações ou tarefas de computação processadas por unidade de tempo. Blockchains como o Ethereum usam um método serial para executar transações de contratos inteligentes em blocos. Na execução serial, o gargalo de desempenho da CPU é muito óbvio. , restringindo seriamente o rendimento do blockchain. Geralmente, as cadeias públicas de alto desempenho adotarão a execução paralela, e algumas proporão modelos de linguagem que são mais propícios ao paralelismo para construir contratos inteligentes, como o Sui Move.
Para o blockchain EVM, o maior desafio está na execução das transações devido à limitação da máquina virtual, ou seja, do ambiente de execução das transações. EVM tem dois problemas principais de desempenho:
256 bits: O EVM foi projetado como uma máquina virtual de 256 bits para facilitar o processamento dos algoritmos de hash do Ethereum, que produzirão explicitamente uma saída de 256 bits. No entanto, o computador que realmente executa o EVM precisa mapear bytes de 256 bits para a arquitetura local para execução. Um opcode EVM corresponderá a vários opcodes locais, tornando todo o sistema muito ineficiente e impraticável;
Falta de biblioteca padrão: Não existe uma biblioteca padrão no Solidity e você mesmo deve implementá-la com o código do Solidity. Embora o OpenZeppelin tenha melhorado essa situação até certo ponto, eles fornecem uma biblioteca padrão para implementação do Solidity (incluindo o código no contrato ou). na forma de delegadocall (chame o contrato implantado), mas a velocidade de execução do bytecode EVM é muito menor do que a da biblioteca padrão pré-compilada.
Do ponto de vista da otimização da execução, o EVM ainda apresenta duas deficiências principais:
Dificuldade em fazer análises estáticas: A execução paralela no blockchain significa processar transações não relacionadas ao mesmo tempo, tratando as transações não relacionadas como eventos que não afetam umas às outras. O principal desafio para alcançar a execução paralela é determinar quais transações são irrelevantes e quais são independentes. Atualmente, algumas cadeias públicas de alto desempenho realizam análises estáticas nas transações com antecedência. O mecanismo de saltos dinâmicos do EVM dificulta a análise estática do código. ;
O compilador JIT é imaturo: o compilador JIT (Just In Time Compiler) é um método de otimização comumente usado em máquinas virtuais modernas. O principal objetivo do JIT é transformar a execução de interpretação em execução compilada. Em tempo de execução, a máquina virtual compila o código quente em código de máquina relacionado à plataforma local e executa vários níveis de otimização. Embora existam atualmente projetos EVM JIT, eles ainda estão em fase experimental e não estão suficientemente maduros.
Portanto, em termos de seleção de máquinas virtuais, as cadeias públicas de alto desempenho usam máquinas virtuais baseadas em WASM, bytecode eBPF ou bytecode Move em vez de EVM. Solana, por exemplo, usa sua própria máquina virtual exclusiva SVM e bytecode SBF baseado em eBPF.
Correntes mais rápidas: Solana
Solana é famosa por seu mecanismo PoH (Prova de História) e baixa latência e alto rendimento. É um dos mais famosos "assassinos de Ethereum".
Em sua essência, PoH é um algoritmo hash simples semelhante à Verifiable Delay Function (VDF). Solana é implementado usando uma função hash de sequência resistente à pré-imagem (SHA-256) que é executada continuamente, usando a saída de uma iteração como entrada para a próxima. Este cálculo é executado em um único núcleo por validador.
Embora a geração de sequência seja sequencial e de thread único, a verificação pode ocorrer em paralelo, permitindo uma verificação eficiente em sistemas multinúcleo. Embora haja um limite superior na velocidade do hash, as melhorias de hardware podem fornecer ganhos adicionais de desempenho.
Processo de consenso de Solana
O mecanismo PoH serve como uma fonte de tempo confiável e não confiável, criando um registro verificável e ordenado de eventos na rede. O tempo baseado em PoH permite que a rede Solana alterne os líderes de maneira programada e transparente. Esta rotação ocorre em intervalos fixos de 4 slots, cada slot está atualmente definido para 400 milissegundos. Este mecanismo de rotação de líderes garante que cada validador participante tenha uma chance justa de se tornar um líder e é um mecanismo importante para a rede Solana manter a descentralização e a segurança, evitando que qualquer validador único ganhe muito poder na rede.
A cada período de slot, o líder propõe um novo bloco contendo as transações recebidas dos usuários. O líder valida essas transações, empacota-as em um bloco e então transmite o bloco para os validadores restantes da rede. Esse processo de proposta e transmissão de blocos é chamado de produção de blocos, e os demais validadores da rede devem votar na validade do bloco. Os validadores verificam o conteúdo dos blocos para garantir que as transações são válidas e cumprem as regras da rede. Um bloco é considerado confirmado se receber a maioria dos votos do peso da aposta. Este processo de confirmação é fundamental para manter a segurança da rede Solana e evitar gastos duplos.
Quando o período do líder atual terminar, a rede não irá parar ou esperar pela confirmação do bloco, mas passará para o próximo período de tempo, proporcionando aos líderes subsequentes a oportunidade de produzir blocos, e todo o processo será reiniciado. Esta abordagem garante que a rede Solana mantenha um alto rendimento e permaneça resiliente, mesmo que alguns validadores enfrentem problemas técnicos ou fiquem off-line.
Solana Desempenho Tao
Como a rede Solana confirma os líderes com antecedência, Solana não exige um mempool público para realizar as transações dos usuários. Quando um usuário envia uma transação, o servidor RPC a converte em um pacote QUIC e o encaminha imediatamente ao validador do líder. Essa abordagem é chamada de Gulf Stream e permite a troca rápida de líderes e a pré-execução de transações, reduzindo a carga de memória em outros validadores.
Os dados do bloco de Solana são trazidos para o espaço do kernel e, em seguida, passados para a GPU para verificação paralela da assinatura. Assim que a assinatura for verificada na GPU, os dados serão passados para a CPU para execução da transação e, finalmente, retornados ao espaço do kernel para. persistência de dados. Esse processo de processamento múltiplo de divisão de dados em diferentes componentes de hardware, chamado tecnologia de pipeline, pode maximizar a utilização do hardware e acelerar a verificação e transmissão de blocos.
Como as transações do Solana especificam explicitamente quais contas são acessadas, o agendador de transações do Solana pode aproveitar mecanismos de bloqueio de leitura e gravação para executar transações em paralelo. Cada thread do agendador de transações Solana possui sua própria fila gerenciada, processa as transações de forma sequencial e independente, tenta bloquear (bloqueio de leitura e gravação) a conta da transação e executar as transações com conflitos de conta serão executadas posteriormente. Essa tecnologia de execução paralela multithread é chamada Sealevel.
O processo de propagação de blocos líderes, dividindo pacotes QUIC (opcionalmente usando codificação de eliminação) em pacotes menores e distribuindo-os aos validadores em uma estrutura hierárquica. Essa técnica é chamada de Turbina e reduz principalmente o uso de largura de banda do líder.
Durante o processo de votação, os validadores usam um mecanismo de consenso para votação bifurcada. Os validadores não precisam esperar pelos votos para prosseguir com a produção do bloco; em vez disso, os produtores do bloco monitoram continuamente novos votos válidos e os incluem no bloco atual em tempo real; Este mecanismo de consenso é denominado TowerBFT e, ao mesclar votos bifurcados em tempo real, Solana garante um processo de consenso mais eficiente e simplificado, melhorando assim o desempenho geral.
Para o processo de persistência de blocos, Solana desenvolveu o banco de dados Cloudbreak para maximizar a eficiência do SSD particionando a estrutura de dados da conta de forma específica para se beneficiar da velocidade das operações sequenciais e do uso de arquivos mapeados na memória.
Para reduzir a carga dos validadores, Solana transfere o armazenamento de dados dos validadores para uma rede de nós chamada Archiver. O histórico do status da transação é dividido em muitos fragmentos e a tecnologia de codificação de eliminação é usada. O Archiver é usado para armazenar fragmentos de estado, mas não participa do consenso.
Resumir
A visão de Solana é ser um blockchain cujo software seja dimensionado na velocidade do hardware, de modo que Solana aproveite ao máximo todos os recursos de CPU, GPU e largura de banda disponíveis nos computadores atuais para maximizar o desempenho, com uma velocidade máxima teórica de 65.000 TPS.
É precisamente por causa do alto desempenho e escalabilidade de Solana que Solana se tornou a plataforma blockchain preferida para processar transações de alta frequência e contratos inteligentes complexos. Seja a faixa DePIN/AI no início do ano ou a recente faixa Meme. Solana demonstrou um enorme potencial.
Após o lançamento do ETF Ethereum, Solana também se tornou a criptomoeda com mais pedidos para o próximo ETF. Embora a SEC ainda liste Solana como um título, outros ETFs de criptomoeda não serão aprovados no curto prazo. Mas no mercado criptográfico, o consenso é valor, e o consenso de Solana pode estar a tornar-se tão indestrutível como o Bitcoin e o Ethereum.