O que é uma máquina virtual personalizada?
Uma máquina virtual personalizada, ou Custom VM, é um ambiente de execução de blockchain projetado com regras próprias para processar transações, executar programas, gerenciar o estado e medir recursos computacionais.Em termos simples, uma Custom VM é a parte de uma blockchain que determina o que os programas podem fazer e como cada transação válida altera o estado da blockchain.Uma equipe pode criar uma Custom VM em vez de usar um ambiente existente, como a Ethereum Virtual Machine, quando precisa de recursos diferentes de desempenho, segurança, programação, privacidade ou funcionalidades para aplicativos.A palavra “personalizada” significa que o ambiente de execução foi criado, modificado ou otimizado para as necessidades de uma blockchain, rollup, blockchain de aplicação ou sistema de provas criptográficas específico.Uma Custom VM pode introduzir seu próprio conjunto de instruções, estrutura de contas, regras de armazenamento, formato de transação, modelo de taxas, funções do sistema e linguagem de smart contracts.Também pode modificar uma máquina virtual existente, em vez de ser projetada inteiramente do zero.Por exemplo, a documentação oficial da Solana sobre execução de programas descreve o sBPF como uma variante personalizada do bytecode eBPF, adaptada ao runtime de sua blockchain.
Uma Custom VM é importante porque os nós da blockchain precisam executar as transações exatamente da mesma forma para chegar a um acordo sobre saldos, contratos, propriedade e estado dos aplicativos.Se dois nós honestos executarem a mesma transação e produzirem resultados diferentes, a rede poderá se dividir ou rejeitar o bloco.Por isso, uma VM de blockchain precisa ser determinística, segura, ter recursos limitados e contar com especificações precisas.O que faz uma máquina virtual de blockchain?
Uma máquina virtual de blockchain funciona como um computador controlado que todos os nós validadores podem reproduzir.Ela recebe transações ou instruções de programas e as aplica ao estado atual da blockchain.A VM verifica se a transação segue as regras do protocolo, se o remetente tem a autorização necessária e se há recursos suficientes para a execução.Em seguida, realiza as operações permitidas, como transferir tokens, alterar o armazenamento de um contrato, emitir um NFT, atualizar uma posição de empréstimo ou votar em uma proposta de governança.Após a execução, a VM produz um novo estado que outros nós podem verificar de forma independente.A documentação da Ethereum Virtual Machine descreve a EVM como um ambiente virtual descentralizado que executa código de forma consistente entre os nós da Ethereum.
Uma Custom VM tem a mesma finalidade geral, mas pode usar uma arquitetura e regras de execução diferentes.Normalmente, a VM não é responsável por todas as partes da blockchain.O consenso determina como os nós concordam sobre a ordem e a aceitação dos blocos, enquanto a VM determina o que essas transações ordenadas fazem.A disponibilidade de dados determina se é possível recuperar os dados das transações necessários para a verificação.A liquidação determina onde os resultados, as provas ou as disputas recebem reconhecimento final em sistemas modulares.A Custom VM pertence especificamente à camada de execução, embora seu projeto possa afetar todas essas outras camadas.Por que as blockchains criam Custom VMs
As blockchains criam Custom VMs quando os ambientes de execução de uso geral não oferecem o desempenho ou os recursos necessários para os aplicativos pretendidos.Uma blockchain projetada para trading de alta frequência pode precisar de execução paralela de transações, taxas previsíveis e acesso rápido ao estado.Um jogo em blockchain pode precisar de ativos digitais nativos, ações de baixo custo, permissões de conta e armazenamento eficiente para objetos do jogo.Uma blockchain voltada à privacidade pode precisar de estado confidencial, suporte a provas de conhecimento zero e acesso restrito aos dados.Um rollup pode precisar de um ambiente de execução que seja fácil de provar com criptografia de conhecimento zero.Uma blockchain específica para determinada aplicação pode precisar apenas de um conjunto pequeno de operações cuidadosamente controladas, em vez de uma plataforma de smart contracts totalmente genérica.Uma Custom VM permite que os desenvolvedores otimizem a blockchain para esses objetivos.A contrapartida é que a equipe precisa criar e manter mais infraestrutura por conta própria.Pode ser necessário desenvolver compiladores, carteiras, depuradores, exploradores de blockchain, ferramentas de segurança, kits de desenvolvimento de software e documentação para desenvolvedores personalizados.Uma VM altamente otimizada pode oferecer excelente desempenho, mas talvez tenha dificuldade para atrair desenvolvedores se suas ferramentas forem difíceis de usar.Custom VM vs. Ethereum Virtual Machine
A Ethereum Virtual Machine, ou EVM, é o ambiente de execução usado pelos smart contracts da Ethereum e se tornou um padrão amplamente adotado de compatibilidade em todo o setor cripto.Os desenvolvedores costumam escrever contratos para a EVM em Solidity ou Vyper e compilá-los em bytecode da EVM.A EVM usa uma arquitetura baseada em pilha e mede a execução por meio de gas.Seu grande ecossistema de desenvolvedores inclui carteiras, bibliotecas, frameworks de testes, ferramentas de segurança e padrões de contratos consolidados.Uma Custom VM pode se afastar da EVM em quase todas as principais decisões de projeto.Pode usar registradores em vez de uma pilha, oferecer suporte à execução paralela, adotar um modelo de contas diferente ou cobrar recursos em unidades de computação ou pesos, em vez de gas da EVM.Também pode oferecer suporte a linguagens de programação que normalmente não são usadas para contratos da EVM.A principal vantagem de usar a EVM é a compatibilidade.A principal vantagem de uma Custom VM é a liberdade para otimizar o ambiente de execução para uma finalidade específica.No entanto, compatibilidade com a EVM e execução personalizada nem sempre são conceitos completamente opostos.Algumas redes usam uma VM central personalizada e adicionam um interpretador ou uma camada de compatibilidade para bytecode da EVM.A documentação oficial da EraVM, por exemplo, descreve uma arquitetura em que uma VM otimizada para ZK continua sendo o ambiente central de execução, enquanto um interpretador da EVM oferece suporte a bytecode no estilo Ethereum.
Essa abordagem pode proporcionar alguma compatibilidade com o ecossistema sem abrir mão de todas as vantagens da execução personalizada.Custom VM vs. runtime de blockchain personalizado
Às vezes, os termos Custom VM e runtime de blockchain personalizado são usados como se significassem exatamente a mesma coisa, mas a distinção pode ser importante.Uma máquina virtual normalmente executa bytecode de acordo com um conjunto de instruções definido.Runtime é um termo mais abrangente para a lógica que processa transações e define as transições de estado da blockchain.Algumas blockchains usam uma VM tradicional na qual os desenvolvedores implementam bytecode de smart contracts independentes.Outras compilam a maior parte da lógica de negócio da blockchain em um único runtime, em vez de oferecer uma VM irrestrita para smart contracts.A documentação do nó e do runtime do Polkadot SDK descreve um runtime como a lógica de transição de estado da blockchain, compilada para WebAssembly para execução independente de plataforma.
A documentação de arquitetura do Cosmos SDK descreve um aplicativo de blockchain como uma máquina de estados formada por módulos que definem a lógica de negócio e processam transações.
Esses sistemas oferecem execução personalizada, embora os desenvolvedores possam chamar o resultado de runtime, máquina de estados da aplicação ou ambiente de execução, em vez de Custom VM.Por isso, o termo Custom VM às vezes é usado de maneira imprecisa nas discussões sobre cripto.Os usuários devem analisar a arquitetura real, em vez de confiar apenas no rótulo.Componentes centrais de uma Custom VM
Conjunto de instruções
O conjunto de instruções define as operações de baixo nível que os programas podem executar.As instruções podem realizar cálculos aritméticos, ler memória, gravar dados de armazenamento, comparar valores, verificar assinaturas, chamar outro contrato ou retornar dados.Um conjunto de instruções menor pode ser mais fácil de analisar e provar, enquanto um conjunto maior pode oferecer funcionalidades mais diretas.Os projetistas de Custom VMs precisam garantir que cada instrução tenha um significado claro e determinístico.Modelo de estado
O modelo de estado define como a blockchain representa contas, saldos, contratos, tokens, objetos e dados armazenados.Algumas VMs usam um estado global baseado em contas, semelhante ao da Ethereum.Outras usam saídas de transação não gastas, objetos independentes, armazenamentos de chave-valor ou registros específicos de aplicativos.O modelo de estado afeta significativamente o paralelismo de transações, o projeto das carteiras, as permissões dos contratos e a experiência dos desenvolvedores.Memória e armazenamento
Normalmente, memória se refere aos dados temporários usados durante uma execução, enquanto armazenamento se refere aos dados persistentes que permanecem depois do fim da transação.O armazenamento persistente em blockchain é caro porque os nós validadores precisam reproduzir ou verificar suas alterações.Uma Custom VM pode introduzir estruturas de armazenamento especializadas para reduzir custos ou melhorar a geração de provas.As regras de armazenamento precisam impedir que um contrato altere, sem autorização, dados pertencentes a outro contrato.Medição de recursos
A medição de recursos limita a quantidade de computação, memória, armazenamento e largura de banda que uma transação pode consumir.Sem limites de recursos, um invasor poderia enviar um programa que nunca termina ou consome recursos suficientes para impedir que os nós processem outras transações.A EVM usa gas, enquanto outros ambientes de execução podem usar unidades de computação, pesos, ciclos ou categorias de recursos separadas.O sistema de medição precisa cobrar o suficiente pelas operações caras para evitar abusos, sem tornar impraticáveis os aplicativos legítimos.Funções host e chamadas de sistema
As Custom VMs geralmente oferecem funções host ou chamadas de sistema que os programas podem usar para acessar recursos específicos da blockchain.Essas funções podem verificar assinaturas criptográficas, ler informações de blocos, chamar outro programa, criar um ativo, emitir um evento ou acessar dados externos aprovados.A referência de chamadas de sistema da Solana documenta funções do runtime para criptografia, registro de logs, operações de memória, chamadas entre programas e outras ações de blockchain.
As chamadas de sistema podem aumentar a eficiência, mas cada uma amplia a superfície que precisa ser especificada, testada e protegida.Como as transações são executadas em uma Custom VM
Normalmente, uma transação entra na blockchain por meio de um nó ou endpoint RPC.A rede verifica propriedades básicas, como formatação, assinaturas, taxas e proteção contra replay.O consenso ou o software de produção de blocos determina a posição da transação em relação às demais.Em seguida, a Custom VM carrega a transação, o estado relevante e o programa que deve ser executado.Ela verifica as permissões e inicializa o contexto de execução.A VM processa as instruções enquanto monitora o consumo de recursos.Se a execução for concluída com sucesso, as alterações resultantes no estado são confirmadas.Se a execução falhar, normalmente a VM reverte algumas ou todas as alterações de estado, de acordo com as regras do protocolo.A transação ainda pode pagar uma taxa, pois os nós usaram recursos computacionais para processar a tentativa malsucedida.Todos os nós validadores precisam produzir o mesmo resultado final a partir do mesmo estado inicial e da mesma transação ordenada.Esse requisito é conhecido como execução determinística.Determinismo em uma Custom VM
Determinismo significa que entradas idênticas devem produzir saídas idênticas em todos os nós honestos.Esse requisito impede que os validadores discordem sobre qual é o estado correto da blockchain.Aplicativos comuns de computador podem usar relógios locais, dados aleatórios do sistema operacional, cálculos de ponto flutuante ou solicitações à internet que podem produzir resultados diferentes em máquinas distintas.Uma VM de blockchain precisa restringir ou definir cuidadosamente essas fontes de incerteza.Em geral, a aleatoriedade precisa vir de uma fonte aprovada pelo protocolo, em vez de um programa simplesmente pedir ao computador um número aleatório.Normalmente, informações externas são fornecidas por meio de um oráculo ou de uma mensagem verificada, e não por uma solicitação irrestrita à web.O comportamento aritmético precisa ser especificado com precisão, incluindo overflow, divisão, arredondamento e limites numéricos.Uma Custom VM que não mantém o determinismo pode causar falhas de consenso, divisões da blockchain ou provas incorretas.Sandboxing e isolamento
Normalmente, uma Custom VM executa programas em um sandbox que limita o acesso ao sistema operacional do nó.Um smart contract não deve poder ler arquivos privados de um validador, abrir conexões de rede arbitrárias ou assumir o controle da máquina hospedeira.O sandbox define quais regiões de memória, áreas de armazenamento e funções host o programa pode acessar.Também limita a profundidade das chamadas, o tamanho da pilha, o crescimento da memória e o tempo de execução.Um isolamento robusto protege os validadores contra programas maliciosos enviados por usuários.Também protege os contratos contra o acesso não autorizado de outros contratos.Uma violação do sandbox pode se tornar um problema grave de segurança da rede, pois os validadores podem executar código enviado por um invasor ao processar blocos.Por isso, as implementações de Custom VMs exigem auditorias cuidadosas, testes fuzz, análise de dependências e um projeto seguro de compilador.Custom VMs baseadas em pilha e em registradores
Uma VM baseada em pilha realiza muitas operações empilhando valores e removendo-os quando as instruções precisam de entradas.A EVM é uma máquina virtual conhecida baseada em pilha.Uma VM baseada em registradores armazena valores de trabalho em registradores nomeados ou numerados.Projetos baseados em registradores podem reduzir o número de instruções necessárias para alguns cálculos e oferecer desempenho mais previsível.A documentação oficial da arquitetura da FuelVM descreve a FuelVM como uma máquina virtual baseada em registradores, projetada para execução em blockchain.
Nenhuma das arquiteturas é automaticamente melhor para todas as blockchains.Sistemas baseados em pilha podem ter bytecode mais simples e ferramentas consolidadas.Sistemas baseados em registradores podem oferecer vantagens de execução ou compilação para determinadas cargas de trabalho.A melhor escolha depende das metas de desempenho, dos sistemas de provas, das linguagens dos desenvolvedores, dos objetivos de segurança e da complexidade da implementação.Custom VMs e execução paralela
A execução paralela permite que uma blockchain processe simultaneamente várias transações que não entram em conflito.A execução sequencial tradicional processa uma transação após a outra, mesmo quando elas afetam contas sem relação entre si.Uma Custom VM pode ser projetada para identificar quais estados cada transação lê ou altera.Assim, transações sem conflitos podem ser executadas em vários núcleos de processador.Isso pode aumentar a capacidade de processamento de aplicativos com muitos usuários independentes.A execução paralela se torna mais difícil quando os contratos podem acessar qualquer parte do estado global sem declarar suas dependências.Uma Custom VM pode exigir que as transações identifiquem as contas ou os objetos relevantes antes da execução.Também pode usar execução otimista e repetir as transações quando forem detectados conflitos.O paralelismo só melhora o desempenho quando o agendamento, a detecção de conflitos e os compromissos de estado continuam corretos.Os desenvolvedores precisam entender o modelo de concorrência, pois duas transações executadas separadamente podem se comportar de forma diferente quando disputam o mesmo estado.Custom VMs e linguagens de smart contracts
Uma Custom VM geralmente precisa de uma ou mais linguagens de programação que sejam compiladas para o bytecode ou formato executável compatível.Uma VM pode oferecer suporte a Rust, C, C++, Move, linguagens compatíveis com WebAssembly ou uma linguagem de smart contracts desenvolvida especificamente para ela.A linguagem afeta a segurança, a produtividade dos desenvolvedores, o tamanho dos contratos e a complexidade do compilador.Uma linguagem com regras rígidas de tipos e propriedade pode impedir algumas classes de erros antes da implementação.Uma linguagem conhecida pode atrair mais desenvolvedores, mas também pode incluir recursos difíceis de oferecer de forma determinística.O compilador faz parte da cadeia de segurança porque traduz código legível por humanos em instruções executadas pela VM.Um erro no compilador pode fazer com que o bytecode implementado se comporte de maneira diferente do código-fonte do desenvolvedor.Ecossistemas sólidos precisam de compilações reproduzíveis, verificação do código-fonte, controle de versões do compilador e análises de segurança independentes.Custom VMs e WebAssembly
WebAssembly, geralmente chamado de Wasm, é um formato portátil de instruções binárias que pode servir de base para a execução em blockchain.Uma blockchain pode compilar seu runtime ou seus smart contracts para Wasm e executá-los em um ambiente controlado.O Wasm pode oferecer suporte a várias linguagens de código-fonte e fornece um formato de execução independente de plataforma.O Polkadot SDK armazena a lógica do runtime da blockchain como um binário Wasm e pode atualizar esse runtime por meio de procedimentos de governança on-chain.A documentação oficial sobre atualizações do runtime explica que esse projeto pode adicionar funcionalidades ou corrigir problemas sem exigir um hard fork tradicional de toda a rede.
Uma blockchain que usa Wasm ainda é personalizada se definir funções host, custos de recursos, regras de estado e comportamento de transações específicos para blockchain.O Wasm fornece uma base de execução, mas as regras do runtime que o envolve determinam como essa base funciona no contexto cripto.Custom VMs e blockchains específicas para aplicações
Uma blockchain específica para aplicações é projetada para uma aplicação, mercado ou categoria de atividade.Em vez de compartilhar uma VM de uso geral com aplicativos não relacionados, a blockchain pode criar regras de execução voltadas especificamente a seus próprios usuários.A visão geral oficial do Cosmos SDK explica que os desenvolvedores podem combinar módulos predefinidos e criar módulos personalizados, adaptados às necessidades da aplicação.
Uma blockchain voltada ao trading pode incluir correspondência nativa de ordens e controles de risco.Uma blockchain para jogos pode incluir criação nativa de itens, contas de jogadores e ações repetidas de baixo custo.Uma blockchain de identidade pode restringir alterações de estado a credenciais verificadas e emissores autorizados.A execução específica para aplicações pode melhorar a eficiência, pois as operações comuns se tornam recursos do protocolo, em vez de smart contracts complexos.A desvantagem é a menor flexibilidade caso futuros desenvolvedores queiram criar aplicativos que o runtime original não previa.Custom VMs em rollups
Um rollup executa transações fora de uma blockchain-base e envia dados, compromissos ou provas para uma camada de liquidação.Como o rollup controla seu software de execução, pode usar uma Custom VM em vez de copiar exatamente a VM da camada-base.Uma Custom VM pode reduzir os custos das provas, oferecer suporte a diferentes modelos de contas ou fornecer recursos especializados para aplicativos.No entanto, a execução personalizada pode dificultar a compatibilidade com carteiras, contratos e ferramentas de desenvolvimento existentes.Os desenvolvedores podem precisar de bridges ou interpretadores para oferecer suporte a ativos e aplicativos de outro ecossistema.Um rollup também precisa definir como a camada de liquidação verifica os resultados de sua Custom VM.Um optimistic rollup pode usar provas de fraude ou jogos de disputa.Um zero-knowledge rollup pode enviar provas de validade que demonstram que a Custom VM seguiu suas regras.Um sovereign rollup pode depender mais de seus próprios nós e do consenso social para garantir a correção da execução.Assim, a Custom VM se torna parte do modelo de segurança e interoperabilidade do rollup.Custom VMs e blockchains modulares
O projeto de blockchain modular separa execução, consenso, disponibilidade de dados e liquidação em componentes diferentes.Essa separação dá às equipes de rollup mais liberdade para escolher ou criar uma Custom VM.A documentação sobre disponibilidade de dados da Celestia explica que várias camadas de execução podem usar uma infraestrutura compartilhada de disponibilidade de dados e liquidação.
Uma camada de execução pode usar a EVM, enquanto outra pode usar Wasm, uma VM de conhecimento zero ou uma máquina de estados específica para uma aplicação.Essa flexibilidade é um dos principais benefícios da arquitetura modular.No entanto, a equipe precisa definir como a Custom VM obtém dados, verifica mensagens, se comunica com bridges e produz resultados confiáveis para outros sistemas.Uma VM de alto desempenho não torna uma blockchain modular segura se seus dados estiverem indisponíveis ou se sua bridge puder ser comprometida.Custom VMs e provas de conhecimento zero
Uma máquina virtual de conhecimento zero, ou zkVM, executa programas enquanto produz uma prova criptográfica de que a execução foi correta.Muitas vezes, é possível verificar a prova com mais eficiência do que repetir todo o cálculo.A documentação da zkVM RISC Zero descreve um sistema que prova a execução correta de código Rust arbitrário.
Sua especificação técnica informa que a VM implementa um conjunto de instruções RISC-V de 32 bits.
Uma zkVM é um tipo especializado de Custom VM quando foi projetada ou adaptada para computação comprovável.O projeto de uma zkVM personalizada pode otimizar instruções, acesso à memória, hashing e operações aritméticas para gerar provas com eficiência.Isso pode ajudar os rollups a verificar grandes volumes de execução com provas compactas.No entanto, a geração de provas pode exigir recursos computacionais significativos, hardware especializado e criptografia auditada com cuidado.Os usuários não devem confundir a validade de uma prova de conhecimento zero com a segurança completa do aplicativo.Uma prova pode demonstrar que a VM seguiu suas regras, mesmo quando as regras do aplicativo contêm um projeto econômico prejudicial ou um erro de programação.Custom VMs e compatibilidade com a EVM
Uma Custom VM pode ser compatível com a EVM sem ser idêntica a ela.Em geral, compatibilidade com a EVM significa que os desenvolvedores podem implementar contratos Solidity ou usar ferramentas conhecidas no estilo Ethereum com poucas alterações.Equivalência com a EVM é uma afirmação mais forte: significa que o comportamento de execução se aproxima do da EVM da Ethereum.Um compilador personalizado pode traduzir Solidity para um conjunto de instruções diferente.Um interpretador pode executar bytecode da EVM dentro da Custom VM.Uma camada de compatibilidade pode reproduzir APIs da Ethereum usando um estado interno ou sistemas de provas diferentes.Cada método envolve contrapartidas de desempenho, comportamento do gas, depuração, pressupostos dos contratos e complexidade das atualizações.Os desenvolvedores não devem presumir que uma blockchain compatível com a EVM se comporta exatamente como a Ethereum em todos os casos extremos.Diferenças em opcodes, precompilações, informações de blocos, taxas, finalidade e ordenação de transações podem afetar os aplicativos.Benefícios de uma máquina virtual personalizada
O primeiro benefício de uma Custom VM é o desempenho específico para aplicações.A VM pode otimizar operações comuns, em vez de obrigar todos os aplicativos a usar um modelo de execução genérico.O segundo benefício é um modelo de estado flexível.Os desenvolvedores podem escolher contas, objetos, UTXOs, módulos ou outro modelo que se adeque ao caso de uso pretendido.O terceiro benefício é uma execução paralela melhor.A VM pode expor as dependências das transações de modo que operações sem conflitos sejam executadas simultaneamente.O quarto benefício é uma segurança especializada.Um conjunto restrito de instruções ou um runtime de aplicação limitado pode reduzir o número de ações que invasores podem tentar.O quinto benefício é a eficiência na geração de provas criptográficas.Uma Custom VM pode usar instruções e estruturas de memória projetadas para sistemas de provas de conhecimento zero.O sexto benefício é uma melhor experiência para o usuário.A VM pode incluir recuperação de conta nativa, transações patrocinadas, permissões de sessão ou taxas previsíveis.O sétimo benefício é a funcionalidade no nível do protocolo.Recursos como ativos nativos, livros de ordens, regras de privacidade ou governança podem ser incorporados diretamente ao ambiente de execução.Riscos e limitações de uma Custom VM
O primeiro risco é um erro de implementação.Uma VM nova tem menos testes no mundo real do que um ambiente de execução consolidado e usado por muitas redes.O segundo risco são ferramentas inadequadas para desenvolvedores.Os desenvolvedores podem não contar com compiladores, depuradores, frameworks de teste, scanners de segurança e bibliotecas de contratos confiáveis.O terceiro risco é a compatibilidade limitada com o ecossistema.Contratos, carteiras e infraestrutura existentes podem não funcionar sem modificações.O quarto risco é a complexidade das especificações.Cada instrução, custo de recurso, regra de estado e função do sistema precisa ser documentada com precisão.O quinto risco é a centralização das atualizações.Se uma equipe puder alterar a VM sem controles robustos de governança, os usuários precisarão confiar que ela não introduzirá comportamentos prejudiciais.O sexto risco é um ecossistema de segurança pouco maduro.Os auditores podem ter menos experiência com um formato de bytecode ou modelo de execução novo.O sétimo risco é a precificação econômica incorreta.Custos de recursos incorretos podem tornar baratos os ataques de negação de serviço ou caros demais os aplicativos legítimos.O oitavo risco é a fragmentação.Um número excessivo de Custom VMs incompatíveis pode dividir desenvolvedores, liquidez, ferramentas e usuários entre ecossistemas isolados.Requisitos de segurança para uma Custom VM
Uma Custom VM segura precisa executar de forma determinística em diferentes implementações de nós e ambientes de hardware.Precisa isolar programas não confiáveis do sistema operacional do validador.Precisa impedir o acesso não autorizado ao armazenamento dos contratos, aos saldos dos usuários e aos privilégios do sistema.Precisa medir todos os recursos que os invasores poderiam esgotar.Precisa lidar com limites de inteiros, limites de memória, recursão, chamadas de contratos e condições de falha com segurança.Precisa definir como as alterações de estado são revertidas quando a execução falha.Precisa impedir o replay de assinaturas entre transações, blockchains ou domínios.Precisa proteger funções host privilegiadas e contratos do sistema contra chamadas não autorizadas.O compilador e o verificador de bytecode precisam rejeitar programas malformados ou inseguros.O processo de atualização precisa incluir análise, testes, planejamento de emergência e governança clara.Os testes de segurança devem incluir testes unitários, testes de integração, testes diferenciais, fuzzing, testes de propriedades e simulações econômicas adversariais.Quando possível, várias implementações independentes podem ajudar a detectar erros de especificação que uma única base de código talvez não revele.Atualizações de Custom VMs
Uma Custom VM pode precisar de atualizações para corrigir falhas de segurança, adicionar instruções, melhorar o desempenho ou oferecer suporte a novas técnicas criptográficas.Alterar as regras da VM exige cuidado, pois todos os nós precisam começar a usar as novas regras no momento correto da blockchain.Uma atualização incorreta pode dividir a rede se alguns nós aceitarem transações que outros rejeitam.Algumas blockchains coordenam atualizações da VM por meio de lançamentos de software programados e hard forks.Outras armazenam um runtime atualizável on-chain e autorizam alterações por meio da governança.Rollups podem usar contratos de liquidação atualizáveis, conselhos de segurança, multisigs ou timelocks de governança.Os usuários devem entender quem pode aprovar atualizações da Custom VM e se há um período de espera antes de as alterações entrarem em vigor.Uma VM imutável reduz o risco de governança, mas dificulta correções emergenciais.Uma VM facilmente atualizável pode responder rapidamente, mas cria maior dependência da autoridade responsável pelas atualizações.Como os desenvolvedores avaliam uma Custom VM
Primeiro, os desenvolvedores devem analisar as linguagens de programação da VM e o grau de maturidade do compilador.Também devem consultar a documentação do conjunto de instruções, do modelo de contas, do armazenamento, das taxas e do ciclo de vida das transações.Devem verificar se os contratos podem ser conferidos a partir do código-fonte publicado.Devem analisar as ferramentas de depuração, testes locais, testnet, implementação e monitoramento.Precisam entender como a VM lida com reentrância, chamadas entre contratos, concorrência e transações malsucedidas.Devem verificar as auditorias de segurança da VM e de sua cadeia de ferramentas do compilador.Devem testar se as carteiras, ferramentas de custódia, indexadores e infraestruturas existentes oferecem suporte à rede.Devem avaliar se o desempenho anunciado se aplica a aplicativos realistas ou apenas a transações simples de benchmark.Também devem estudar a autoridade responsável pelas atualizações, pois um programa seguro ainda pode ser afetado por alterações no ambiente de execução.Como os usuários de cripto avaliam uma blockchain com Custom VM
Os usuários comuns não precisam ler cada opcode da VM, mas devem entender as principais premissas de confiança.Devem verificar se a Custom VM está em produção há um período significativo.Devem verificar se a blockchain publica auditorias, especificações técnicas, relatórios de incidentes e avisos de atualização.Devem entender se a carteira exibe detalhes das transações em linguagem clara.Devem verificar se os ativos dependem de bridges para serem transferidos entre a blockchain com Custom VM e outras redes.Devem entender as taxas de transação, as regras de finalidade, o modelo de sequenciador e o processo de saque da blockchain.Não devem presumir que uma alta capacidade de processamento de transações significa automaticamente forte descentralização ou segurança.Antes de transferir ativos valiosos, devem testar redes e aplicativos desconhecidos com pequenas quantias.Uma Custom VM pode oferecer recursos úteis, mas os usuários continuam expostos a riscos de smart contracts, bridges, carteiras, governança e mercado.Casos de uso comuns de Custom VMs
Custom VMs são usadas em redes de smart contracts de alta capacidade que precisam de execução paralela.São usadas em blockchains de aplicação que precisam de lógica de negócio nativa e tipos de transação controlados.São usadas em jogos de blockchain que exigem muitas atualizações de estado de baixo custo.São usadas em sistemas de finanças descentralizadas que precisam de processamento especializado de ordens ou cálculos de risco.São usadas em sistemas de privacidade que executam programas confidenciais ou de conhecimento zero.São usadas em rollups que precisam gerar provas de validade com eficiência.São usadas em redes empresariais ou permissionadas com requisitos de identidade e controle de acesso.São usadas em camadas de interoperabilidade que precisam verificar mensagens cross-chain com eficiência.Também são usadas em pesquisas experimentais sobre blockchain que envolvem novos modelos de estado, linguagens de programação e mecanismos de taxas de transação.Equívocos comuns sobre Custom VMs
Um equívoco é pensar que toda blockchain que não usa a EVM tem uma Custom VM tradicional.Algumas blockchains usam um runtime compilado ou uma máquina de estados específica para aplicações, sem oferecer suporte a bytecode genérico implementado pelos usuários.Outro equívoco é pensar que uma Custom VM é automaticamente mais rápida que a EVM.O desempenho depende do acesso ao estado, do hardware dos nós, da rede, do consenso, da disponibilidade de dados, das cargas de trabalho e da qualidade da implementação.Um terceiro equívoco é pensar que a execução personalizada melhora automaticamente a segurança.Uma VM especializada pode reduzir alguns riscos e, ao mesmo tempo, introduzir novos riscos de implementação e ferramentas.Um quarto equívoco é pensar que compatibilidade com a EVM significa comportamento idêntico ao da Ethereum.Sistemas compatíveis podem apresentar diferenças de execução, taxas, precompilações, finalidade e infraestrutura.Um quinto equívoco é pensar que uma zkVM garante que todos os aplicativos são seguros.Uma zkVM prova que as regras de execução definidas foram seguidas, mas não prova que o projeto econômico do aplicativo ou a decisão do usuário foi sensata.Um sexto equívoco é pensar que os usuários nunca precisam se preocupar com a VM usada por uma blockchain.A VM pode afetar o suporte das carteiras, as taxas de transação, a segurança dos contratos, os padrões de ativos, a atividade dos desenvolvedores e os requisitos de bridge.O futuro das máquinas virtuais personalizadas
As Custom VMs estão se tornando mais importantes à medida que o mercado cripto avança em direção a rollups, blockchains modulares, blockchains específicas para aplicações e execução de conhecimento zero.Alguns sistemas futuros poderão oferecer suporte a vários ambientes de execução em uma única rede.Um ambiente poderá executar contratos da EVM, enquanto outro lidará com programas nativos em Wasm, RISC-V ou específicos para aplicações.Interpretadores e camadas de compilação poderão facilitar a migração de aplicativos entre diferentes VMs.Avanços em provas de conhecimento zero poderão permitir a verificação eficiente de programas mais genéricos.Pesquisas sobre execução paralela poderão aumentar a capacidade de processamento de aplicativos cujo acesso ao estado possa ser previsto com segurança.Sistemas personalizados de contas poderão oferecer recuperação, limites de gastos, chaves de acesso, permissões de sessão e taxas patrocinadas diretamente na camada de execução.O desafio de longo prazo será equilibrar especialização e interoperabilidade.Uma VM altamente especializada pode executar uma tarefa muito bem, mas os usuários de cripto também precisam de carteiras, ativos, liquidez, padrões e ferramentas de segurança compartilhados.Os ecossistemas de Custom VM mais fortes provavelmente combinarão vantagens técnicas com ferramentas maduras, especificações claras, auditorias robustas e bridges confiáveis.Perguntas frequentes
O que é uma máquina virtual personalizada em cripto?
Uma máquina virtual personalizada é um ambiente de execução de blockchain projetado com regras próprias para executar programas, processar transações, gerenciar o estado e cobrar recursos computacionais.O que significa Custom VM?
Custom VM significa uma máquina virtual criada ou modificada para as necessidades específicas de uma blockchain, rollup, blockchain de aplicação ou sistema de provas.Uma Custom VM é igual à EVM?
Não. A EVM é um ambiente de execução específico, enquanto uma Custom VM pode usar instruções, modelos de estado, linguagens, taxas e regras de segurança diferentes.Por que uma blockchain usaria uma Custom VM?
Uma blockchain pode usar uma Custom VM para melhorar o desempenho, oferecer suporte à execução paralela, adicionar recursos nativos para aplicativos, reforçar a privacidade ou reduzir os custos de provas de conhecimento zero.Uma Custom VM pode oferecer suporte a Solidity?
Sim. Uma Custom VM pode oferecer suporte a Solidity por meio de um compilador personalizado, um interpretador da EVM ou uma camada de compatibilidade, embora o comportamento talvez não corresponda perfeitamente ao da Ethereum.Um runtime de blockchain é igual a uma VM?
Nem sempre. Um runtime define, de forma abrangente, a lógica de transição de estado, enquanto uma VM normalmente executa bytecode de acordo com um conjunto de instruções definido.O que é uma zkVM?
Uma zkVM é uma máquina virtual que executa programas e produz provas criptográficas de que a execução seguiu as regras definidas.As Custom VMs são mais rápidas que a EVM?
Algumas Custom VMs podem ser mais rápidas para determinadas cargas de trabalho, mas o desempenho real também depende do consenso, do armazenamento, da rede, do hardware e do projeto do aplicativo.As Custom VMs são seguras?
Uma Custom VM pode ser segura quando é determinística, isolada em sandbox, auditada, tem recursos devidamente medidos e conta com uma cadeia de ferramentas madura, mas VMs mais novas podem ter menos testes em produção.Quais linguagens de programação as Custom VMs podem usar?
As Custom VMs podem oferecer suporte a Solidity, Rust, C, C++, Move, linguagens compatíveis com Wasm ou linguagens de smart contracts desenvolvidas especificamente para elas.Uma Custom VM pode executar transações em paralelo?
Sim. Uma Custom VM pode oferecer suporte à execução paralela quando consegue identificar transações que acessam contas, objetos ou áreas de armazenamento independentes.As Custom VMs precisam de gas?
Elas precisam de alguma forma de controle de recursos, mas podem usar gas, unidades de computação, pesos, ciclos ou outro modelo de medição.Uma Custom VM pode ser atualizada?
Sim. Muitas Custom VMs podem ser atualizadas por meio de hard forks, governança, substituição do runtime ou contratos atualizáveis de rollup.Qual é a principal desvantagem de uma Custom VM?
A principal desvantagem é que os desenvolvedores precisam criar e proteger um novo ecossistema de execução, com compiladores, carteiras, ferramentas, padrões e documentação próprios.Uma Custom VM afeta os usuários de cripto?
Sim. Ela pode afetar as taxas de transação, o suporte das carteiras, a finalidade, a segurança dos contratos, a disponibilidade dos aplicativos, os padrões de ativos e os requisitos de bridge.Conclusão
Uma máquina virtual personalizada é um ambiente especializado de execução de blockchain que define como transações, contratos e alterações de estado são processados.Ela dá aos desenvolvedores de blockchain mais controle sobre desempenho, linguagens de programação, modelos de estado, custos de recursos, privacidade, execução paralela e geração de provas criptográficas.As Custom VMs são especialmente importantes para rollups, blockchains modulares, blockchains específicas para aplicações, redes de alto desempenho e sistemas de conhecimento zero.Sua flexibilidade pode oferecer recursos difíceis ou ineficientes de implementar em um ambiente de uso geral.No entanto, a execução personalizada também cria novas responsabilidades.As equipes precisam desenvolver compiladores seguros, regras determinísticas, medição de recursos, sandboxing, ferramentas para desenvolvedores, suporte para carteiras, processos de auditoria e sistemas de atualização seguros.Uma Custom VM não deve ser avaliada apenas pela velocidade de transação anunciada.Desenvolvedores e usuários também devem avaliar seu histórico de segurança, modelo de estado, compatibilidade, descentralização, governança, sistema de provas, disponibilidade de dados e infraestrutura de suporte.As melhores Custom VMs combinam melhorias técnicas relevantes com documentação clara e práticas de segurança maduras.À medida que a arquitetura cripto se torna mais modular e específica para aplicações, as Custom VMs continuarão sendo uma parte importante da forma como as blockchains competem, escalam e oferecem suporte a novos tipos de aplicativos descentralizados.Você também pode gostar
HOT
Criptomoedas que estão em alta atualmente e ganhando atenção significativa do mercado
TOP volume
As criptomoedas com o maior volume de negociação
Recém-adicionados
Criptomoedas listadas recentemente que estão disponíveis para negociação

