144 Commits

Author SHA1 Message Date
wborgeaud
cdce82e1f8 Small fix 2021-06-10 15:56:17 +02:00
wborgeaud
6cce4c1f78 Add low-high split 2021-06-10 15:55:29 +02:00
wborgeaud
bb551092a0 Remove mul_extension_naive 2021-06-09 21:12:15 +02:00
wborgeaud
f7e92af963 Comment out errors 2021-06-09 17:55:49 +02:00
wborgeaud
89761ef22a Added in-circuit reverse_bits and exp. 2021-06-09 17:39:45 +02:00
wborgeaud
9adf5bb43f Use ExtensionAlgebra + new CircuitBuilder::mul_extension 2021-06-09 10:51:50 +02:00
wborgeaud
7f63276623 Merge branch 'main' into recursive_verifier 2021-06-09 10:04:45 +02:00
Daniel Lubarov
db1ef913e0 Remove quartic_quartic 2021-06-08 10:08:17 -07:00
wborgeaud
19a38682ab Minor tweaks 2021-06-08 12:49:45 +02:00
wborgeaud
070dc7c9f1 s/ext_ext/ext_algebra 2021-06-08 11:30:39 +02:00
wborgeaud
e50d0aa63d Interpolation of two points 2021-06-07 21:24:41 +02:00
wborgeaud
8cf2758b6c Division gadget for extension field 2021-06-07 17:55:27 +02:00
wborgeaud
a8da9b945e Working MulExtensionGate 2021-06-07 17:09:53 +02:00
wborgeaud
6f2275bc6d Progress 2021-06-07 11:19:54 +02:00
wborgeaud
f5dfe95b2e Added recursive powers 2021-06-04 17:36:48 +02:00
wborgeaud
1169870163 Added test 2021-06-04 17:07:14 +02:00
wborgeaud
51c06d74ee Recursive PoW 2021-06-04 16:02:48 +02:00
Daniel Lubarov
cb7f8c8b8c
Draw challenge points from the extension field (#51)
* Draw challenge points from the extension field

* Now building

* Misc

* Default eval_unfiltered_base

* fmt

* A few field settings

* Add to Sage

* Display tweak

* eval_filtered_base

* Quartic in bench

* Missing methods

* Fix tests

* PR feedback
2021-05-30 13:25:53 -07:00
wborgeaud
c9309eb27b Minor 2021-05-24 17:40:26 +02:00
wborgeaud
4f6e9fb2e0 Recursive evaluation for interpolation gate. 2021-05-24 17:31:55 +02:00
Daniel Lubarov
d3ac365667 Recursive evaluation of GMiMCGate
If we did it all with `ArithmeticGate`s, the main loop (with ~101 iterations of cubing and a couple adds) would be fairly expensive, so this uses a (much smaller) custom gate called `GMiMCEvalGate` which does all the computations for one iteration of that loop.
2021-04-27 13:16:24 -07:00
Daniel Lubarov
af4c8734ce Address some clippy warnings 2021-04-23 12:35:19 -07:00
Daniel Lubarov
b7bc1bf313 Seed Challenger with a hash of the instance
I think this is the recommended way to apply Fiat-Shamir, to avoid any possible attacks like taking someone else's proof and using it to prove a slightly different statement.
2021-04-22 16:38:49 -07:00
wborgeaud
4b75f16efd Merge master 2021-04-22 22:27:55 +02:00
wborgeaud
4d31f5e37b Fixes from PR comments 2021-04-22 09:27:59 +02:00
wborgeaud
6b3aa02b01 Merge master 2021-04-21 22:36:06 +02:00
wborgeaud
6b407e45ef Progress on FRI 2021-04-21 22:31:45 +02:00
Daniel Lubarov
41e1b64623 Basic arithmetic methods 2021-04-21 11:48:17 -07:00
Daniel Lubarov
30b845e6b3 Add generator to circuit 2021-04-12 10:18:16 -07:00
wborgeaud
7ff4150679 Merge with merkle_proofs_2 2021-04-12 10:38:07 +02:00
wborgeaud
5abd49bf47 Merge 2021-04-12 10:34:40 +02:00
Daniel Lubarov
93b73fb89a Recursive Merkle proofs 2021-04-09 12:40:43 -07:00
Daniel Lubarov
04f74446fa Misc fixes to get tests green again 2021-04-09 11:40:51 -07:00
wborgeaud
aa50387d36 Started implementing FRI 2021-04-09 18:24:19 +02:00
Daniel Lubarov
959aaccae6 Merkle proofs 2021-04-08 09:38:57 -07:00
Daniel Lubarov
0cd7339940 Fixes based on PR feedback 2021-04-07 09:10:06 -07:00
Daniel Lubarov
9a8a7b6105 Non-circuit version 2021-04-06 19:22:12 -07:00
Daniel Lubarov
e8eb658f8e Candidate API for Merkle proof data
Does this make sense? I think other libraries tend to include the leaf's index (either as an integer, or a series of bits indicating left/right turns) as part of a "proof". In FRI, the leaf indices are chosen by the verifier, so I thought that approach might be sort of redundant. Let me know what you think though.
2021-04-06 19:17:38 -07:00
Daniel Lubarov
4086b2b447 Arithmetic & permutation gadgets 2021-04-02 15:29:21 -07:00
Daniel Lubarov
3c262a8c49 Fix some warnings 2021-03-30 20:16:20 -07:00
Daniel Lubarov
f42120482a No more polynomial programming abstraction
It was too expensive.
2021-03-28 19:52:01 -07:00
Daniel Lubarov
ba96ab4e99 More prover work 2021-03-26 23:51:48 -07:00
Daniel Lubarov
75b9340000 Tweak APIs 2021-03-21 11:29:47 -07:00
Daniel Lubarov
ca7f20bf45 FriConsistencyGate 2021-03-18 12:44:45 -07:00