Modules

  • This module includes the AND gadget implementation and the witness creation code. Note that this module does not need any new gate type for the AND operation.
  • This module implements a complete EC addition gate.
  • Implementation of the EndomulScalar gate for the endomul scalar multiplication. This gate checks 8 rounds of the Algorithm 2 in the Halo paper per row.
  • This module implements short Weierstrass curve endomorphism optimised variable base scalar multiplication custom Plonk polynomials.
  • Foreign Field Addition module
  • Common parameters and functions for kimchi’s foreign field circuits.
  • Foreign field multiplication module
  • This module implements the double generic gate.
  • Keccak hash module
  • This module includes the definition of the NOT gadget and the witness code generation, for both the implementation running with Xor16 gates and the one with Generic gates. Note that this module does not include a Not gate type.
  • This module implements permutation constraint polynomials.
  • This module implements the Poseidon constraint polynomials.
  • Range check gate module
  • This implements the constraints of the Cairo gates
  • This module implements short Weierstrass curve variable base scalar multiplication custom Plonk polynomials.
  • This module includes the definition of the XOR gadget for 64, 32, and 16 bits, the definition of the constraints of the Xor16 circuit gate, and the code for witness generation for the XOR gadget.