Commit Graph

1097 Commits

Author SHA1 Message Date
Jack Grigg 6b5905880d Make note decryption benchmark reliable
The benchmark assumed that the first action in the bundle was for the
recipient it had added, but we've started shuffling recipients within
actions, and the builder pads to a minimum of two actions. This meant
that 50% of benchmark runs would fail to start, but would proceed fine
if they did start (as the bundle is cached for the entire test).

We now add two recipients, to cancel out the effect of the padding and
shuffle.
2022-05-06 21:22:51 +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
str4d c71de550ed
Merge pull request #313 from zcash/full-width-var-base-mul
Use new halo2 `FixedPoint` API.
2022-05-06 20:19:03 +01: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
therealyingtong ed53070ada Cargo.toml: Switch to halo2 revision with refactor 2022-05-06 18:58:10 +00:00
ying tong 8f5ac0f36c
Merge pull request #324 from zcash/fix-reddsa-patch-rev
Fix patch revision for `reddsa` crate
2022-05-06 22:39:51 +08:00
Jack Grigg 2d6187aaac Fix patch revision for `reddsa` crate
https://github.com/ZcashFoundation/reddsa/pull/22 was merged with a
squash-commit, which caused the revision in the branch we were patching
with to no longer exist.
2022-05-06 14:05:31 +00:00
str4d c7361e8a8a
Merge pull request #299 from jarys/external-signatures
Support externally computed signatures
2022-05-06 15:02:03 +01:00
ebfull 7929ac5af7
Merge pull request #322 from zcash/ff-0.12
Migrate to `ff 0.12`
2022-05-05 13:08:45 -06: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
ebfull 93ad4a6952
Merge pull request #318 from zcash/str4d/circuit-review
Changes from circuit review
2022-05-05 09:24:12 -06: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
str4d 39495dc94b
Merge pull request #319 from zcash/279-update-builder-docs
Update `Builder::build` docs
2022-05-04 16:21:07 +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 a30caec124
Merge pull request #314 from nuttycom/feature/spend_minconf
Update incrementalmerkletree dependency version.
2022-05-04 08:15:49 -06: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 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