Commit Graph

672 Commits

Author SHA1 Message Date
Sean Bowe
e9f8c88c95 Use little endian encoding for Pedersen hash digest output. 2018-05-07 18:06:53 -06:00
Sean Bowe
d73044896e Update sapling-crypto dependency. 2018-05-07 17:52:44 -06:00
ebfull
7beeb52730 Merge pull request #69 from ebfull/make-util-pub
Make util module public
2018-05-07 17:47:31 -06:00
Sean Bowe
36cd38e239 Make util module public. 2018-05-07 17:47:04 -06:00
Sean Bowe
5f233ef989 Initialize Jubjub parameters up front 2018-05-07 17:41:49 -06:00
ebfull
3b8246f3eb Merge pull request #68 from ebfull/redjubjub-final-work
Make PublicKey inner Point public so that we can use it during zk-SNARK verification
2018-05-07 14:21:49 -06:00
Sean Bowe
5687acfaf8 Make PublicKey inner Point public so that we can use it during zk-SNARK verification. 2018-05-01 15:23:34 -06:00
ebfull
347666705c Merge pull request #67 from str4d/redjubjub-serialisation
RedJubjub serialisation
2018-04-30 08:50:03 -06:00
Jack Grigg
b27dc2914b Remove redundant signature check
E::Fs guarantees its representation is in the field, implicitly enforcing
that S < order(G).
2018-04-30 13:55:41 +01:00
ebfull
6e08a5a22b Merge pull request #66 from str4d/fix-spend-nf-comment
Fix comment
2018-04-29 13:08:10 -06:00
Jack Grigg
e94dbf2523 Parameterize the generator in RedJubjub
Per the specification, the generator is different between BindingSig and
SpendAuthSig.
2018-04-26 22:42:54 +01:00
Jack Grigg
4eab1fc68a Implement RedJubjub serialization
Also alters the Signature struct to store Rbar and Sbar instead of R and S,
to more closely match the specification.
2018-04-26 22:42:20 +01:00
Jack Grigg
f54feda94f Fix comment
h/t omershlo from Zcash Community Chat for spotting it!
2018-04-26 12:30:08 +01:00
ebfull
e4175d81e9 Merge pull request #64 from str4d/redjubjub
RedJubjub
2018-04-19 12:44:39 -06:00
ebfull
6cc1813ae3 Merge pull request #4 from ebfull/zksnark-param-loading
Support loading zk-SNARK parameters
2018-04-19 10:53:12 -06:00
Jack Grigg
840c23bd23 Specify pre-conditions for signature validation 2018-04-19 16:17:40 +01:00
Jack Grigg
45e4ca38e4 Match additive notation with variable name 2018-04-18 23:59:22 +01:00
Sean Bowe
170397b5a5 Apply rustfmt 2018-04-17 14:22:35 -06:00
Sean Bowe
4f9953f18f Support loading zk-SNARK parameters 2018-04-17 14:16:14 -06:00
Jack Grigg
916dbce2df Implement RedJubjub
Co-authored-by: Sean Bowe <ewillbefull@gmail.com>
2018-04-17 00:40:11 +01:00
Jack Grigg
0f230a70b9 Implement uniform sampling of Jubjub scalars
Co-authored-by: Sean Bowe <ewillbefull@gmail.com>
2018-04-15 15:52:45 -06:00
str4d
2a86c912f6 Merge pull request #3 from ebfull/params-and-merkle-hash
Expose API for merkle hash
2018-04-14 19:29:15 -06:00
Sean Bowe
37f20fb90c Use lazy_static to initialize the Jubjub parameters, to avoid passing parameters around. 2018-04-12 18:38:25 -06:00
Sean Bowe
cb8c9ebbce Make panic abort to avoid FFI problems. 2018-04-12 15:35:20 -06:00
Sean Bowe
96654ee5bd Fix typos 2018-04-12 15:01:48 -06:00
Sean Bowe
f1d35708bc Expose API for init/free of parameters and, to test, a merkle tree hash invocation. 2018-04-11 21:51:30 -06:00
str4d
7dc69c6893 Merge pull request #2 from str4d/sapling-crypto
Add sapling-crypto to dependencies
2018-04-10 13:57:56 -06:00
Sean Bowe
5199fdfcb7 Use newer versions of libc and num_cpus 2018-04-10 13:57:33 -06:00
str4d
222e0b3515 Add sapling-crypto to dependencies 2018-04-09 18:28:42 -06:00
Sean Bowe
e554b473dd Update to bellman 0.1 2018-04-06 13:29:58 -06:00
ebfull
10c5010fd9 Merge pull request #22 from ebfull/final-changes
Final changes
2018-04-03 18:56:06 -06:00
Sean Bowe
96b2d3e41a Prevent trivial subversion attack against prover. 2018-04-02 22:21:42 -06:00
Sean Bowe
d14f2af8fa Make fields of Parameters/VerifyingKey/Proof public. 2018-04-02 18:15:39 -06:00
ebfull
45c73dbd8f Merge pull request #54 from ebfull/sprout-circuit-minimal
Sprout circuit implementation
2018-04-02 16:55:09 -06:00
Sean Bowe
6e57ef0c4a Bump version 2018-03-31 23:23:37 -06:00
Sean Bowe
6ec7272586 Serialize lengths as 32-bit integers, not 64-bit. 2018-03-31 23:23:08 -06:00
Sean Bowe
c4fd8856ae Make multicore module public for now, because Worker is part of the EvaluationDomain API. 2018-03-31 23:16:55 -06:00
bmerge
dbe897d365 Auto merge of #79 - ebfull:nomorenightly, r=ebfull
Remove feature(i128_type)

The `i128_type` feature was recently stabilized in Rust, so this is unnecessary now for nightly users. In fact, in a few days there should be a new Rust beta (`1.26`) containing stable support for `i128_type`, meaning that (for Zcash) we can switch to the beta compiler for all future Rust development, and even switch to the stable compiler in six weeks when that's released.
2018-03-30 23:55:32 +00:00
Sean Bowe
2d12b9a858 Apply newer rustfmt rules. 2018-03-29 11:18:15 -06:00
Sean Bowe
fcaddaa356 Update Clippy to support latest nightly, and fix some lints. 2018-03-29 10:13:00 -06:00
Sean Bowe
bcc8379a7f Version bump. 2018-03-29 09:23:20 -06:00
Sean Bowe
4cf5a534ec i128_type feature has been stabilized in Rust. 2018-03-29 09:18:26 -06:00
ebfull
1026e92194 Merge pull request #63 from ebfull/gh
First block of GH invocation using random beacon output
2018-03-28 16:05:20 -06:00
Sean Bowe
9f24b68b3a Update constraint system hashes. 2018-03-27 21:41:11 -06:00
Sean Bowe
3704b2422e Fix benchmark due to anchor change in witness. 2018-03-27 21:31:32 -06:00
Sean Bowe
9418001d0e First block of GH invocation using random beacon output. 2018-03-27 14:30:08 -06:00
ebfull
470c9572eb Merge pull request #60 from ebfull/optional-enforce
Allow the authentication path to be not enforced
2018-03-27 14:27:53 -06:00
ebfull
7ee29503ec Merge pull request #61 from str4d/bench-final
Update benchmark to use final Sapling circuit implementation
2018-03-27 13:13:23 -06:00
Jack Grigg
97bead9977 Update benchmark to use final Sapling circuit implementation 2018-03-27 16:03:02 +02:00
Sean Bowe
cfd378685f Add more test vectors to Sprout circuit implementation. 2018-03-26 21:47:40 -06:00