jellyfish
jellyfish copied to clipboard
A Rust Implementation of the PLONK ZKP System and Extensions
Goal: have a unified and efficient implementation/API for computing the polynomial given n point-evaluation pairs. E.g., the following two places are inlining different code for the same functionality. https://github.com/EspressoSystems/jellyfish/blob/1a9db506f011b168ead863e1dfcb5fd094fa2550/primitives/src/reed_solomon_code/mod.rs#L89-L95 https://github.com/EspressoSystems/jellyfish/blob/kzg-multiproof-binyi/primitives/src/pcs/univariate_kzg/mod.rs#L621
reference: https://github.com/EspressoSystems/jellyfish/pull/406#discussion_r1395955323
Reference: https://github.com/EspressoSystems/jellyfish/pull/406#discussion_r1395931819
Currently, our `bls-over-bn254::aggregate()` is following IRTF's standard instead of the modified version by [BDN18](https://crypto.stanford.edu/~dabo/pubs/papers/BLSmultisig.html), thus either have the assumption that every signed messages are distinct (e.g. by prepending the pk)...
## Description Major changes include: - move current `bls_over_bn254` impl to `bls_over_bn254::min_sig` - add `bls_over_bn254::min_pk` module closes: #373 --- Before we can merge this PR, please make sure that all...
Currently `PolynomialCommitmentScheme::open` returns a pair `(proof, eval)`: https://github.com/EspressoSystems/jellyfish/blob/265eaaa059e0a501824e5aadf7ac5f32d9e4a6b8/primitives/src/pcs/mod.rs#L122-L126 The impl has a completely separate computation for `eval` (in the univariate case, at least): https://github.com/EspressoSystems/jellyfish/blob/265eaaa059e0a501824e5aadf7ac5f32d9e4a6b8/primitives/src/pcs/univariate_kzg/mod.rs#L167 If the caller wants only the...
Currently downstream users need to do [things like this](https://github.com/EspressoSystems/espresso-sequencer/blob/cbcca0763cafd6473016a4ff0cbfdc42465534d1/sequencer/src/block2.rs#L132-L134): ```rust // TODO expose `KzgProof` type alias from jellyfish type TxInclusionProof = SmallRangeProof; ```
See https://github.com/EspressoSystems/espresso-sequencer/pull/756#discussion_r1394558874 . We want to allow downstream users to align their payload data with polynomial boundaries and element boundaries so as to facilitate faster, smaller KZG proofs. This is...
```bash $ cargo bench --bench plonk-benches [11:15:56] Finished bench [optimized] target(s) in 0.13s Running benches/bench.rs (/Users/chengyu/espressosys/jellyfish/target/release/deps/plonk_benches-792a473dc5636b5b) thread 'main' panicked at /Users/chengyu/espressosys/jellyfish/plonk/src/proof_system/mod.rs:55:9: not implemented: Should load from files in practice. note:...
We are seeing some interesting results with these corrected benchmarks in #409 : `verify` function is not strictly increasing as you increase number of variables of the ML poly! Interestingly,...