|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
Identifies contiguous ranges of duplicate commitments in the AllEntities ordering so that Shplemini can merge their scalar multiplications before the final MSM. More...
#include <repeated_commitments_data.hpp>
Public Attributes | |
| size_t | original_start = 0 |
| size_t | duplicate_start = 0 |
| size_t | count = 0 |
Identifies contiguous ranges of duplicate commitments in the AllEntities ordering so that Shplemini can merge their scalar multiplications before the final MSM.
A "shifted" polynomial shares the same commitment as its unshifted original (it is the same multilinear polynomial, just evaluated at the next row of the execution trace). Without this optimization the verifier would perform two separate scalar muls against the same group element. Each DuplicateRange pairs the originals with their duplicates so Shplemini can add their scalars and erase the duplicate entries.
Up to two contiguous ranges are supported (sufficient for all current flavors).
Definition at line 36 of file repeated_commitments_data.hpp.
| size_t bb::DuplicateRange::count = 0 |
Definition at line 39 of file repeated_commitments_data.hpp.
| size_t bb::DuplicateRange::duplicate_start = 0 |
Definition at line 38 of file repeated_commitments_data.hpp.
| size_t bb::DuplicateRange::original_start = 0 |
Definition at line 37 of file repeated_commitments_data.hpp.