RGB FAQ
  • Welcome to RGB!
  • πŸ’‘What is RGB?
  • πŸ“šRGB Resources
  • βš™οΈRGB design principles
  • πŸŽ“RGB paradigms
    • Single-use seals
    • Cryptographic commitments
    • Client-side validation
    • Strict encoding
  • πŸ”–RGB Smart contracts
    • What is a smart contract?
    • What is contract schema?
    • How does one program RGB smart contracts?
    • Do you define the validity of a state transition with Schema?
  • ☣️RGB & β‚Ώitcoin
    • Will RGB require a fork of Bitcoin or Lightning?
    • RGB testnet & mainnet
    • Taproot, Schnorr signatures and RGB
    • Does anything need to happen in Lightning or Bitcoin to enable Lightning on RGB?
    • Is there a plan to work on channel factories?
  • 🎨RGB NFT
    • RGB NFT vs other NFT
    • What's the difference between RGB design of NFTs and common NFT approach?
  • ❓FAQ
    • What is RGB?
    • What does 'RGB' stand for?
    • Is RGB a new blockchain?
    • What can I do with RGB?
    • Is it possible to create a DAO with RGB?
    • RGB vs alternatives
    • Is RGB Turing-complete?
    • Does RGB require Taproot?
    • What RGB is compatible with?
    • Will Simplicity be used in RGB?
    • Why there is no RGB MVP with updates rolling out after?
    • How is confidentiality reached in RGB?
    • How is safety reached in RGB?
    • What is client-side validation?
    • How scalable is RGB?
    • Is there an RGB "Hello World" guide?
  • πŸ“–Glossary
    • Contracts
      • ContractId
      • NodeId
      • Node
      • State
      • State assignment
      • State transition
      • Assignment
      • Assignment variant
      • State data
      • State type
      • Metadata fields
      • Metadata
      • Data type
      • Genesis
    • AluVM
    • Bifrost
    • Client-side validation
    • Contractum
    • Deterministic Bitcoin commitments
      • Container construction/deconstruction
      • Container
      • Commitment
      • Commitment embedding
      • LockScript
      • Proof
      • Protocol-specific entropy
      • Supplement
    • Right
    • Schema & Scripts
      • Schema
      • Field type
      • Assignment type
      • Bit dimensions
      • ABI
      • Script library
      • Occurence boundaries
      • Script extensibility
      • Transition type
    • Single-use seals
      • Witness
      • Seal definition
      • Seal blinding
      • Multimessage commitments
      • Seal closing over message
    • Stash
      • Stash
      • Consignment
      • Disclosure
      • Anchor
      • Forget procedure
      • Merge procedure
      • Validate procedure
      • Conceal procedure
      • Consign procedure
    • Encodings
      • Merklization commitment encoding
      • Storage encoding
      • Strict encoding
      • Pedersen commitments
      • Blinding factors
      • Buletproofs
      • Conceal
      • Commitment encoding
  • πŸ™‹Community
    • Developer calls
    • Presentation slides
    • YouTube
    • Getting familiar with RGB
    • Articles & interviews on RGB
Powered by GitBook
On this page
  • Why do we need a virtual machine?
  • Key characteristics
  • History
  • Comparison of AluVM and other VMs & scripting solutions
  • For more information check:

Was this helpful?

  1. Glossary

AluVM

PreviousGenesisNextBifrost

Last updated 3 years ago

Was this helpful?

AluVM - (algorithmic logic unit VM) is a pure functional RISC virtual machine designed for deterministic portable computing tasks. It was designed & implemented by at and maintained by .

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

  • The need for AluVM recognized as a part of RGB project on March, the 24 & 31st, 2021 (see the from the )

  • Concept was presented on 19th of May 2021 ()

  • v0.1 release of Rust AluVM implementation on the 28th of May 2021 ()

  • v0.2 release with multiple enhancements on the 9 Jun 2021

    () – see presentation

    on or read

Comparison of AluVM and other VMs & scripting solutions

For more information check:

documentation

Rust reference implementation on GitHub

YouTube videos and

Presentation slides and

πŸ“–
Dr Maxim Orlovsky
Pandora Core AG
LNP/BP Standards Association
YouTube video
developers call
check the recoding
ISA & API docs
ISA & API docs
Youtube
slides
in Rust crates
repository
one
two
one
two