Sean Bowe
a4f7c4eef3
Include jubjub and bls12_381 crates in the workspace.
2019-12-12 11:40:48 -07:00
Nikolay Volf
9ea0427678
MMR trees API ( #118 )
...
The main design goals of this mmr implementation were
1. Avoid database callbacks. As it is implemented, calling side must just smartly pre-load MMR nodes from the database (about log2(tree length) for append, twice as much for deletion).
2. Reuse as much code/logic between rust and c++ clients.
3. Close to zero memory consumption.
2019-12-04 21:24:26 +00:00
str4d
67d700feab
Merge pull request #107 from str4d/transaction-builder-transparent-inputs
...
Add P2PKH transparent input support to transaction::Builder
2019-11-13 22:15:55 +00:00
Jack Grigg
d1bc61800c
Move Sprout proof logic into zcash_proofs
2019-11-06 08:58:42 +00:00
Jack Grigg
bc35a62e10
Remove rand_os dependency
2019-10-31 18:57:52 +00:00
Jack Grigg
3425eabda2
transaction::Builder::add_transparent_input()
2019-10-15 17:42:46 +13:00
Jack Grigg
1e2bc7f65c
Test nullifiers in constant time
...
Checking for spent notes in a block is still not completely constant
time, due to filtering out negative results of the constant-time
comparison.
Part of #84 .
2019-10-09 14:12:27 +13:00
Jack Grigg
591b1fc28f
Parse compact blocks to find wallet transactions
2019-10-09 14:11:12 +13:00
Jack Grigg
af7e263bcc
Build protobufs for compact formats
2019-10-09 14:09:41 +13:00
Jack Grigg
98731c8374
librustzcash 0.2.0
2019-10-08 17:43:33 +13:00
Jack Grigg
b0ba7fe4d2
zcash_client_backend 0.1.0
2019-10-08 17:43:33 +13:00
Jack Grigg
d6bc2fe0af
zcash_proofs 0.1.0
2019-10-08 17:43:33 +13:00
Jack Grigg
8b08528bb0
zcash_primitives 0.1.0
2019-10-08 17:43:33 +13:00
Jack Grigg
25558893ab
bellman 0.2.0
2019-10-08 17:43:33 +13:00
Jack Grigg
68cada53cf
pairing 0.15.0
2019-10-08 17:43:33 +13:00
Jack Grigg
aa37783c37
group 0.2.0
2019-10-08 17:43:33 +13:00
Jack Grigg
216f0f62a0
ff 0.5.0
2019-10-08 17:43:33 +13:00
NikVolf
b42477a0bf
update from rand_os to fix warnings
2019-09-28 10:48:43 +03:00
Jack Grigg
b397a9c405
cargo update
2019-09-12 19:38:51 +01:00
Jack Grigg
0a3b0a9341
Upgrade to hex-literal 0.2
2019-09-12 19:38:51 +01:00
Jack Grigg
89dad572ef
Migrate bellman to crossbeam 0.7
2019-09-12 19:38:50 +01:00
Jack Grigg
bef3e7e336
Migrate ff_derive to proc-macro2 1.0
2019-09-06 19:03:12 -04:00
Jack Grigg
7c1d4d9a5b
Log distinct error cases in Equihash verification
2019-08-24 00:40:30 +01:00
Jack Grigg
1b865ecfdf
Remove sapling-crypto
2019-08-14 10:48:06 +01:00
Jack Grigg
5fb9b86ba0
Move Jubjub, Pedersen hash and primitives into zcash_primitives
2019-08-14 10:47:22 +01:00
Jack Grigg
b8af749b40
Move generic circuit gadgets into bellman
2019-08-14 10:45:58 +01:00
Jack Grigg
2ae5804a67
Move Sprout and Sapling circuits into zcash_proofs
2019-08-14 10:45:55 +01:00
Jack Grigg
7ea6d10480
Move redjubjub into zcash_primitives
2019-08-14 10:43:25 +01:00
Jack Grigg
3e35dd215c
cargo update
2019-08-14 01:14:02 +01:00
Jack Grigg
3211536324
Upgrade to crypto_api_chachapoly >= 0.2.1
2019-08-14 01:12:26 +01:00
Jack Grigg
ec321382e1
Upgrade to bech32 0.7
2019-08-14 01:12:25 +01:00
Jack Grigg
a12b8053b0
Upgrade to digest 0.8
2019-08-14 01:12:24 +01:00
Jack Grigg
2f1cae62b1
Upgrade to fpe 0.2
2019-08-14 01:12:23 +01:00
Jack Grigg
1862354ea6
Sapling transaction builder
2019-07-27 00:27:50 +01:00
Jack Grigg
01618038bf
TxProver trait to abstract over the circuit parameters
...
An implementation using local parameters is provided in the zcash_proofs
crate.
2019-07-26 23:56:00 +01:00
Jack Grigg
6f9083b5ab
Migrate to rand 0.7
2019-07-19 00:47:40 +02:00
Jack Grigg
b0913afdd7
Migrate remaining crates to rand_core 0.4
2019-07-19 00:46:37 +02:00
Jack Grigg
8f7adec0d9
Migrate zcash_primitives to rand_core 0.4
2019-07-19 00:46:37 +02:00
Jack Grigg
60d344a0a7
Migrate sapling-crypto to rand_core 0.4
2019-07-19 00:46:34 +02:00
Jack Grigg
83e1af104e
Migrate ff, group, pairing, and bellman to rand 0.6
2019-07-19 00:42:39 +02:00
Jack Grigg
5728bda2c1
Replace rust-crypto with sha2 in sapling-crypto dev-dependencies
...
This removes rand < 0.5 from our Cargo.lock.
2019-07-19 00:35:06 +02:00
Jack Grigg
ccf75c39c1
Migrate remaining crates to rand 0.5
2019-07-19 00:35:06 +02:00
Jack Grigg
6149166ccb
Migrate zcash_primitives to rand 0.5
2019-07-19 00:35:06 +02:00
Jack Grigg
adfc88926b
Migrate sapling-crypto to rand 0.5
2019-07-19 00:35:06 +02:00
Jack Grigg
4606a0cefb
Migrate bellman to rand 0.5
2019-07-19 00:35:06 +02:00
Jack Grigg
a7e22b3550
Migrate pairing to rand 0.5
2019-07-19 00:35:06 +02:00
Jack Grigg
ce6e2a5825
Migrate group to rand 0.5
2019-07-19 00:35:06 +02:00
Jack Grigg
7a6642b221
Migrate ff to rand_core 0.3 (used by rand 0.5)
2019-07-19 00:35:06 +02:00
str4d
8361674efc
Merge branch 'master' into blake2_simd
2019-07-18 18:22:20 +02:00
Jack Grigg
bf74915053
Move CommitmentTreeWitness into zcash_primitives
2019-07-10 13:52:47 -04:00
Jack Grigg
999dcbfcab
Migrate to blake2b_simd and blake2s_simd crates
...
The primary reason for migrating is that these crates provide APIs for
setting the personalisation string. This enables us to depend solely on
published crates, and thus publish our own crates.
The SIMD implementations are ported from libsodium.
Closes #67 .
2019-07-10 13:12:14 -04:00
Jack Grigg
17f60a0354
Implement PaymentAddress encoding and decoding
2019-06-27 16:21:00 +01:00
Jack Grigg
81b2b1b554
Wallet spending key derivation path
2019-06-27 16:19:33 +01:00
Jack Grigg
f25a8a557e
Convert zip32 crate into a module of zcash_primitives
2019-06-27 16:14:24 +01:00
Jack Grigg
fae919ec1c
Rename zcash_wallet to zcash_client_backend, set to 2018 edition
2019-06-27 16:02:12 +01:00
Jack Grigg
6dcb4040af
Switch to crypto_api_chachapoly crate
...
This crate exposes both the ChaCha20Poly1305 IETF construction, and the
underlying ChaCha20 IETF primitive, removing the need for depending on
our own fork of the previous chacha20-poly1305-aead crate.
2019-04-11 06:33:41 -07:00
George Tankersley
65bbe7daed
Implement Sapling note encryption
2019-04-05 21:05:05 +01:00
Jack Grigg
4289843852
Compute TxId for Transaction
2019-03-07 23:42:00 +00:00
Jack Grigg
a1664c6bbc
impl Display for BlockHash and TxId
2019-03-07 23:41:46 +00:00
Jack Grigg
2d43e3be7c
Move parameter-loading into zcash_proofs
2019-02-26 13:44:28 -07:00
Jack Grigg
09a20aacfe
Make zcash_primitives::JUBJUB the canonical instantiation of JubjubBls12
2019-02-26 13:44:28 -07:00
Jack Grigg
6b43b2d0d6
Refactor Sapling spendAuthSig creation into zcash_primitives::sapling
2019-02-26 13:44:28 -07:00
Jack Grigg
482bef87f0
Add ff and group crates to Cargo workspace
2019-01-06 09:50:07 +00:00
Jack Grigg
07955092f3
Update librustzcash crate to use ff crate
2019-01-06 09:36:32 +00:00
Jack Grigg
00983c48cd
Update zcash_proofs crate to use ff crate
2019-01-06 09:32:50 +00:00
Jack Grigg
538de482f3
Update zcash_primitives crate to use ff crate
2019-01-06 09:31:20 +00:00
Jack Grigg
2e408957db
Update zip32 crate to use ff crate
2019-01-06 09:22:10 +00:00
Jack Grigg
22ccd1bceb
Update sapling-crypto crate to use ff crate
2019-01-06 09:22:03 +00:00
Jack Grigg
76cd0d92bb
Merge commit '4272cfa5b0dceac471bef115955e1534be84a018' into ff-traits
...
git-subtree-dir: bellman
git-subtree-split: 4272cfa5b0
2019-01-06 09:21:44 +00:00
Jack Grigg
88746e76fa
Cargo.lock changes after pairing update
2019-01-06 09:20:00 +00:00
Jack Grigg
9f7e5fa3ce
Dependency updates after pairing update
2019-01-06 09:02:30 +00:00
Jack Grigg
e378229bdd
Move Sapling proving and binding signature into zcash_proofs crate
2018-12-01 00:10:51 +00:00
Jack Grigg
e1841806c5
Move Sapling verification checks into zcash_proofs crate
2018-11-30 23:53:10 +00:00
str4d
8be50c9531
Merge pull request #39 from str4d/zcash-transaction-primitives
...
Transaction primitives
2018-11-30 23:38:38 +00:00
Jack Grigg
9b06205ed6
Reject unexpected binding sig during transaction write
2018-11-30 00:54:30 +00:00
Jack Grigg
2d8b1fe504
ZIP 143
2018-11-09 08:34:38 +13:00
Jack Grigg
041671f642
Merge branch 'zcash-2.0.1'
2018-10-11 20:57:50 +01:00
Jack Grigg
e490b79907
Transaction serialization
2018-10-11 18:05:50 +01:00
Jack Grigg
91ff2c71cf
Helper for serializing CompactSize-prefixed vectors
2018-10-11 17:48:12 +01:00
Jack Grigg
77ee1d6a8f
ZIP 32 APIs
2018-08-30 00:05:49 +01:00
Jack Grigg
6e0364cd42
Update workspace after pulling in zip32 crate
2018-08-29 09:57:52 +01:00
Jack Grigg
a9059c9372
Update workspace after pulling in external crates
2018-08-28 23:06:15 +01:00
Jack Grigg
ad16ba6a35
Empty crates as a base for code refactoring
2018-08-28 22:24:14 +01:00
Sean Bowe
bd9b8aabb9
Update sapling-crypto
2018-07-30 18:52:03 -06:00
Sean Bowe
0800976a57
Add implementation of Sapling proof API
2018-07-17 16:46:10 -06:00
str4d
d19c9b5645
Implement Equihash validator
...
Follows Zcash implementation as closely as possible.
2018-05-24 16:30:56 +12:00
Sean Bowe
f8f8954608
Update sapling-crypto
2018-05-18 12:47:35 -06:00
Sean Bowe
d14b12aae4
Switch to little endian encoding for everything.
2018-05-17 16:06:31 -06:00
Sean Bowe
fefa46b4c4
Implementation of Sprout proving and verifying
2018-05-10 14:29:02 -06:00
Sean Bowe
d73044896e
Update sapling-crypto dependency.
2018-05-07 17:52:44 -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
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
str4d
222e0b3515
Add sapling-crypto to dependencies
2018-04-09 18:28:42 -06:00
Sean Bowe
d7085b90c8
Initial commit.
2017-03-17 11:07:23 -06:00