16 releases (10 breaking)

0.11.0 Nov 5, 2024
0.9.2 Apr 25, 2024
0.8.0 Feb 27, 2024
0.7.0 Oct 11, 2023
0.1.0 Nov 16, 2021

#172 in Cryptography

Download history 1985/week @ 2024-08-03 1810/week @ 2024-08-10 1896/week @ 2024-08-17 1766/week @ 2024-08-24 950/week @ 2024-08-31 1266/week @ 2024-09-07 1646/week @ 2024-09-14 1222/week @ 2024-09-21 844/week @ 2024-09-28 1259/week @ 2024-10-05 961/week @ 2024-10-12 879/week @ 2024-10-19 206/week @ 2024-10-26 1671/week @ 2024-11-02 277/week @ 2024-11-09 823/week @ 2024-11-16

3,179 downloads per month
Used in 27 crates (6 directly)

MIT license

1MB
14K 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

~8–33MB
~499K SLoC