Sean Bowe
|
7d8daa5d05
|
Refactor h_eval computation into separate, more functional code.
Co-authored-by: str4d <thestr4d@gmail.com>
|
2020-09-29 16:56:21 -06:00 |
|
Sean Bowe
|
e275d78c7d
|
Simplify permutations field of ConstraintSystem
Co-authored-by: therealyingtong <yingtong@electriccoin.co>
|
2020-09-29 08:51:00 -06:00 |
|
Sean Bowe
|
7a3caaad59
|
Fix comments
|
2020-09-29 08:28:00 -06:00 |
|
Sean Bowe
|
c97da352ee
|
Remove SRS and replace with ProvingKey/VerifyingKey abstractions
Co-authored-by: therealyingtong <yingtong@electriccoin.co>
|
2020-09-29 08:25:04 -06:00 |
|
Sean Bowe
|
4a37e05f49
|
cargo fmt
|
2020-09-25 10:21:54 -06:00 |
|
Sean Bowe
|
6d41693af5
|
Use Blind::default().
|
2020-09-25 10:21:15 -06:00 |
|
Sean Bowe
|
56b6d8bd03
|
Auxilary wires in PLONK are foux blinded just like fixed wires.
|
2020-09-25 10:21:15 -06:00 |
|
Sean Bowe
|
316a027784
|
Modify commitment opening argument so that G element can be foux blinded to align with wire blinding in PLONK.
|
2020-09-25 10:21:15 -06:00 |
|
Sean Bowe
|
3db368b40e
|
Move Guard and Accumulator implementations into verifier submodule.
|
2020-09-25 10:21:13 -06:00 |
|
Sean Bowe
|
2d1f69328f
|
Rename OpeningProof to just Proof.
|
2020-09-25 09:39:32 -06:00 |
|
Sean Bowe
|
a37c926a89
|
Address clippy lints
|
2020-09-20 13:09:03 -06:00 |
|
Sean Bowe
|
60aa2918c3
|
Remove get_g_scalars() from MSM.
|
2020-09-19 13:52:33 -06:00 |
|
Sean Bowe
|
6620817d81
|
Return errors from verifier instead of assuming points aren't at infinity in the proof.
|
2020-09-19 13:47:37 -06:00 |
|
Sean Bowe
|
73d494a72d
|
Various changes, including restoring permutation argument to advice wires only for now.
|
2020-09-19 13:31:56 -06:00 |
|
therealyingtong
|
e8839a7579
|
Refactor wire pattern matching when computing permutation product
|
2020-09-19 12:39:04 -06:00 |
|
therealyingtong
|
24fe3fae29
|
Remove aux_commitments computation from Prover; remove blinding factor when accumulator aux_evals
|
2020-09-19 12:39:04 -06:00 |
|
therealyingtong
|
c772801f8f
|
Pass aux_lagrange_polys to prover as a slice
|
2020-09-19 12:39:04 -06:00 |
|
therealyingtong
|
fd094fccd8
|
Add aux_commitments and aux_evals to test_proving() example
|
2020-09-19 12:39:04 -06:00 |
|
therealyingtong
|
9482202a98
|
Update PLONK test_proving() example
|
2020-09-19 12:39:04 -06:00 |
|
therealyingtong
|
0bdcbb6c67
|
Introduce Wire enum for use in permutations
|
2020-09-19 12:39:04 -06:00 |
|
therealyingtong
|
a257308ba2
|
Add aux wires to ConstraintSystem
|
2020-09-19 12:39:04 -06:00 |
|
therealyingtong
|
0caf1d2087
|
Provide aux_commitments to verifier and aux_lagrange_polys to prover
|
2020-09-19 12:39:04 -06:00 |
|
therealyingtong
|
76c49a4df3
|
Minor refactor
|
2020-09-19 23:44:00 +08:00 |
|
therealyingtong
|
33261ec1a0
|
Recover from OpeningProof::create() failure in PLONK prover
|
2020-09-19 23:19:30 +08:00 |
|
therealyingtong
|
69a612fb59
|
Increment blinding factor instead of choosing new random blinding factor
|
2020-09-19 23:04:17 +08:00 |
|
therealyingtong
|
a6f5d0ad5e
|
Remove fork from OpeningProof prover; add loop in PLONK prover to try different f_blind values
|
2020-09-19 16:57:32 +08:00 |
|
ying tong
|
208be28113
|
Merge pull request #20 from zcash/small-multiexp
Small multiexp
|
2020-09-17 13:00:51 +08:00 |
|
therealyingtong
|
ced73c2bf7
|
Minor fixes
|
2020-09-17 05:14:01 +08:00 |
|
Sean Bowe
|
52a85380bc
|
Rename f_eval to msm_eval.
|
2020-09-16 13:15:10 -06:00 |
|
therealyingtong
|
a63602df2a
|
Inline bit-shifting
|
2020-09-16 08:56:45 +08:00 |
|
Sean Bowe
|
68de5db8c6
|
Mitigate unnecessary scaling operations in commitment verifier.
|
2020-09-15 17:42:02 -06:00 |
|
Sean Bowe
|
a886663e05
|
Incorporate MSM/Guard into PLONK verifier API and arithmetic.
|
2020-09-15 17:32:39 -06:00 |
|
therealyingtong
|
d70c8cc0d7
|
Add benchmarks for shared double-and-add
|
2020-09-16 00:44:56 +08:00 |
|
therealyingtong
|
f2fc068db0
|
Implement small_multiexp() in arithmetic.rs
|
2020-09-15 19:15:35 +08:00 |
|
Sean Bowe
|
643077b150
|
Rename ConstraintSystem to Assignment, and MetaCircuit to ConstraintSystem.
|
2020-09-13 10:30:02 -06:00 |
|
Sean Bowe
|
5ec820f8fd
|
Fix warning in test.
|
2020-09-13 10:23:04 -06:00 |
|
Sean Bowe
|
fd350a28a0
|
Minor adjustments to tests and documentation
|
2020-09-13 10:18:31 -06:00 |
|
Sean Bowe
|
221e9029f7
|
Minor adjustments to MSM and Guard APIs.
|
2020-09-13 10:14:32 -06:00 |
|
therealyingtong
|
19ee27e51a
|
Fix bug in compute_g()
|
2020-09-13 23:10:37 +08:00 |
|
therealyingtong
|
1eb2a36086
|
Return MSM from PLONK verifier
|
2020-09-13 23:10:06 +08:00 |
|
therealyingtong
|
c264208a03
|
Rename params.msm() to params.empty_msm()
|
2020-09-13 23:07:05 +08:00 |
|
therealyingtong
|
417174898e
|
Update documentation
|
2020-09-13 12:32:33 +08:00 |
|
therealyingtong
|
229747e118
|
Add compute_g() method on Guard and test use_g()
|
2020-09-13 12:32:32 +08:00 |
|
therealyingtong
|
1a52d8f6b8
|
Add MSM to PLONK verifier signature
|
2020-09-13 12:32:32 +08:00 |
|
therealyingtong
|
ed8130b7bf
|
Introduce Accumulator struct and return it in use_g()
|
2020-09-13 12:32:32 +08:00 |
|
therealyingtong
|
0633086ac1
|
Make MSM and Guard derive Clone
|
2020-09-13 12:32:24 +08:00 |
|
therealyingtong
|
14d1f41e08
|
Address review comments
|
2020-09-13 03:03:36 +08:00 |
|
therealyingtong
|
5f1cd6ced2
|
Only return Guard from OpeningProof.verify()
|
2020-09-13 00:50:35 +08:00 |
|
therealyingtong
|
d41fcf842b
|
Modify MSM and Guard structs and methods
|
2020-09-11 18:57:22 +08:00 |
|
therealyingtong
|
7255e085a4
|
Add more fields and methods functions to MSM struct
|
2020-09-10 20:23:08 +08:00 |
|
therealyingtong
|
5724706a09
|
Add MSM and Guard structs in polycommit scheme
|
2020-09-10 18:51:41 +08:00 |
|
Sean Bowe
|
549232234f
|
Finish comment on Proof::verify.
|
2020-09-07 16:34:40 -06:00 |
|
Sean Bowe
|
4572e809d1
|
cargo fmt
|
2020-09-07 13:09:25 -06:00 |
|
Sean Bowe
|
116659c1ba
|
Refactor module tree.
|
2020-09-07 13:07:51 -06:00 |
|
ebfull
|
7250ac8252
|
Merge pull request #4 from zcash/permutation
Permutation
|
2020-09-07 12:24:31 -06:00 |
|
Sean Bowe
|
21f02a73c2
|
Don't mutate the witness during permutation argument. Also, adds parallelism and reduces state/multiplications.
|
2020-09-07 09:43:02 -06:00 |
|
Sean Bowe
|
b65e75921b
|
Remove stale comment
|
2020-09-06 14:21:28 -06:00 |
|
Sean Bowe
|
190242a4e9
|
Remove redundant permutation_queries vector.
|
2020-09-06 14:18:05 -06:00 |
|
Sean Bowe
|
eff149e734
|
Fix incorrect indexing into advice_cosets during proving.
|
2020-09-06 14:10:25 -06:00 |
|
Sean Bowe
|
e37d0c946b
|
Add parallelism in various locations in the prover.
|
2020-09-06 13:40:06 -06:00 |
|
Sean Bowe
|
3157fdd7d0
|
Batch inversions during domain setup.
|
2020-09-06 12:44:36 -06:00 |
|
Sean Bowe
|
ff8f9eb20e
|
Reduce number of inversions by batch inverting when possible.
|
2020-09-06 12:29:34 -06:00 |
|
Sean Bowe
|
624eb6a421
|
Remove unnecessary computation of permutation length in prover.
|
2020-09-06 11:33:09 -06:00 |
|
therealyingtong
|
503939db05
|
Minor cleanups
|
2020-09-06 06:34:29 +08:00 |
|
Sean Bowe
|
965362c1f5
|
Don't precompute deltaomega; inline its computation.
|
2020-09-05 14:44:13 -06:00 |
|
Sean Bowe
|
937861c0b8
|
Add implementation of daira's algorithm for copy constraint enforcement.
|
2020-09-05 12:56:45 -06:00 |
|
Sean Bowe
|
d7132404ba
|
Index into q_evals consistently between prover and verifier.
|
2020-09-05 12:08:56 -06:00 |
|
Sean Bowe
|
869aba389a
|
Cleanups
|
2020-09-05 11:40:25 -06:00 |
|
Sean Bowe
|
da9c24bcfa
|
Obtain permutation product polynomial correctly.
|
2020-09-05 10:52:40 -06:00 |
|
Sean Bowe
|
114653f366
|
Fix indexing for permutation argument.
|
2020-09-04 14:45:05 -06:00 |
|
Sean Bowe
|
a128d5d9b3
|
Undo unnecessarily complicated negation thing.
|
2020-09-04 14:25:16 -06:00 |
|
therealyingtong
|
c7c5cf4db6
|
Rename tmp variables
|
2020-09-04 20:31:37 +08:00 |
|
ying tong
|
10a4b4252c
|
Fix current_delta initialisation in verifier
|
2020-09-04 19:05:08 +08:00 |
|
Sean Bowe
|
06a4cfe13b
|
Use extended omega for coset in prover.
|
2020-09-04 04:49:59 -06:00 |
|
Sean Bowe
|
0651359cb8
|
[WIP] Finish prover
|
2020-09-03 17:21:44 -06:00 |
|
Sean Bowe
|
6b9ea1dbeb
|
Precompute deltaomega vector.
|
2020-09-03 14:31:57 -06:00 |
|
Sean Bowe
|
36d37002fe
|
Remove unneeded exponentiation of x_3
|
2020-09-03 14:28:22 -06:00 |
|
Sean Bowe
|
335b629724
|
Avoid redundant wire queries by searching for an existing query.
|
2020-09-03 14:26:00 -06:00 |
|
Sean Bowe
|
4a88d52457
|
Use the correct permutation values from the SRS.
|
2020-09-03 14:21:13 -06:00 |
|
Sean Bowe
|
d601533bd7
|
Commit to permutation product polynomial in the prover.
|
2020-09-03 10:58:48 -06:00 |
|
therealyingtong
|
441dcf0ecc
|
Compute permutation_evals in prover
|
2020-09-03 12:29:38 +08:00 |
|
therealyingtong
|
1bc90c4fec
|
Remove advice_shifted_evals from prover
|
2020-09-03 12:25:55 +08:00 |
|
Sean Bowe
|
160dabe9c5
|
Cleanups for verifier of permutation argument
|
2020-09-02 13:15:40 -06:00 |
|
therealyingtong
|
c44a020de7
|
Permutation checks in verifier
|
2020-09-03 00:45:03 +08:00 |
|
therealyingtong
|
bdd48f6037
|
Add advice_shifted_evals to Proof struct
|
2020-09-02 23:19:06 +08:00 |
|
therealyingtong
|
2472ec3291
|
WIP permutation checks in verifier
|
2020-09-02 23:19:06 +08:00 |
|
therealyingtong
|
0bf73c5d08
|
Minor fixes to srs.rs
|
2020-09-02 23:18:43 +08:00 |
|
Dimitris Apostolou
|
c0444f8c31
|
Fix typos
|
2020-09-01 20:45:20 +03:00 |
|
Sean Bowe
|
a2fca8a02d
|
Add comments to clarify implementation of permutation argument in SRS generator.
|
2020-08-31 10:18:55 -06:00 |
|
Sean Bowe
|
c427795bf5
|
Reverse endianness of delta constants
|
2020-08-31 10:10:05 -06:00 |
|
Sean Bowe
|
dc5df10832
|
Update structured reference string and API for permutation argument.
|
2020-08-31 10:01:09 -06:00 |
|
therealyingtong
|
85fd924b15
|
WIP implement copy() on Variables
|
2020-08-31 21:51:49 +08:00 |
|
therealyingtong
|
4f8570db95
|
Add DELTA generator of t-order multiplicative subgroup to Fp, Fq
|
2020-08-29 13:51:42 +08:00 |
|
Sean Bowe
|
b453b845b8
|
Clean up prover implementation
|
2020-08-27 14:03:43 -06:00 |
|
Sean Bowe
|
154568c387
|
Clean up verification implementation
|
2020-08-27 13:52:55 -06:00 |
|
Sean Bowe
|
35c4bd4dd9
|
Improve naming of offsets/indexes and mappings.
|
2020-08-27 13:27:24 -06:00 |
|
Sean Bowe
|
378c56b952
|
Sample of abstraction for writing PLONK circuits
|
2020-08-27 11:43:08 -06:00 |
|
Sean Bowe
|
9852913a32
|
Add some comments and documentation.
|
2020-08-27 10:46:54 -06:00 |
|
Sean Bowe
|
1b6c0e9a8b
|
Remove _x suffix from variable names
|
2020-08-27 10:25:36 -06:00 |
|
Sean Bowe
|
9099e9d9ba
|
Properly invert when computing expected opening.
|
2020-08-27 10:16:42 -06:00 |
|
Sean Bowe
|
ad106f1119
|
(WIP) broken implementation of generalized PLONK
|
2020-08-27 10:10:55 -06:00 |
|
Sean Bowe
|
6051814c4b
|
Split coset step up so that we can query wires at multiple spots.
|
2020-08-24 13:50:52 -06:00 |
|
Sean Bowe
|
24b7e6cc7c
|
Run SRS synthesis on an empty circuit in test.
|
2020-08-24 08:36:41 -06:00 |
|
Sean Bowe
|
36f9e87056
|
Implementation of gate/query API
|
2020-08-24 08:28:42 -06:00 |
|
Sean Bowe
|
c20f3fdf1a
|
Give fixed and advice wires separate types
|
2020-08-23 13:26:04 -06:00 |
|
Sean Bowe
|
7edffe0197
|
Allow commitments to generic advice wire polynomials
|
2020-08-22 16:10:27 -06:00 |
|
Sean Bowe
|
c16141be9a
|
Introduce Variable type
|
2020-08-22 15:15:39 -06:00 |
|
Sean Bowe
|
9dfc6ac379
|
Add first pieces of the API.
|
2020-08-22 15:09:47 -06:00 |
|
Sean Bowe
|
dd1ad9f114
|
Initial commit
|
2020-08-22 14:15:39 -06:00 |
|