#air #crypto #miden #arithmetization

no-std miden-air

Algebraic intermediate representation of Miden VM processor

2 unstable releases

Uses new Rust 2021

0.2.0 Aug 8, 2022
0.1.0 Nov 16, 2021

#4 in #miden

Download history 12/week @ 2022-06-03 2/week @ 2022-06-10 7/week @ 2022-06-17 6/week @ 2022-06-24 5/week @ 2022-07-01 5/week @ 2022-07-08 7/week @ 2022-07-15 7/week @ 2022-07-22 10/week @ 2022-07-29 37/week @ 2022-08-05 13/week @ 2022-08-12 11/week @ 2022-08-19 9/week @ 2022-08-26 15/week @ 2022-09-02 14/week @ 2022-09-09 11/week @ 2022-09-16

52 downloads per month
Used in 3 crates

MIT license

265KB
4K SLoC

Miden VM AIR

This crate contains algebraic intermediate representation (AIR) of Miden VM execution logic.

AIR is a STARK-specific format of describing a computation. It consists of defining a set of constraints expressed as low-degree polynomials. Miden prover evaluates these polynomials over an execution trace produced by Miden processor and includes the results in the execution proof. To verify the proof, the verifier checks that the constraints are evaluated correctly against the execution trace committed to by the prover.

Internally, Miden VM AIR is separated into several components:

  • AIR for the decoder, which is responsible for decoding instructions and managing control flow.
  • AIR for the stack, which is responsible for executing instructions against the operand stack.
  • AIR for the range checker, which is responsible for checking if field elements contain values smaller than $2^{16}$.
  • AIR for the chiplets module, which contains specialized circuits responsible for handling complex computations (e.g., hashing) as well as random access memory.

These different components are tied together using multiset checks similar to the ones used in PLONK.

All AIR constraints for Miden VM are described in detail in the design section of Miden VM documentation.

If you'd like to learn more about AIR, the following blog posts from StarkWare are an excellent resource:

License

This project is MIT licensed.

Dependencies

~3.5MB
~58K SLoC