Commit Graph

1072 Commits

Author SHA1 Message Date
Jack Grigg 903f9e8160 Adjust APIs of NoteCommit circuit impl to separate gadget and chip
The separation isn't quite complete, as we removed the `GateCells`
abstraction, but it makes the outer APIs clearer.
2022-05-04 03:01:17 +00:00
Jack Grigg 8f15db1d01 Inline `NoteCommitConfig::assign_gate`
After the previous refactors, the `GateCells` struct now serves no
purpose. We also make a few type safety improvements at the same time.
2022-05-04 02:05:57 +00:00
Jack Grigg bf99f13282 Refactor NoteCommit message piece decompositions onto per-region structs 2022-05-04 02:05:57 +00:00
Jack Grigg 3ced2c9c0b Refactor NoteCommit region assignment onto per-region structs 2022-05-04 02:05:57 +00:00
Jack Grigg f7ed302547 Refactor NoteCommit gate configuration into per-region structs 2022-05-03 23:31:17 +00:00
Jack Grigg c4bf8105f2 Use `AssignedCell<NoteValue, _>` for circuit note values 2022-05-03 23:24:48 +00:00
Jack Grigg 0bad10d3eb Replace `UtilitiesInstructions` usage with a dedicated helper
The new helper enables returning typed `AssignedCell`s, rather than only
`AssignedCell<F, F>`.
2022-05-03 23:24:48 +00:00
Jack Grigg 314728aada Update comments on `gadget::commit_ivk` 2022-05-03 23:24:48 +00:00
Jack Grigg bd104360a7 Migrate to `halo2_gadgets::utilities::RangeConstrained` newtype 2022-05-03 23:24:48 +00:00
Jack Grigg 3e40780313 Adjust APIs of Commit^ivk circuit impl to separate gadget and chip 2022-05-02 12:36:37 +00:00
Jack Grigg a491688944 Circuit cleanups and documentation 2022-04-29 20:24:52 +00:00
Jack Grigg 3b922f8f48 Extract a `ValueCommit^Orchard` gadget from the circuit 2022-04-29 20:05:00 +00:00
Jack Grigg dafb357dc0 Extract a `DeriveNullifier` gadget from the circuit
This introduces an `AddChip` implementing field element addition on a
single row, precisely matching what the nullifier integrity constraints
were relying on.
2022-04-29 20:03:17 +00:00
Jack Grigg 70b6eb3623 Simplify witness synthesis for `v_net`
`NoteValue - NoteValue` is always guaranteed to produce a valid
`ValueSum`, so we make that infallible and introduce a new helper method
`ValueSum::magnitude_sign` that we use for circuit synthesis.
2022-04-29 20:03:17 +00:00
Jack Grigg 714f2e7159 Use `array::map` now that our MSRV supports it 2022-04-29 18:04:01 +00:00
Jack Grigg ae6a50611a Pass `g_d_new` and `pk_d_new` directly to `Circuit`
The initial Action circuit specification indicated that only the byte
encodings of `g_d_new` and `pk_d_new` would be witnessed, but we ended
up witnessing the points directly instead. This commit removes the
leftover (and now redundant) encoding-decoding round trip.
2022-04-29 18:04:01 +00:00
Jack Grigg f08a2a35c4 Rename `ak` to `ak_P` in the circuit implementation
Closes zcash/orchard#260.
2022-04-29 18:04:01 +00:00
Jack Grigg 2fc9dc814d book: Fix TODOs on Actions design page
Closes zcash/orchard#78.
2022-04-29 18:04:01 +00:00
Kris Nuttycombe 68882c72d2
Merge pull request #317 from zcash/71-rename-bundle-authorization
Rename `Bundle::{try_}authorize` to `Bundle::{try_}map_authorization`
2022-04-29 10:38:22 -06:00
Jack Grigg 200c366ea4 Rename `Bundle::{try_}authorize` to `Bundle::{try_}map_authorization`
Closes zcash/orchard#71.
2022-04-29 00:16:16 +00:00
str4d b6a69cdfdc
Merge pull request #316 from zcash/no-std-prep
Preparations for `no-std` support
2022-04-29 00:13:49 +01:00
Jack Grigg 5c5c999439 Move `orchard::bundle::Action` to its own module
The `Bundle` struct is variable in size and requires allocations, but
`Action` is not. This split will make it cleaner to disable the bundle
logic for no-std support.
2022-04-28 22:59:07 +00:00
Jack Grigg 4ec036c851 Remove unnecessary usage of `Vec` 2022-04-28 21:26:23 +00:00
Jack Grigg 30f9452743 Replace unnecessary usage of `std::io` 2022-04-28 20:45:05 +00:00
Jack Grigg b1ce38405a Use `core` instead of `std` where possible 2022-04-28 20:20:23 +00:00
str4d 62ca755e38
Merge pull request #251 from zcash/update-halo2-constraints-helper
Migrate to `halo2::plonk::Constraints` helper
2022-04-28 21:12:28 +01:00
Jack Grigg 52449ef88f Migrate to `halo2::plonk::Constraints` helper 2022-04-28 19:52:55 +00:00
Kris Nuttycombe fbeaff4fd2
Merge pull request #315 from zcash/msrv-1.56.1-cleanups
Cleanups for MSRV 1.56.1
2022-04-28 12:21:04 -06:00
Jack Grigg 4574d4793a Migrate to 2021 edition 2022-04-28 17:23:30 +00:00
Jack Grigg 6339fca4cb pprof 0.8 2022-04-28 17:13:37 +00:00
Jack Grigg b08d6fc284 Set `rust-version = "1.56.1"` in `Cargo.toml` 2022-04-28 17:13:37 +00:00
str4d 5e98c7d54c
Merge pull request #277 from zcash/book-delete-gadgets
[book] Remove gadgets documentation.
2022-04-28 17:41:04 +01:00
therealyingtong e130643508 [book] Remove gadgets documentation.
The book now instead references the Halo 2 book for relevant circuit
documentation.
2022-04-28 16:27:43 +00:00
Daira Hopwood a1aa5bb12e
Merge pull request #202 from nuttycom/trivial_cleanup
Minor cleanup addressing issues found while performing review for zcash/zcash#5024
2022-04-15 05:25:20 +01:00
Daira Hopwood 3b52b2abec Minor cleanup found while performing review for zcash/zcash#5024
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-04-14 08:29:00 -06:00
str4d 330f492cb0
Merge pull request #312 from zcash/release-0.1.0-beta.3
Release 0.1.0-beta.3
2022-04-06 21:48:37 +01:00
Jack Grigg c39b6a5b7d orchard 0.1.0-beta.3 2022-04-06 20:29:56 +00:00
str4d ae773fde70
Merge pull request #311 from zcash/update-incrementalmerkletree
incrementalmerkletree 0.3.0-beta.2
2022-04-06 19:38:06 +01:00
Jack Grigg 06995064d7 incrementalmerkletree 0.3.0-beta.2 2022-04-06 18:19:39 +00:00
str4d 2c0aed712a
Merge pull request #308 from zcash/improve-debug-impls
Improve `Debug` impls
2022-04-06 18:59:33 +01:00
str4d 7c2cc814de
Merge pull request #288 from rex4539/typos
Fix typos
2022-04-06 18:23:17 +01:00
Jack Grigg 01d70ec875 Hide `NonEmpty` in `Debug` impl of `Bundle`
It is an implementation detail that isn't useful to include in the debug
output.
2022-04-06 17:22:18 +00:00
Jack Grigg caca664b20 Make `Debug` impl for `TransmittedNoteCiphertext` less verbose
We now print the ciphertexts as hex bytes, for which we unambiguously
encode them in RPC outputs (vs 32-byte values which are more complex).
2022-04-06 17:22:17 +00:00
Jack Grigg 6941fe1109 Make `Debug` impl for `Proof` much less verbose
For the default `{:?}` debug formatting we now only print the length of
the proof, while `{#?}` continues to print the full byte vector.
2022-04-06 17:21:48 +00:00
str4d 5b8690338e
Merge pull request #310 from zcash/update-deps
Update dependencies
2022-04-06 13:34:33 +01:00
Jack Grigg 6873782a48 Remove unused dependencies
Closes zcash/orchard#307.
2022-04-06 11:35:57 +00:00
Jack Grigg 3b5fb01218 Migrate to `halo2_proofs 0.1.0-beta.4` 2022-04-06 11:30:39 +00:00
Kris Nuttycombe 420d600f0e
Merge pull request #305 from zcash/fvk-scope
Add explicit scoping for viewing keys and addresses
2022-03-30 08:37:20 -06:00
therealyingtong eaa0cfdbf6 Check that the internal IVK can be derived from a spending key
Co-authored-by: Jack Grigg <jack@electriccoin.co>
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2022-03-30 20:49:38 +08:00
therealyingtong e550c3d536 Check IVK derivations during FullViewingKey::from_bytes.
Closes zcash/orchard#303

Co-authored-by: Jack Grigg <jack@electriccoin.co>
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2022-03-30 20:49:38 +08:00