Go to file
Jack Grigg 5e6c8ae380 Optimise location of Poseidon within Action circuit
- Move Poseidon into the right-hand advice columns. The Action circuit
  has 33 Sinsemilla invocations with 510-bit inputs (the 32 Merkle path
  hashes, and Commit^ivk). Poseidon fits within the row count of one of
  these invocations, so we can run it in parallel with these.

- Share fixed columns between ECC and Poseidon chips. Poseidon requires
  four advice columns, while ECC incomplete addition requires six, so we
  could choose to configure them in parallel. However, we only use a
  single Poseidon invocation, and we have the rows to accomodate it
  serially with fixed-base scalar mul. Sharing the ECC chip's 8 Lagrange
  coefficient fixed columns instead reduces the proof size.

  - We position Poseidon in the right-most 6 fixed columns, anticipating
    a further optimisation to Sinsemilla that will occupy the left-most
    2 fixed columns.
2021-07-21 16:03:54 +01:00
.github/workflows CI: Reduce noise of clippy lints 2021-05-04 09:18:30 +12:00
benches Add small key derivation benchmarks 2021-03-20 18:19:51 +13:00
book [book] Nullifiers: the scalar is (...) mod p, not ... (mod p). 2021-07-12 20:24:18 +01:00
proptest-regressions/constants Add proptest for decompose_scalar_fixed() 2021-05-13 12:52:03 +08:00
src Optimise location of Poseidon within Action circuit 2021-07-21 16:03:54 +01:00
.gitignore Initial commit 2020-10-20 15:12:37 -06:00
CHANGELOG.md Initialize the changelog 2021-01-22 23:57:34 +00:00
COPYING Changing TGPPL references to BOSL 2021-04-16 09:24:18 -07:00
Cargo.toml Combine constants fixed columns using assign_advice_from_constant. 2021-07-21 20:35:43 +08:00
LICENSE-BOSL Changing TGPPL references to BOSL 2021-04-16 09:24:18 -07:00
README.md Changing TGPPL references to BOSL 2021-04-16 09:24:18 -07:00
katex-header.html Initial commit 2020-10-20 15:12:37 -06:00
rust-toolchain Set MSRV to 1.51.0 2021-03-26 08:13:25 +13:00

README.md

orchard Crates.io

IMPORTANT: This library is being actively developed and should not be used in production software.

Requires Rust 1.51+.

Documentation

License

Copyright 2020 The Electric Coin Company.

You may use this package under the Bootstrap Open Source Licence, version 1.0, or at your option, any later version. See the file LICENSE-BOSL for the terms of the Bootstrap Open Source Licence, version 1.0.

The purpose of the BOSL is to allow commercial improvements to the package while ensuring that all improvements are open source. See here for why the BOSL exists.