Module o1vm::keccak::column

source ·
Expand description

This module defines the custom columns used in the Keccak witness, which are aliases for the actual Keccak witness columns also defined here.

Structs

Enums

  • Order of absorb steps in the computation depending on the number of blocks to absorb
  • Column aliases used by the Keccak circuit. The number of aliases is not necessarily equal to the actual number of columns. Each alias will be mapped to a column index depending on the step kind (Sponge or Round) that is currently being executed.
  • Variants of Keccak sponges
  • Variants of Keccak steps available for the interpreter. These selectors determine the specific behaviour so that Keccak steps can be split into different instances for folding

Constants

  • Total number of columns used in Keccak, including relation and selectors
  • The maximum total number of witness columns used by the Keccak circuit. Note that in round steps, the columns used to store padding information are not needed.
  • The number of columns required for the Keccak selectors. They are located after the relation columns.

Type Definitions

  • The witness columns used by the Keccak circuit. The Keccak circuit is split into two main modes: Sponge and Round. The columns are shared between the Sponge and Round steps. The hash and step indices are shared between both modes. The row is split into the following entries: