Máquina virtual
Uma máquina virtual, muitas vezes designada por VM, é software que funciona como um computador ou como um ambiente de execução de código. No contexto das criptomoedas, este tipo de ambiente executa contratos inteligentes segundo regras predefinidas.
O que é uma máquina virtual?
Existem dois tipos principais. Uma VM de sistema é um computador virtual com o seu próprio sistema operativo. Vários computadores virtuais deste tipo podem partilhar o mesmo computador físico.
Uma VM de processo não é um computador completo. É sobretudo um ambiente fixo em que o código de programação é executado. As regras desse ambiente determinam o que o código pode ou não fazer.
No contexto das criptomoedas, uma VM costuma ser deste segundo tipo. A Ethereum Virtual Machine, ou EVM, por exemplo, executa contratos inteligentes. Um contrato inteligente é código que executa automaticamente uma tarefa predefinida.
Um exemplo de máquina virtual
Alguém envia uma transação para um contrato inteligente para enviar tokens. A EVM executa então o código desse contrato.
A VM verifica as condições definidas no código. Se tudo estiver correto, o contrato pode alterar os saldos armazenados. A transação utiliza gas para estes cálculos.
Porque são importantes as máquinas virtuais no contexto das criptomoedas?
Uma VM de blockchain garante que diferentes nós, ou seja, computadores da rede, executam o mesmo código da mesma forma. Assim, a mesma entrada deverá produzir sempre o mesmo resultado.
Por isso, em notícias sobre Ethereum, contratos inteligentes ou outras blockchains programáveis, poderá encontrar termos como VM ou EVM. Isto significa que a rede pode executar código e, por conseguinte, fazer mais do que apenas enviar criptomoedas.
Uma VM e o consenso têm funções diferentes. A VM determina o que uma transação faz do ponto de vista técnico. O consenso garante que a rede chega a acordo sobre as transações e os resultados que aceita. Além disso, os cálculos e o armazenamento nas VMs de blockchain são limitados e podem gerar custos.