Module 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§

AbsorbsIter
An iterator over the variants of Absorbs
SpongesIter
An iterator over the variants of Sponges
StepsIter
An iterator over the variants of Steps

Enums§

Absorbs
Order of absorb steps in the computation depending on the number of blocks to absorb
ColumnAlias
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.
Sponges
Variants of Keccak sponges
Steps
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§

N_ZKVM_KECCAK_COLS
Total number of columns used in Keccak, including relation and selectors
N_ZKVM_KECCAK_REL_COLS
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.
N_ZKVM_KECCAK_SEL_COLS
The number of columns required for the Keccak selectors. They are located after the relation columns.

Type Aliases§

KeccakWitness
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: