paritytech / paritytech/fflonk

Faster multiexps

Open
#12 0 comments 0 reactions 1 assignee View on GitHub

@swasilyev is already working on this.

Since Jan 28, 2022.

Dominant language
Rust
Stars
31
Forks
16
PR merge metrics
No merged PRs in 30d

Description

  1. Generating KZG setup is a very special example of fixed-base multiexp: the single fixed base is multiplied by a series of scalars. Currently ark_ec::msm::FixedBase is used. How optimal is that?
    • Yao's algorithm is designed to compute powers of a single base.
    • Bernstein claims, section 7, that single-base Pippenger is optimal
    • Gnark has a special routine exactly for this single-base multiexp
      Actually this case is of lesser importance because parameters used in practice are created in this form once. After they are updated that is another problem.
  2. URS updates (those performed by a single party, not SRS updates during the 2nd phase of the MPC) seem no different from the next case. Proving validity of an update efficiently might be more challenging.
  3. Currently ark_ec::msm::VariableBase is used for computing KZG commitments. In most cases prover works with the same URS, so can afford some precomputations. How advantageous can it be. Interesting multiexp implementations i'm aware of:

https://eprint.iacr.org/2012/549.pdf is another popular paper on the topic

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.