Commit Graph

2265 Commits

Author SHA1 Message Date
str4d b2e2b9b081
Merge pull request #568 from zcash/circuit-review
Changes from Orchard circuit review
2022-05-05 16:03:31 +01:00
str4d 506e310d37
Merge pull request #570 from zcash/ff-0.12
Migrate to `ff 0.12`
2022-05-05 01:06:48 +01:00
Jack Grigg 3800de5918 Rename `RangeConstrained::subset_of` to `bitrange_of` 2022-05-04 23:52:15 +00:00
Jack Grigg e04c8bfb4b Migrate to `ff 0.12` 2022-05-04 23:36:18 +00:00
Jack Grigg 97864d714e halo2_gadgets: Add `MessagePiece::from_subpieces`
We introduce a new `RangeConstrained` newtype wrapper for tracking the
number of bits to which some type has been constrained.
2022-05-02 16:04:02 +00:00
str4d 1ccef3b30a
Merge pull request #566 from zcash/ci-2-fix-2-bench
halo2: Disable default benchmark harness
2022-05-01 16:25:44 +01:00
Jack Grigg f0168cf7dc halo2: Disable default benchmark harness
See 55364f0d99 for why this is necessary.
2022-04-29 00:48:44 +00:00
dependabot[bot] 1d9ca93948
Bump actions/checkout from 2 to 3
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-29 00:26:50 +00:00
str4d c73695188b
Merge pull request #565 from zcash/ci-fix-bench
CI: Fix Rust version used for benchmarks
2022-04-29 01:26:09 +01:00
Jack Grigg 6ff065c58c CI: Fix Rust version used for benchmarks 2022-04-29 00:20:58 +00:00
NoCtrlZ 32ed927579 Apply @daira's review suggestion 2022-04-28 09:47:22 +09:00
NoCtrlZ 9a9873a2c5 optimize fft 2022-04-28 09:44:54 +09:00
Jack Grigg 7d15fa3db5 sha256: Simplify single-constraint gates
`Option<T>` implements `IntoIterator<Item = T>`, so we don't need to
wrap it in an explicit iterator.
2022-04-27 20:12:03 +00:00
Jack Grigg f2d1f1d56a sha256: Add `InitialRound` and `MainRoundIdx` structs
This enables the runtime `assert!(matches!(..))` on `RoundIdx` to be
replaced by type system checks.
2022-04-27 20:12:03 +00:00
ebfull 0c33fa4e6e
Merge pull request #564 from zcash/482-msrv-1.56.1
Set MSRV to 1.56.1
2022-04-27 13:05:12 -06:00
Jack Grigg aa4639e6e7 Temporarily revert `resolver = "2"`
This breaks WASM bitrot checks, because it causes the regular
dependencies to be built without the `getrandom/js` flag that we
currently only enable for dev-dependencies. We can revert this once we
have a more reliable way to test WASM compatibility.
2022-04-27 16:53:38 +00:00
Jack Grigg fdc6c9df19 halo2_gadgets: pprof 0.8 2022-04-27 12:58:16 +00:00
Jack Grigg f4675997bc Fix some clippy lints 2022-04-27 12:58:16 +00:00
Jack Grigg e3f1bf68db halo2_gadgets: Remove usage of `array::IntoIter::new`
Rust 2021 implements `IntoIterator` for arrays directly, instead of only
references to arrays.

    https://doc.rust-lang.org/edition-guide/rust-2021/IntoIterator-for-arrays.html
2022-04-27 12:56:54 +00:00
Jack Grigg f830c6f7fb Remove pins for dependencies with MSRV-incompatible point releases 2022-04-27 12:28:19 +00:00
Jack Grigg bb1ed8288a Set edition to 2021
We also set `resolver = "2"` on the workspace; this is the default for
the root package in Rust 2021, but as we use a virtual workspace we need
to explicitly set it instead.
2022-04-27 12:28:19 +00:00
Jack Grigg 7688c371f6 Bump MSRV to 1.56.1
Closes zcash/halo2#482.
2022-04-27 12:24:57 +00:00
ebfull 5f867336eb
Merge pull request #556 from zcash/migrate-chip-gates-to-constraints-helper
halo2_gadgets: Migrate chip gates to `Constraints::with_selector`
2022-04-26 12:28:04 -06:00
parazyd a6d7785ddc
plonk: Derive Clone for VerifyingKey and ProvingKey.
Signed-off-by: parazyd <parazyd@dyne.org>
2022-04-26 14:08:11 +02:00
ebfull 26c604ddf9
Merge pull request #561 from ebfull/proof-fixups
Minor typos and fixes in security proof
2022-04-25 13:43:31 -06:00
Sean Bowe 1ea7aa1b89
Fix order of \epsilon bound. 2022-04-25 13:40:31 -06:00
Sean Bowe 05b8b77500
x -> x_3 rename in zero knowledge section. 2022-04-25 13:38:58 -06:00
Sean Bowe d420b7825a
Remove redundant mention of blinding factors 2022-04-25 13:36:28 -06:00
Sean Bowe b46848eaa8
Fix upper bound of \epsilon. 2022-04-25 13:34:42 -06:00
ebfull 2498d65bd8
Merge pull request #560 from ebfull/soundness
Add draft of halo2 proofs to the formal protocol description in book
2022-04-25 12:26:43 -06:00
Sean Bowe 8e58245b75
Add draft of halo2 security proof to the formal protocol description 2022-04-25 11:59:29 -06:00
str4d 5d99f7d5a1
Merge pull request #558 from zcash/fix-rustdoc-deploy
CI: Pass the correct `katex-header.html` path to rustdoc
2022-04-25 01:16:50 +02:00
Jack Grigg 2cf0125c78 CI: Pass the correct `katex-header.html` path to rustdoc
The header was moved to fix docs.rs deployment, but the CI workflow
wasn't updated to account for this.
2022-04-24 23:14:45 +00:00
str4d 34b467b8e0
Merge pull request #557 from zcash/fix-mdbook-deploy
Fix Halo 2 book deployment
2022-04-25 01:06:22 +02:00
Jack Grigg b866548c5f Revert "CI: Pin nightly version in book workflow"
This reverts commit 53427d19db.

Closes zcash/halo2#503.
2022-04-24 22:59:39 +00:00
Jack Grigg d43c8612a3 CI: Use `ubuntu-latest` runner for book workflow
The `mdbook` binaries are currently built using `ubuntu-latest`, meaning
can end up relying on newer versions of GLIBC. Until this is fixed
upstream (https://github.com/rust-lang/mdBook/issues/1779), we will use
the same runner configuration as them.
2022-04-24 22:57:02 +00:00
Jack Grigg b02800466a halo2_gadgets: Migrate chip gates to `Constraints::with_selector`
Only one gate couldn't be migrated without altering the Orchard circuit.
2022-04-24 22:13:38 +00:00
Daira Hopwood 66827f3df9
Merge pull request #544 from zcash/book-patch-vanishing
[book] Use more intuitive expression for vanishing poly degree
2022-04-22 16:46:39 +01:00
dependabot[bot] f52d477257
Bump codecov/codecov-action from 2.1.0 to 3.1.0
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2.1.0 to 3.1.0.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v2.1.0...v3.1.0)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-22 10:23:09 +00:00
str4d 66b2b3ba7e
Merge pull request #414 from zcash/constraints-helper
Add a `Constraints` helper
2022-04-22 11:52:06 +02:00
str4d f49f4d16f2
Merge pull request #552 from zcash/benchmark-fft
Add benchmark for various FFT sizes
2022-04-20 23:42:22 +02:00
Sean Bowe a02b9e2e7e
Add benchmark for various FFT sizes. 2022-04-20 13:09:58 -06:00
Jack Grigg d93846f8fd Note that `Constraints::with_selector` accepts arrays from 1.53 2022-04-20 10:55:55 +00:00
Jack Grigg 78de8a5c94 Add a `Constraints` helper
There are two existing patterns for constructing a gate from a set of
constraints with a common selector:

- Create an iterator of constraints, where each constraint includes the
  selector:
  ```
  vec![
      ("foo", selector.clone() * foo),
      ("bar", selector.clone() * bar),
      ("baz", selector * bar),
  ]
  ```
  This requires the user to write O(n) `selector.clone()` calls.

- Create an iterator of constraints, and then map the selector in:
  ```
  vec![
      ("foo", foo),
      ("bar", bar),
      ("baz", bar),
  ].into_iter().map(move |(name, poly)| (name, selector.clone() * poly))
  ```
  This looks cleaner overall, but the API is not as intuitive, and it
  is messier when the constraints are named.

The `Constraints` struct provides a third, clearer API:
```
Constraints::with_selector(
    selector,
    vec![
        ("foo", foo),
        ("bar", bar),
        ("baz", bar),
    ],
)
```
This focuses on the structure of the constraints, and handles the
selector application for the user.
2022-04-20 10:55:50 +00:00
str4d 46ba444169
Merge pull request #480 from zcash/477-mockprover-pretty-failures
Add `MockProver::assert_satisfied` with pretty-printed failures
2022-04-20 12:53:16 +02:00
Daira Hopwood a307bc4e2d
Merge pull request #551 from daira/daira-book-combining
[book] Add description of selector combining optimization. fixes #466
2022-04-19 15:38:11 +01:00
str4d 69c138c25c
Clarify some comments and messages
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2022-04-19 16:04:19 +02:00
str4d 606afb8349
Merge pull request #445 from daira/mockprover-regression
Fix mock prover performance regression for lookup arguments
2022-04-19 14:17:17 +02:00
Daira Hopwood 424a2748d1
Clarify a comment 2022-04-19 12:36:02 +01:00
Daira Hopwood 84f5c26b7f [book] Add description of selector combining optimization.
fixes #466

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-04-18 20:19:26 +01:00