Maru
  • Introduction
  • Volume use cases
  • Architecture overview
  • Maru Roadmap
  • ZK IMPLEMENTATION
    • Schema
      • Sum proof
      • Search proof
      • Data proof
      • Keccak proof
      • KeccakSponge proof
      • Logic proof
      • Arithmetic proof
    • Plonky2 verifier in Circom
  • user guide
    • Maru Demo FAQ
      • Why event proofs?
      • Why starky?
    • Deployed contracts
  • Maru ZKVM
    • Computer architecture
    • Memory model
    • Instruction set architecture
      • Instructions Execution
      • Instruction set
      • Instruction encoding
    • High-level frontend
    • Domain Specific Language
      • Unary map
      • Zip and binary map
      • Filter for all ETH-USDC swap prices on Uniswap
      • Calculate a 24-hour block-by-block moving average of the ETH-USDC pair on Uniswap
      • Compiler optimizations
Powered by GitBook
On this page
  1. Maru ZKVM
  2. Instruction set architecture

Instruction set

PreviousInstructions ExecutionNextInstruction encoding

Last updated 1 year ago

We have the following 20 instructions on our instruction set. There are 4 purely arithmetic ones, mov, 3 call variants, ret, 10 unconditional jump instructions, 1 conditional jump instruction. Instructions and effects are listed in a table below.

Instruction set can be augmented with peripherals - built in commonly used in domain subroutines acting as memory-mapped IO with peripheral devices. We implemented Keccak256 in a zk-friendly manner to facilitate interactions with Ethereum blockchain and used this implementation as one of peripherals. Other zk-friendly native implementations would follow soon.

Instruction set