wborgeaud
0526a9e149
Working ReducingGate
2021-07-23 17:16:53 +02:00
wborgeaud
15a64017dc
We need only 126 wires now
2021-07-22 14:42:42 +02:00
Daniel Lubarov
b8ce1d1967
Public inputs ( #113 )
...
With this approach, we don't need `Target::PublicInput`; any routable `Target` can be marked as a public input via `register_public_input`. The circuit itself hashes these targets, and routes the hash output to the first four wires of a `PublicInputGate`, which is placed at an arbitrary location in the circuit.
All gates have direct access to the purported hash of public inputs. We could think of them as accessing `PI_hash_i(x)` (as in Plonk), but these are now (four) constant functions, so they effectively have direct access to the hash itself.
`PublicInputGate` checks that its first four wires match this purported public input hash. The other gates ignore the hash.
Resolves #64 .
2021-07-21 08:26:19 -07:00
Nicholas Ward
4dc6a603a1
Merge pull request #90 from mir-protocol/insertion_gate
...
Insertion gate
2021-07-19 07:59:55 -07:00
Daniel Lubarov
d11bcd1928
Optional zk ( #101 )
...
* Make ZK optional
* Remove rate from FriConfig
Seems redundant, and we've had some tests break due to the two fields not matching.
* zero_knowledge: false in bench
2021-07-18 23:24:33 -07:00
Daniel Lubarov
0a5d46bfa9
Have prove return Result ( #100 )
...
* Have `prove` return `Result`
To address that TODO.
* PR feedback
2021-07-18 23:14:48 -07:00
wborgeaud
461f24a57e
Merge branch 'main' into more_recursive_verifier
...
# Conflicts:
# src/polynomial/commitment.rs
# src/proof.rs
2021-07-19 07:08:06 +02:00
Nicholas Ward
d8af0a9334
Merge main
2021-07-15 15:06:38 -07:00
Nicholas Ward
6b214410f2
fixes
2021-07-15 13:57:50 -07:00
Daniel Lubarov
77ce69dc15
Proof serialization ( #93 )
...
Using `serde_cbor` for now. It's probably far from optimal, as we have many `Vec`s which I assume it will prefix with their lengths, but it's a nice and easy method for now.
2021-07-15 07:35:12 -07:00
wborgeaud
fe05da6720
Clipp
2021-07-15 10:39:57 +02:00
wborgeaud
7d41785ac6
Comments
2021-07-15 10:24:11 +02:00
wborgeaud
2e12ee8e82
Minor
2021-07-15 10:13:13 +02:00
wborgeaud
7dec6efc6c
Rewrite Markable to avoid Arcs
2021-07-15 09:52:42 +02:00
wborgeaud
7793b5a956
Identify problem in GMiMc
2021-07-14 20:54:30 +02:00
wborgeaud
c3d53392c4
Problem in permutation argument
2021-07-14 08:14:00 +02:00
wborgeaud
139430c549
Fixed GMiMC
2021-07-13 09:15:16 +02:00
wborgeaud
cbb0cbffb1
Finish test setup
2021-07-09 10:01:58 +02:00
wborgeaud
805ebb1b0d
Working verifier
2021-07-08 15:13:29 +02:00
wborgeaud
1915ef9b27
Minor improvements
2021-07-02 10:58:59 +02:00
wborgeaud
d456efbc3f
Minor addition to partial product test
2021-07-02 10:20:44 +02:00
wborgeaud
525db6c461
Merge branch 'main' into fix_z_check
...
# Conflicts:
# src/circuit_builder.rs
2021-07-02 10:15:23 +02:00
wborgeaud
20e6d6540f
Add comments
2021-07-01 17:28:30 +02:00
wborgeaud
59410447bf
Add lengths to CommonData
2021-07-01 15:41:01 +02:00
wborgeaud
c83382aaaa
Working partial products
2021-07-01 15:20:16 +02:00
Daniel Lubarov
03179e5674
Couple fixes related to blinding
...
- `self.gates` -> `self.gate_instances`
- Some tests were using a single binary FRI reduction, which doesn't provide enough succinctness for our blinding scheme to work. This caused `blinding_counts` to continue until it overflowed.
2021-06-30 12:54:45 -07:00
wborgeaud
f7c4a463fc
Progress
2021-06-30 18:54:28 +02:00
wborgeaud
a017e79f65
Merge branch 'main' into add_routed_wires
...
# Conflicts:
# src/gadgets/arithmetic.rs
2021-06-30 08:30:10 +02:00
wborgeaud
bae3777bcd
Use max filtered degree found with the tree method in CircuitBuilder::build
2021-06-29 14:00:34 +02:00
Daniel Lubarov
7734aed62c
Performance tweaks ( #77 )
2021-06-28 08:56:36 -07:00
wborgeaud
c2b2ef921a
PR feedback
2021-06-28 09:47:47 +02:00
wborgeaud
e195fe58ed
Merge branch 'main' into add_routed_wires
2021-06-25 13:53:30 +02:00
wborgeaud
810d1869a1
Minor improvements
2021-06-25 11:49:29 +02:00
wborgeaud
625377b4c0
Merge constant and sigma polynomials
2021-06-25 11:24:26 +02:00
wborgeaud
21e7e8fdad
Merge branch 'main' into permutation_argument
...
# Conflicts:
# src/circuit_builder.rs
2021-06-24 22:35:13 +02:00
wborgeaud
8aa9c7b816
Merge branch 'main' into gate_tree
...
# Conflicts:
# src/circuit_data.rs
# src/witness.rs
2021-06-24 20:58:17 +02:00
wborgeaud
c7753186b8
Clippy
2021-06-24 18:11:37 +02:00
wborgeaud
54315d1735
Remove GatePrefixes to avoid using a HashMap
2021-06-24 18:08:39 +02:00
wborgeaud
ef7561fc84
Merge branch 'main' into permutation_argument
...
# Conflicts:
# src/circuit_builder.rs
# src/circuit_data.rs
# src/polynomial/commitment.rs
# src/prover.rs
# src/witness.rs
2021-06-24 10:51:18 +02:00
wborgeaud
8796c73362
Change MulExtensionGate to ArithmeticExtensionGate and change gadgets to use the new wires in this gate.
2021-06-23 18:04:43 +02:00
wborgeaud
6c864ca522
Merge branch 'main' into fix_target_partition
...
# Conflicts:
# src/witness.rs
2021-06-23 14:17:02 +02:00
wborgeaud
bc90909fa3
Add check of copy constraints after witness generation
2021-06-23 14:16:05 +02:00
wborgeaud
3bc27c65ef
Rollback to previous semantics
2021-06-23 13:46:19 +02:00
wborgeaud
680d7a6389
Add eval_filtered methods
2021-06-22 17:10:36 +02:00
wborgeaud
79e99148ef
Minor
2021-06-17 16:31:24 +02:00
wborgeaud
ad5c18b499
Comments and Clippy
2021-06-17 16:23:15 +02:00
wborgeaud
a71909ba15
Implement compute_z and rewrite of compute_vanishing_polys
2021-06-17 15:49:21 +02:00
wborgeaud
1b99f8272f
Merge branch 'main' into permutation_argument
2021-06-17 14:00:44 +02:00
wborgeaud
bfd5f06384
Hardcode Plonk polynomials indices and blinding flags.
2021-06-17 11:54:31 +02:00
wborgeaud
a6acd14dfa
Minor rewrites and optimizations
2021-06-16 17:43:41 +02:00