La Avalanche Virtual Machine es una máquina virtual derivada de la Ethereum Virtual Machine (EVM) que permite a la red de Avalanche disponer de todas las capacidades de sus smart contracts.
Cabe destacar que las VM son una parte fundamental dentro de los desarrollos que se llevan adelante en una blockchain. Es un modelo para una cadena de bloques, que se instancian desde una máquina virtual.
Las máquinas virtuales pueden definir lo que desee el equipo de desarrollo. Pero, dentro de una blockchain, generalmente definen las transacciones que se ejecutan y cómo se crean los bloques.
Aunque la AVM se basó inicialmente en el soporte que tiene la EVM, sus desarrolladores tienen el objetivo de mejorarla para que sus capacidades estén mejor adaptadas a la red Avalanche y sus subredes.
Aunque aún no fueron puestas en práctica, dentro de esas mejoras se incluyen:
- Smart contracts con ejecución off-chain y verificación on-chain.
- Smart contracts con ejecución paralela, lo que permite Solidity++ como nueva versión del lenguaje Solidity que utiliza la red.
La AVM cuenta con un soporte completo para trabajar en Solidity, lo que significa que cualquier smart contract que haya sido construido para operar en la red Ethereum puede funcionar en Avalanche con apenas algunos cambios en las direcciones on-chain.
De hecho, la Avalanche Virtual Machine está alojada dentro de una subred en la blockchain de Avalanche denominada Athereum. Su nombre hace clara referencia a las similitudes entre Avalanche y Ethereum.
Avalanche Virtual Machine y Web 3.0
La AVM permite que la red Avalanche pueda transformarse en un proyecto que implica capacidades propias de proyectos Web 3. Gracias a eso pueden incluirse aplicaciones descentralizadas (DApps) de todo tipo dentro del ecosistema Avalanche: Exchanges descentralizados (DEX), aplicaciones de Finanzas Descentralizadas (DeFi), juegos Play-to-Earn (Juega para Ganar) y más.
El mecanismo más utilizado para interactuar con este tipo de aplicaciones es a través de una wallet digital como MetaMask, con parámetros de red determinados, a saber:
- Nombre de Red: Avalanche Network
- RPC URL: https://api.avax.network/ext/bc/C/rpc
- ChainID: 43114
- Símbolo: AVAX
- Explorador: https://snowtrace.io/
Transacciones en AVM
Las transacciones en Avalanche Virtual Machine (AVM) utilizan el formato de serialización primitivo para el empaquetado y secp256k1 para la identificación criptográfica del usuario.
Algunos datos se anteponen con un ID de códec (unt16) que indica cómo se deben deserializar los datos. En este momento, el único ID de códec válido es 0 (0x00 0x00).
Las salidas transferibles contienen una salida con un ID de activo. El ID de activo es una matriz de 32 bytes que define a qué activo hace referencia esta salida.