AluVM

AluVM - (algorithmic logic unit VM) is a pure functional RISC virtual machine designed for deterministic portable computing tasks. It was designed & implemented by Dr Maxim Orlovsky at Pandora Core AG and maintained by LNP/BP Standards Association.

Why do we need a virtual machine?

Without a virtual machine one would not be able to develop advanced forms of smart contracts which are critically important for use cases like creating algorithmical stablecoins on RGB, recreating liquidity pools, DeFi etc. While these use cases are absolutely possible from the client-side validation perspective, without a virtual machine one would be restricted by very simple embedded procedures of validating the client-side data and the only way of changing that would be to release a new protocol (which would be incompatible with the previous one). On another note, not being able to create complex smart contracts will bring dissatisfaction with RGB from the community (compared to the complexity that Ethereum-based solutions can offer) and thus having our own VM is critically important for RGB adoption.

Unlike many other virtual machines, AluVM is register-based and does not allow random memory access. This makes AluVM perfectly suited for such domains as smart contracts, remote code execution, distributed & edge computing because of AluVM determinism combined with unprecedented robustness and possibility of formal code analysis.

Key characteristics

  • Exceptionless

  • Portability

  • Sandboxing

  • Security

  • Extensibility

Instruction set architecture (ISA) supports extensions, which allows creation of runtime environments targeting different use cases.

AluVM is a pure functional register-based highly deterministic & exception-less instruction set architecture (ISA) and virtual machine (VM) without random memory access, capable of performing arithmetic operations, including operations on elliptic curves. The AluVM ISA can be extended by the environment running the virtual machine (host environment), providing ability to load data to the VM registers and support application-specific instructions (like SIMD).

The main purpose for ALuVM is to be used in distributed systems whether robustness, platform-independent determinism are more important than the speed of computation. The main area of AluVM applications (using appropriate ISA extensions) is blockchain environments, consensus-critical computations, edge computing, multiparty computing (including deterministic machine learning), client-side-validation, sandboxed Internet2 computing and genetic algorithms.

History

Comparison of AluVM and other VMs & scripting solutions

For more information check: