Grokking the Cartesi Virtual Machine
O que fazer com a escalabilidade computacional, que os rollups específicos para aplicativos nos proporcionam? Como explicamos na parte 2 dessa série, que falou sobre Cartesi Rollups, a escalabilidade computacional nos permite trabalhar com flexibilidade de design, além de dimensionar abstrações. Queremos dizer com isso, que a Cartesi permite que os desenvolvedores usem ferramentas familiares e reaproveitem todo o conhecimento e trabalho existente, em código-fonte aberto, para construir dApps melhores.
Os benefícios também são demonstrados em outro componente-chave da tecnologia Cartesi: a máquina virtual da Cartesi, ou Cartesi Virtual Machine (CVM)
O que é uma máquina virtual?
Vamos começar explicando o que é uma máquina virtual. Uma máquina virtual é simplesmente um programa capaz de emular todo o trabalho realizado em um computador real. Podemos pensar nisso como uma versão digital de um computador, que inclui todos os componentes de um computador físico (CPU, memória…), mas existe inteiramente num mundo virtual.
As máquinas virtuais são extremamente úteis e existem muitos tipos delas, usadas para diversos fins. Elas podem ser uma parte essencial de linguagens de programação populares, como o Java. Elas também permitem que os desenvolvedores executem aplicativos na nuvem, criem ambientes isolados, como o Parallels, para executar aplicativos do Windows no Mac, ou facilitem testes de novos produtos de software — tudo isso dependendo do tipo de máquina virtual necessária.
Máquinas virtuais na web3
No contexto de web3 e dos aplicativos descentralizados (dApps), as máquinas virtuais desempenham um papel na implantação e execução de contratos inteligentes. A Máquina Virtual Ethereum (EVM) foi pioneira no conceito de ser executada sobre uma rede blockchain, para que os desenvolvedores pudessem programar e projetar transações.
O problema é que este tipo de máquina virtual está limitado às restrições de tempo e espaço dessa rede. Além disso, ela foi projetada especificamente para a execução desses contratos inteligentes. Mesmo quando encontramos maneiras de usar linguagens de programação tradicionais em máquinas virtuais de blockchain, elas continuam limitadas por esse paradigma.
Embora tecnicamente ainda seja uma máquina virtual, as máquinas virtuais baseadas em blockchain não se comportam como um computador físico normal. Elas também não conseguem executar o tipo de software ao qual os usuários estão acostumados.
Como vimos, ao analisar jogos ou dApps DeFi, a “CPU” de uma máquina virtual como a EVM executa 10 milhões de instruções a cada 12 segundos ou mais. No entanto, também vimos como rollups centrados em aplicativos, como Cartesi Rollups, transcendem essa limitação — permitindo que tenham mais de 3,6 bilhões de instruções. Voltemos à questão do que podemos fazer com isso.
Uma nova máquina virtual para a web3
Todos esse ganho em poder computacional nos permite construir um tipo aprimorado de máquina virtual, para trabalhar com rollups específicos para aplicativos. Isso poderia tirar os desenvolvedores do mundo limitado da Máquina Virtual Ethereum e de volta ao mundo ilimitado dos ambientes de desenvolvimento tradicionais, como o Linux.
É exatamente isso que a Cartesi Virtual Machine faz. A CVM foi projetada para funcionar com RISC-V, um padrão aberto para um modelo abstrato de computador, suportado por grandes corporações como NVIDIA, Intel, Google, QUALCOMM e Tencent.
O RISC-V é poderoso o suficiente para executar um sistema operacional como o Linux, bem como o software que ele comporta. O Linux, pode então ser um sistema operacional na blockchain, onde os desenvolvedores da web3 criam dApps que transcendem as limitações da EVM.
Verificabilidade
O melhor disso é que tudo o que acontece na CVM é reportado a blockchain via Cartesi Rollups. Como resultado, a CVM pode fornecer computação verificável, que desfruta de todos os benefícios de segurança, transparência e imutabilidade oferecidos pelas redes de blockchain.
Isso torna a CVM única em suas propriedades e permite que ela tenha um mecanismo de disputa muito eficaz. Se alguém executa um dApp na CVM, nenhuma das partes envolvidas precisa confiar na outra porque a CVM é:
- Autônoma: funciona de forma isolada de qualquer influência externa.
- Passível de reprodução: outros podem obter os mesmos resultados retornados pela máquina.
- Transparente: tudo o que é feito pode inspecionado por qualquer pessoa.
Colocando tudo isso junto, significa que as pessoas honestas que executam um programa dentro da Cartesi Machine obtêm sempre o mesmo resultado. Por outro lado, alegações desonestas sobre estes resultados podem ser contestadas na blockchain, de forma que o resultado honesto prevaleça. Isso é válido mesmo que a Máquina Cartesi seja muitas ordens de magnitude mais rápida que a blockchain.
Escalabilidade de abstração
Mas talvez a vantagem mais importante de trabalhar com a CVM seja a introdução da escalabilidade de abstração na web3. Este aspecto, negligenciado da escalabilidade da blockchain, é fundamental para a construção de dApps melhores.
Definimos a escalabilidade de abstração da seguinte forma: “A escalabilidade de abstração é a expansão na capacidade geral de um sistema, permitindo que os componentes de programação sejam usados como blocos de construção, em um novo ambiente de desenvolvimento. A escalabilidade da abstração aumenta o número de operações importantes que um desenvolvedor pode realizar sem precisar reconstruí-las.”
Isso significa que a CVM dá aos desenvolvedores da web3 a capacidade de construir dApps melhores. Eles podem fazer referência ao trabalho de outros desenvolvedores, que não estão necessariamente na web3, e reutilizar esse trabalho como blocos de construção para suas próprias criações. A escalabilidade da abstração evita que tenham que “reinventar a roda” para se ajustarem às limitações de outras máquinas virtuais da blockchain.
(Em outra postagem, nos aprofundamos neste conceito. Lá isso está como “escalabilidade de conteúdo”.)
Assim, a gama de abstrações que os desenvolvedores da web3 podem usar inclui desde bibliotecas Python, como numpy, até o tipo de ferramentas necessárias para construir jogos clássicos como SimCity. Estamos falando de linguagens de programação, compiladores, linkers, criadores de perfil, depuradores e tudo aquilo que você esperaria ter em um sistema operacional normal. Tudo isso pode ser executado de forma verificável na rede, graças à Cartesi e à CVM.
Você entendeu o que é a Cartes Machinei? Teste seus conhecimentos nesse quiz!
Saiba mais sobre a CVM na documentação. Você também pode ficar por dentro de tudo que acontece no ecossistema Cartesi entrando em nossa comunidade.
Sobre a Cartesi
Cartesi é um protocolo de rollups específico para aplicativos, com uma máquina virtual que executa distribuições Linux e cria um ambiente de design maior para desenvolvedores de DApps.
Cartesi Rollups oferecem uma solução de dimensionamento modular, podendo ser implantando como segunda camada, terceira camada ou rollups soberanos, mantendo as fortes garantias de segurança da camada de base.
Faça parte da Cartesi Brasil!
Telegram: https://t.me/cartesiBR
Twitter: https://twitter.com/CartesiBR
Canais oficiais:
Canal de Notícias no Telegram | Telegram | Discord (Comunidade de Desenvolvimento) | Reddit | Twitter | Github | StackOverflow | LinkedIn | Facebook | Instagram | Youtube | Cartesi Improvement Proposal (CIP) | Website Cartesi