|
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 23 of file repeated_commitments_data.hpp.
| size_t bb::DuplicateRange::count = 0 |
Definition at line 26 of file repeated_commitments_data.hpp.
| size_t bb::DuplicateRange::duplicate_start = 0 |
Definition at line 25 of file repeated_commitments_data.hpp.
| size_t bb::DuplicateRange::original_start = 0 |
Definition at line 24 of file repeated_commitments_data.hpp.