Commit Graph
100 Commits
Author SHA1 Message Date
ebfull f65c37ea01 Merge pull request #30 from str4d/sapling-api-cleanup
Sapling proving and verifying API
2019-01-05 17:14:16 -07:00
ebfull c03871779a Merge pull request #54 from ebfull/travis
Add travis testing support.
2019-01-03 12:14:15 -07:00
Sean Bowe 4113df4780 Fix version string, cache cargo symbols. 2019-01-03 11:55:16 -07:00
Sean Bowe 813cf16ff2 Add travis testing support. 2019-01-03 11:51:08 -07:00
ebfull 06da3b9ac8 Merge pull request #45 from str4d/44-params-path-encoding
Use slices of native strings to pass parameter paths into Rust
2018-10-27 00:09:44 -06:00
ebfull 0b6bbfb444 Merge pull request #36 from zcash/ci_integration
CI integration for librustzcash
2018-10-10 17:26:04 -06:00
ebfull e1c6232dd7 Merge pull request #32 from str4d/cargo-workspace
Convert the repo into a Cargo workspace
2018-08-29 12:58:43 -06:00
ebfull f5d2afb4ea Merge pull request #28 from ebfull/hash-checks-of-params
Hash checks of parameter files during initialization
2018-08-02 12:12:02 -06:00
Sean Bowe 48c2d3c8da Get parameter hashes from the user, rather than supplying it ourselves. 2018-08-02 12:11:32 -06:00
Sean Bowe d4ee94c692 cargo fmt 2018-08-01 19:01:54 -06:00
Sean Bowe 98a006e0c4 Hash checks of parameter files during initialization. 2018-08-01 18:57:10 -06:00
ebfull f55a654901 Merge pull request #26 from ebfull/bump-sapling-crypto
Update sapling-crypto
2018-07-30 21:08:52 -06:00
Sean Bowe bd9b8aabb9 Update sapling-crypto 2018-07-30 18:52:03 -06:00
ebfull 21084bde20 Merge pull request #81 from ebfull/must_use
Add must_use to operations over Edwards points
2018-07-30 18:40:16 -06:00
Sean Bowe b4d41b689c Add must_use to operations over Edwards/Montgomery points. 2018-07-30 18:37:01 -06:00
ebfull b70d6e66fc Merge pull request #79 from ebfull/pedersen-hash-performance
Improve Pedersen hash performance
2018-07-30 18:29:14 -06:00
ebfull 99c03c5708 Merge pull request #80 from ebfull/cofactor-signature-checking
Cofactor signature checking
2018-07-30 11:50:26 -06:00
Sean Bowe 95b498af33 Implement specialized doubling formula for extended twisted edwards coordinates. 2018-07-30 07:30:40 -06:00
Sean Bowe 821810cd82 Change pedersen hash outside the circuit to use window table lookups. 2018-07-30 07:30:40 -06:00
Sean Bowe 9cb8accf09 Fix nits 2018-07-30 07:29:23 -06:00
Sean Bowe a57d2773ab Add demonstration implementation of batch verification. 2018-07-27 10:54:21 -06:00
Sean Bowe cae9715a8e Change signature verification equation to permit batch verification. 2018-07-27 10:37:26 -06:00
Sean Bowe 3e43cae526 Add test that torsion doesn't affect signature verification. 2018-07-27 10:28:08 -06:00
ebfull 32026ea0a1 Merge pull request #24 from ebfull/sapling_proof_api
Sapling proof API
2018-07-24 18:18:04 -06:00
Sean Bowe 22486b8269 Make librustzcash_sapling_binding_sig take context as a const pointer. 2018-07-18 15:33:19 -06:00
Sean Bowe 41ca6e8473 cargo fmt 2018-07-17 17:02:10 -06:00
Sean Bowe bcba4924ca Fix negation bug in librustzcash_sapling_check_output 2018-07-17 17:01:04 -06:00
Sean Bowe 0800976a57 Add implementation of Sapling proof API 2018-07-17 16:46:10 -06:00
ebfull c2862a4382 Merge pull request #78 from gtank/make-privatekey-public
redjubjub: make PrivateKey internal scalar public
2018-07-12 14:01:11 -06:00
Sean Bowe cc5b835102 Start using cargo-clippy for CI. 2018-07-04 22:33:59 +01:00
ebfull 661558e0c8 Merge pull request #5 from str4d/more-updates
More updates
2018-07-02 19:53:52 -06:00
Sean Bowe 44b601b0a9 Adjust versions 2018-07-02 08:34:26 -06:00
ebfull 729138a31e Merge pull request #1 from str4d/updates
Update dependencies and traits
2018-07-02 08:28:36 -06:00
Sean Bowe 3b05f8f201 Apply rustfmt. 2018-06-12 15:32:57 -06:00
Sean Bowe 065154cdd1 Implementation of Sapling key agreement. 2018-06-12 15:32:20 -06:00
ebfull 36d7acf3f3 Merge pull request #12 from ebfull/little-endian
Switch to little endian encoding for everything
2018-05-18 13:25:41 -06:00
Sean Bowe f8f8954608 Update sapling-crypto 2018-05-18 12:47:35 -06:00
ebfull 6abfcca25a Merge pull request #74 from ebfull/ivk-pub
Make ivk pub
2018-05-18 12:45:38 -06:00
Sean Bowe 89f47ef5c2 Make ivk pub 2018-05-18 12:42:26 -06:00
Sean Bowe d14b12aae4 Switch to little endian encoding for everything. 2018-05-17 16:06:31 -06:00
ebfull eb409fa3cf Merge pull request #72 from ebfull/little-endian
Switch to little endian
2018-05-17 14:03:43 -06:00
Sean Bowe 2ff318eecb Use little endian for everything in Sapling. 2018-05-17 13:01:31 -06:00
Sean Bowe f491e02b56 Correctly interpret BLAKE2s inputs and outputs as little endian. 2018-05-17 13:01:31 -06:00
Sean Bowe 87c62e2248 Update to the latest pairing crate version. 2018-05-17 13:01:29 -06:00
Sean Bowe da5f1d3e37 Update to latest rustfmt 2018-05-17 11:59:20 -06:00
Sean Bowe e4143a4bbc Apply rustfmt to benchmarks 2018-05-17 10:50:56 -06:00
Sean Bowe 97bdd1655f Update clippy 2018-05-17 10:44:28 -06:00
ebfull a64c850e6d Merge pull request #10 from ebfull/small-order-checks
Check epk/rk/cv are not small order
2018-05-14 16:26:40 -06:00
Sean Bowe 63730f3846 Check epk/rk/cv are not small order. 2018-05-14 16:23:34 -06:00
Sean Bowe fefa46b4c4 Implementation of Sprout proving and verifying 2018-05-10 14:29:02 -06:00
ebfull 5e220695e5 Merge pull request #7 from ebfull/sapling-verification
Sapling verification
2018-05-07 23:37:11 -06:00
Sean Bowe 313e45cc01 Implementation of Sapling transaction verification. 2018-05-07 19:22:07 -06:00
ebfull ef676eff50 Merge pull request #8 from ebfull/minor-changes
Minor changes
2018-05-07 18:50:54 -06:00
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
ebfull 6e08a5a22b Merge pull request #66 from str4d/fix-spend-nf-comment
Fix comment
2018-04-29 13:08:10 -06: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
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
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
Sean Bowe 5199fdfcb7 Use newer versions of libc and num_cpus 2018-04-10 13:57:33 -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
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
Sean Bowe cfd378685f Add more test vectors to Sprout circuit implementation. 2018-03-26 21:47:40 -06:00
Sean Bowe def5de3f16 Allow the authentication path to be not enforced for zero-value notes, for indistinguishability. 2018-03-26 13:30:14 -06:00
Sean Bowe 4de908b1e5 Fix bug in circuit uncovered by test vector. 2018-03-21 19:21:16 -06:00
Sean Bowe 162a3877e5 JoinSplit circuit implementation for Sprout. 2018-03-21 19:21:16 -06:00
Sean Bowe ac13cb05bc Implementation of SHA256. 2018-03-21 19:21:16 -06:00
Sean Bowe 75c5269d3b Implementation of SHA256 choice/majority for UInt32. 2018-03-21 19:21:16 -06:00
Sean Bowe 36a6b5fd90 Implementation of SHA256 majority operation for Boolean. 2018-03-21 19:21:16 -06:00
Sean Bowe abca61401e Implementation of SHA256 choice operation for Boolean. 2018-03-21 19:21:16 -06:00
Sean Bowe 4f0a553fbb Implement UInt32 encoding/decoding with big-endian representation. 2018-03-21 19:21:16 -06:00
Sean Bowe 51bb5f0f70 Implement UInt32::shr() for SHA256. 2018-03-21 19:21:16 -06:00
ebfull e6397507ca Merge pull request #57 from ebfull/final-circuit-changes
Final circuit changes (part 1)
2018-03-21 19:11:08 -06:00