Skip to content
This repository has been archived by the owner on Feb 17, 2025. It is now read-only.

Purpose of reserving first row in lookup argument? #237

Open
dkales opened this issue Nov 20, 2023 · 0 comments
Open

Purpose of reserving first row in lookup argument? #237

dkales opened this issue Nov 20, 2023 · 0 comments

Comments

@dkales
Copy link

dkales commented Nov 20, 2023

During our integration of the lookup constraints in our components, we came across two questions.

  1. Currently, the first row of all columns in the lookup tables is reserved for something. This leads to all tables being 1 larger than requried (i.e, our lookup table of size 2^16 is 2^16+1 long). What is the first column reserved for and is this required?

  2. The current padding rules for the trace are split into 2 functions: basic_padding and zk_padding.
    In the basic_padding, since no Random padding is needed for ZK, does a trace that is already a power of two need to be extended to the next power of two?
    i.e., Can the check in
    https://github.com/NilFoundation/crypto3-zk/blob/a4fc6763c9397d2bd6f0a7caa64afc7d19c9e60b/include/nil/crypto3/zk/snark/arithmetization/plonk/padding.hpp#L45C38-L45C38 be removed for the basic padding?

The two points mean that in a proof without zk, our lookup tables are a full power of two larger than the original table, which means tests take much longer.

Thanks for your answers.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant