Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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 join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant