-
Notifications
You must be signed in to change notification settings - Fork 366
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
perf: replace BW6-761 final exp by a class equivalence check #1155
Conversation
It is though difficult to include the computation of Adapting the algorithms in/out-circuit to match each other would affect performances and make the trick not worth it. |
Actually, now that this additional trick might not be worth it, it becomes more relevant to push the Miller function to the cyclotomic subgroup by performing the easy part of the final exp only before doing the class equivalence check. This saves an additional 1,390,037 scs making the total cut at 2,679,259 scs. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Description
Similarly to #1143 we adapt https://eprint.iacr.org/2024/640.pdf to the BW6-761 case with the following parameters:
First, we find the residue witness in a hint:
(no need for the modified Tonelli-Shanks for cube roots here as
Then, we check in-circuit that:
with two optimized addition chains, a Frobenius power and a hinted division in Fp6.
Type of change
How has this been tested?
TestPairingCheckTestSolve
test passes.How has this been benchmarked?
This PR saves 2,679,259 scs in the emulated PLONK verifier of BW6-761 in a BN254-PLONK.
Checklist:
golangci-lint
does not output errors locally