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

Batch DLog PoK #48

Open
kayabaNerve opened this issue Jun 27, 2023 · 2 comments
Open

Batch DLog PoK #48

kayabaNerve opened this issue Jun 27, 2023 · 2 comments
Labels
academic This issue is academic in nature bp+ Bulletproofs+ library improvement This could be better

Comments

@kayabaNerve
Copy link
Owner

If we could implement a batch DLog PoK, it'd massively reduce circuit evaluation cost. While Eagen describes a batch eval, AFAICT, it wouldn't have any benefit since we don't have eval costs. We have in-circuit commitment costs to the bits and divisors. We'd have to merge those somehow.

We can't naively do "Prove knowledge of the discrete log of A + B over H" as A might have a non-H component if B has its negative. While, post-commitment, challenging them for "Prove knowledge of the discrete log of A + cB over H" would work, B is ZK and performing that scalarmul in circuit is quite expensive (though perhaps we can prove the security of a half-width scalarmul which would offer perf benefits?).

... We may able to phrase it as not A + cB yet A + Sum(B for _ in 0 .. c)? That may be what Eagen's commentary on batching was was? Yet that'd grow the divisor from points A + Gi for _ in 0 .. 255 (256 in total) to A + B for _ in 0 .. c + Gi for _ in 0 .. 255. We'd have to figure out a reduction for the middle part, which again, may be available in Eagen's research.

@kayabaNerve kayabaNerve added improvement This could be better bp+ Bulletproofs+ library academic This issue is academic in nature labels Jun 27, 2023
@kayabaNerve
Copy link
Owner Author

kayabaNerve commented Jun 27, 2023

This (+0.5x per additional) would let us reduce from a 1024-wide circuit to a 512-wide circuit, halving verification time, for the first 257m outputs.

@kayabaNerve
Copy link
Owner Author

kayabaNerve commented Jun 28, 2023

This would decrease the proof size by a couple hundred bytes thanks to the single vector commitment which would be used for challenges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
academic This issue is academic in nature bp+ Bulletproofs+ library improvement This could be better
Projects
None yet
Development

No branches or pull requests

1 participant