Commit Graph
1712 Commits
Author SHA1 Message Date
wborgeaud 67cb5dfd58 PR feedback 2022-02-17 08:26:23 +01:00
wborgeaud 56336e396d Fix 2022-02-16 14:17:14 +01:00
wborgeaud ea9006f52e Add rate_bits 2022-02-16 13:51:10 +01:00
wborgeaud c9185d92bb Merge branch 'main' into fix_reduction_strategy
# Conflicts:
#	starky/src/prover.rs
2022-02-16 13:38:54 +01:00
wborgeaud b28cd55326 Fix reduction strategy 2022-02-16 13:37:01 +01:00
Daniel Lubarov 72d13d0ded Prover code for permutation argument (#485)
* Batch multiple perm args into one Z and compute Z columnwise

It's slightly complex because we batch `constraint_degree - 1` permutation arguments into a single `Z` polynomial. This is a slight generalization of the [technique](https://zcash.github.io/halo2/design/proving-system/lookup.html) described in the Halo2 book.

Without this batching, we would simply have `num_challenges` random challenges (betas and gammas). With this batching, however, we need to use different randomness for each permutation argument within the same batch. Hence we end up generating `batch_size * num_challenges` challenges for all permutation arguments.

* Feedback + updates for recursion code
2022-02-16 01:33:59 -08:00
wborgeaud c6f80ba59a Merge pull request #490 from mir-protocol/batchable
Simplify batched gate code
2022-02-16 09:36:47 +01:00
wborgeaud f8dfc3986b PR feedback 2022-02-16 09:26:16 +01:00
wborgeaud 08e255a2bb Remove params in GateInstance 2022-02-16 09:02:21 +01:00
wborgeaud 661a6b44ef Delete GMiMC files 2022-02-16 08:33:52 +01:00
Hamish Ivey-Law f4ef692aad Quintic extension fields (#489)
* Initial implementation of quintic extensions.

* Update to/from_biguint() methods.

* cargo fmt

* Fix call to test suite.

* Small optimisation in try_inverse().

* Replace multiplicative group generator and document requirement.
2022-02-16 10:38:24 +11:00
wborgeaud 3fd5258191 Comments 2022-02-15 18:00:53 +01:00
wborgeaud 2d4d2d21a0 Simplification 2022-02-15 17:35:12 +01:00
wborgeaud 3f7cefbc6b Merge pull request #486 from mir-protocol/recursive_starks
Recursive STARK verifier
2022-02-15 17:24:34 +01:00
wborgeaud d0da2fe1ad Remove debug info 2022-02-15 17:01:16 +01:00
wborgeaud c74b0c91c8 Progress towards using generators 2022-02-15 16:59:17 +01:00
wborgeaud 0aefe92b8c Merge MultiOpsGate into Gate 2022-02-15 15:30:34 +01:00
wborgeaud 5e3177520b Fixes 2022-02-15 15:08:53 +01:00
wborgeaud 6d2c9b11a6 Merge branch 'main' into batchable
# Conflicts:
#	plonky2/src/gates/gmimc.rs
#	plonky2/src/hash/gmimc.rs
#	plonky2/src/plonk/circuit_builder.rs
2022-02-15 14:43:12 +01:00
wborgeaud 42d6532120 PR feedback 2022-02-15 08:35:57 +01:00
wborgeaud acd62f1221 Changes after #481 2022-02-15 08:17:07 +01:00
wborgeaud 14d8cf2ceb Merge branch 'main' into recursive_starks 2022-02-15 08:13:50 +01:00
wborgeaud f4640bb5a1 Merge pull request #481 from mir-protocol/fix_hash_or_noop_merkle_proof
Use `hash_or_noop` for Merkle tree leaves
2022-02-15 08:12:36 +01:00
Daniel Lubarov 8d699edf21 Move some methods outside impl System (#484)
I didn't really have a good reason for putting there; seems more idiomatic to make them global since they don't need `self`/`Self`.
2022-02-14 13:47:33 -08:00
Nicholas Ward 96c9a2385b Merge pull request #488 from mir-protocol/ecdsa_pub_hash
Impled `Hash` for `AffinePoint`
2022-02-14 11:57:22 -08:00
BGluth 1467732616 Impled Hash for AffinePoint 2022-02-14 12:41:24 -07:00
wborgeaud b104dfce2a Working 2022-02-14 19:37:24 +01:00
Nicholas Ward 983c066b80 Merge pull request #487 from mir-protocol/ecdsa_more_derive
Derived more traits for ecdsa types
2022-02-14 10:36:21 -08:00
BGluth c9171517a4 Derived more traits for ecdsa types 2022-02-14 10:55:11 -07:00
wborgeaud 7820ba965c Minor 2022-02-14 10:23:26 +01:00
wborgeaud 1686cb021f verify_stark_proof -> recursively_verify_stark_proof 2022-02-14 10:20:59 +01:00
wborgeaud 6dca4e26af Unused 2022-02-14 10:16:02 +01:00
wborgeaud 83701096c4 More visibility changes 2022-02-14 10:14:31 +01:00
wborgeaud cff39c5550 Change visibility 2022-02-14 10:12:24 +01:00
wborgeaud 3db9c775b4 Add set_fri_openings 2022-02-14 10:09:08 +01:00
wborgeaud 80e3c928bb Clippy 2022-02-14 10:00:37 +01:00
wborgeaud b0de3328c1 Working 2022-02-14 09:53:33 +01:00
wborgeaud 2e008eac23 Change Merkle tree lead hashing (to change back when #481 lands) 2022-02-14 09:35:08 +01:00
Daniel Lubarov 55ca718a77 Test no longer ignored 2022-02-13 10:51:27 -08:00
wborgeaud 7af2d05828 Save allocation and add const generic bound 2022-02-13 15:04:40 +01:00
wborgeaud 736b65b0a7 PR feedback 2022-02-12 15:18:20 +01:00
wborgeaud 59d4e04bce Merge pull request #480 from mir-protocol/fix_mul_sub_typo
Fix `mul_add` -> `mul_sub` typo
2022-02-11 19:12:00 +01:00
wborgeaud f7256a6efc Other fixes 2022-02-11 16:41:44 +01:00
wborgeaud 1d013b95dd Fix hash_or_noop in Merkle proof. 2022-02-11 16:22:57 +01:00
wborgeaud d22fa8895b Fix one error to get another one 2022-02-11 10:37:17 +01:00
wborgeaud 7c71eb6690 Fix mul_add -> mul_sub typo 2022-02-11 10:25:51 +01:00
Daniel Lubarov 645d45f227 Column definitions for addition, range checks & lookups (#477)
* Column definitions for addition, range checks & lookups

I implemented addition (unsigned for now) as an example of how the arithmetic unit can interact with the 16-bit range check unit.

Range checks and lookups aren't implemented yet.

* Missing constraints

* Tweaks to get tests passing

* Reorg registers into files

* Minor
2022-02-10 12:05:04 -08:00
BGluth 387ce463fe Merge pull request #478 from mir-protocol/from_partial_use_slice
`from_partial` now takes in a slice
2022-02-10 07:48:55 -08:00
wborgeaud 24c201477c Recursive stark test (failing) 2022-02-10 16:14:18 +01:00
wborgeaud 3aa192a7f6 Add witness generation for stark proofs 2022-02-10 16:04:46 +01:00