therealyingtong
421891f065
Benchmark proof creation and verification for RATE = 2, 8, 11.
2021-11-30 10:03:49 -05:00
Jack Grigg
99d03e0d25
Migrate to latest halo2 revision
2021-11-26 16:24:26 +00:00
Jack Grigg
8c018eff7e
Migrate to `zcash_note_encryption::BatchDomain`
2021-11-17 12:15:21 +00:00
Jack Grigg
608da3f686
Switch to halo2 0.1.0-beta.1
...
This is equivalent to the git revision we were previously patching.
2021-09-28 20:48:19 +01:00
Jack Grigg
a11f9052ae
Require pasta_curves 0.2.1 and bump halo2 revision
...
- pasta_curves 0.2.1 is the first version that was relicensed as
MIT OR Apache-2.0.
- The halo2 revision includes the new license text.
2021-09-22 21:41:01 +01:00
Jack Grigg
414eef3ce5
memuse 0.2
2021-09-14 20:40:15 +01:00
Jack Grigg
5a346fa145
pprof 0.5
2021-09-13 17:55:30 +01:00
Jack Grigg
9fcab699ef
fpe 0.5
2021-09-13 17:54:56 +01:00
Jack Grigg
8c82ceecbf
ff 0.11, group 0.11, pasta_curves 0.2 etc.
2021-09-06 20:39:43 +01:00
Jack Grigg
7fad21e7d6
Switch to `memuse` crate for measuring heap allocations
2021-09-05 01:33:27 +01:00
str4d
cb28e00ebd
Merge pull request #178 from zcash/batch-note-decryption
...
Speed up batched note decryption
2021-08-13 14:27:41 +01:00
Jack Grigg
8c15cc25be
Benchmark batch trial decryption
2021-08-12 01:36:38 +01:00
Jack Grigg
08b279b900
Expose and benchmark Sinsemilla primitive
2021-08-10 13:39:14 +01:00
Jack Grigg
f4a8c082a9
Use w-NAF in `ka_orchard`
...
Improves the base-line cost of trial decryption by over 40%.
2021-08-06 13:43:19 +01:00
Jack Grigg
cad3c8a1b8
Add benchmark for note decryption
2021-08-06 01:03:03 +01:00
Kris Nuttycombe
d8091dd575
Update incrementalmerkletree version.
2021-08-05 07:51:19 -06:00
Jack Grigg
a33d1bd90f
Add circuit benchmarks and (on Unix) flamegraphs
...
- Benchmarks: `cargo bench`
- Flamegraphs: `cargo bench -- --profile-time 100`
2021-07-28 15:09:31 +01:00
Jack Grigg
6185d8e295
Bump halo2 revision to include `Layouter::assign_table`
2021-07-27 20:54:48 +01:00
therealyingtong
b3ccd3f0dd
Use halo2 selector optimizations.
2021-07-27 03:14:34 +08:00
therealyingtong
29f185014f
merkle: Replace l_plus_1 fixed column with q_decompose selector.
...
Previously, l_plus_1 was a non-binary fixed column, used to
1. provide the value of l + 1; and
2. toggle the decomposition gate.
Now, the value is copied in from the global constants column, and
the toggle is handled by a binary q_decompose selector.
2021-07-25 21:10:13 +08:00
therealyingtong
8cf7a6872c
Minor refactors, text fixes, and docfixes.
...
Co-authored-by: Jack Grigg <jack@electriccoin.co>
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2021-07-23 00:15:54 +08:00
therealyingtong
d80333799d
Combine constants fixed columns using assign_advice_from_constant.
...
Co-authored-by: Jack Grigg <jack@electriccoin.co>
2021-07-21 20:35:43 +08:00
Jack Grigg
1dca72a1cc
Migrate to latest `halo2` test API
2021-07-19 12:58:05 +01:00
Jack Grigg
15f9d254d9
Migrate to latest `halo2` API
...
- `halo2::plonk::{create_proof, verify_proof}` now take instance columns
as slices of values.
- `halo2::plonk::Permutation` has been replaced by a global permutation,
to which columns can be added with `ConstraintSystem::enable_equality`.
- The introduction of blinding rows means that various tests now require
larger circuit parameters.
2021-07-19 12:53:38 +01:00
Jack Grigg
d47a7d2105
Migrate to latest halo2 Circuit APIs
...
- The `Circuit` trait now has a `FloorPlanner` associated type.
- `circuit_layout` has been replaced by `CircuitLayout`.
2021-07-15 11:22:25 +01:00
therealyingtong
5ae9890913
mul::overflow.rs: Overflow check in variable-base scalar mul
...
Simplify the canonicity check for variable-base scalar multiplication,
by range-checking the low 130 bits rather than the low 127 bits.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
Co-authored-by: ying tong <yingtong@z.cash>
2021-07-07 23:10:59 +08:00
Jack Grigg
3badd42d15
nonempty 0.7
...
We can now correctly measure the heap-allocated memory used by a bundle.
2021-06-28 20:57:49 +01:00
Kris Nuttycombe
cc708a6b4a
Update to released incrementalmerkletree version.
2021-06-28 09:43:18 -06:00
Kris Nuttycombe
e3abbf9a42
Add serde support for OrchardIncrementalTreeDigest
2021-06-23 15:57:33 -06:00
Kris Nuttycombe
4bb252eb0c
Add Orchard incremental merkle tree digests.
2021-06-22 18:14:27 -06:00
Jack Grigg
5759d66470
Use patches for halo2 and zcash_note_encryption dependencies
...
While these two are in flux, it's hard to keep these revisions consistent
(e.g. https://github.com/zcash/zcash/pull/5217 currently depends on two
different versions of zcash_note_encryption). Using patches allows the
downstream users (i.e. zcashd) to define its own set of patches, and keep
everything in sync. This works fine now because we aren't actively making
changes to the public APIs, only additions.
2021-06-14 23:17:15 +01:00
str4d
1182d8d5a7
Merge pull request #99 from zcash/note-encryption
...
Note encryption
2021-06-14 17:16:54 +01:00
therealyingtong
a11c2066ef
chip::add.rs: Use Expression::square() + other minor refactors
...
Co-authored-by: Jack Grigg <jack@electriccoin.co>
2021-06-12 20:25:12 +08:00
Jack Grigg
6823272cfe
Add zcash_note_encryption to dependencies
2021-06-11 23:54:35 +01:00
therealyingtong
8f8eff23d8
Update proptests to generate Merkle paths
2021-06-08 22:38:11 +08:00
Jack Grigg
94e730ad4c
Migrate to latest version of halo2
...
This brings in:
- Fixes and improvements to `MockProver`.
- Support for annotating constraints within gates.
- Removal of Selector rotations.
2021-06-07 19:49:25 +01:00
Jack Grigg
bea8a9b7ff
Migrate to bitvec 0.22, ff 0.10, group 0.10, pasta_curves 0.1
2021-06-04 20:38:52 +01:00
Jack Grigg
f1b8abfccb
Arity-3 Poseidon chip
2021-06-01 18:36:11 +01:00
Jack Grigg
dfa3fbb19b
Migrate to latest revision of halo2
2021-06-01 17:37:44 +01:00
str4d
f82d00e40d
Merge pull request #77 from zcash/remove-rand-0.7
...
Remove rand 0.7 usage
2021-05-21 21:25:34 +01:00
str4d
7109153e88
Merge pull request #43 from zcash/constants
...
Add Orchard constants
2021-05-18 20:44:59 +01:00
Jack Grigg
012d14073d
Remove rand 0.7 usage
...
Upstream redjubjub (on which our reddsa dependency is based) has
migrated to rand 0.8.
2021-05-09 07:51:55 +12:00
therealyingtong
4bf6202c35
Modify ECC gadget to work with chip refactor
2021-05-04 12:11:28 +08:00
therealyingtong
119d721ecd
Use ArrayVec
...
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2021-05-03 23:58:41 +08:00
Kris Nuttycombe
f91088d35b
Use builder to generate "valid" bundles via proptest.
2021-04-28 18:21:12 -06:00
Kris Nuttycombe
4d89d45332
Add proptest generators for action and bundle types.
2021-04-28 18:04:17 -06:00
str4d
e8f65a2158
Merge pull request #49 from zcash/builder
...
Bundle builder
2021-04-29 00:03:26 +01:00
therealyingtong
e26b6c6123
Test every row in test_lagrange_coeffs() instead of using random scalar
2021-04-28 20:53:14 +08:00
therealyingtong
137ebf4a5a
Add rand crate to dependencies
2021-04-28 20:53:14 +08:00
Jack Grigg
374391b217
Bring in reddsa fix that re-enables tests in debug mode
2021-04-28 14:19:58 +12:00