Commit Graph

776 Commits

Author SHA1 Message Date
Jack Grigg 311190c2d6 Migrate to final `halo2_gadgets` pre-release revision
Includes API changes made in zcash/halo2#573.
2022-05-10 21:55:20 +00:00
str4d 15007026b1
Merge pull request #325 from zcash/fix-lints
Fix lints
2022-05-06 20:51:43 +01:00
Jack Grigg 07a88ae9f9 Fix rustdoc lint 2022-05-06 19:33:10 +00:00
Jack Grigg 6d6832f3f1 Fix clippy lints 2022-05-06 19:33:10 +00:00
therealyingtong 2f2bab5627 circuit.rs: Use BaseFitsInScalarInstructions for variable-base mul. 2022-05-06 18:58:18 +00:00
therealyingtong 4e6200796e Implement new FixedPoint trait for OrchardFixedBasesFull. 2022-05-06 18:58:18 +00:00
str4d c7361e8a8a
Merge pull request #299 from jarys/external-signatures
Support externally computed signatures
2022-05-06 15:02:03 +01:00
Jack Grigg 706cee42f5 Migrate to `ff 0.12` 2022-05-05 17:15:03 +00:00
Tomas Krnak e47abb8018 Support externally computed signatures
Co-authored-by: str4d <thestr4d@gmail.com>
2022-05-05 18:12:27 +02:00
Jack Grigg 0603d602d0 Rename `anchor` to `root`, and `pub_input_anchor` to `anchor`
This ensures that we are consistent in the circuit in referring to the
public bundle anchor as `anchor`, and the calculated Merkle tree root as
`root`.
2022-05-04 23:57:26 +00:00
Jack Grigg 8c7bb5b95d Rename `RangeConstrained::subset_of` to `bitrange_of` 2022-05-04 23:54:16 +00:00
Jack Grigg 3ca8c662a4 Merge branch 'main' into str4d/circuit-review 2022-05-04 17:09:15 +00:00
str4d dc89386df1
Merge pull request #320 from zcash/243-compact-action-nullifier
Add nullifier field to `CompactAction`
2022-05-04 16:27:03 +01:00
Jack Grigg c0b7fa2007 Add nullifier field to `CompactAction`
Also reorders the fields to match the ZIP 244 order.

Closes zcash/orchard#243.
2022-05-04 15:01:05 +00:00
Jack Grigg 3ccf27e519 Update `Builder::build` docs
Closes zcash/orchard#279.
2022-05-04 14:57:08 +00:00
Kris Nuttycombe 4e3e469780 Update incrementalmerkletree dependency version. 2022-05-04 08:01:02 -06:00
Jack Grigg b46e4822d2 Update comments on `gadget::note_commit` 2022-05-04 03:01:17 +00:00
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 200c366ea4 Rename `Bundle::{try_}authorize` to `Bundle::{try_}map_authorization`
Closes zcash/orchard#71.
2022-04-29 00:16:16 +00: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
Jack Grigg 52449ef88f Migrate to `halo2::plonk::Constraints` helper 2022-04-28 19:52:55 +00:00
Jack Grigg 4574d4793a Migrate to 2021 edition 2022-04-28 17:23:30 +00: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
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
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