Skip to content

Conversation

@Garandor
Copy link
Contributor

@Garandor Garandor commented Nov 17, 2025

This PR adds the Pallas curve and Schnorr signing compatible with RedDSA/Pallas for ZCash orchard.

It also uses the lit-rust-crypto common crate for centralizing all versions of the curves into one place. This allows removal of all the curves directly all over the place and eliminates the headache of including the correct features for each one.

This also required upgrading to rust version 1.91 which then triggers numerous clippy violations so those are also fixed here. Unfortunately, that makes the changes look like a lot. The Pallas curve additions was about 150 line changes.

This should be merged when deemed appropriate for naga which may or may not be after the release.

Copy link
Contributor Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@github-actions
Copy link

github-actions bot commented Nov 17, 2025

PASS [ 43.142s] (3/3) lit_node::test toxiproxy::perf_tests::load_with_no_latency
PASS [ 43.180s] (2/3) lit_node::test toxiproxy::perf_tests::load_with_50ms_latency_single_link
PASS [ 85.413s] (1/3) lit_node::test toxiproxy::perf_tests::load_with_50ms_latency_all_links

Copy link
Contributor Author

@mike your PR lives here now 🙂

@GTC6244 GTC6244 changed the title development state of 11/17 Pallas curve signing for ZCash Nov 20, 2025
Signed-off-by: Michael Lodder <mike@litprotocol.com>
Signed-off-by: Michael Lodder <mike@litprotocol.com>
@GTC6244 GTC6244 marked this pull request as ready for review November 20, 2025 20:54
Copilot AI review requested due to automatic review settings November 20, 2025 20:54
Copilot finished reviewing on behalf of GTC6244 November 20, 2025 20:55
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds support for the Pallas curve with Schnorr/RedDSA signing compatible with ZCash Orchard, consolidates all cryptographic curve dependencies into the lit-rust-crypto crate for centralized version management, and upgrades Rust from version 1.86 to 1.91 with corresponding clippy fixes.

Key Changes:

  • Adds Pallas curve support (SchnorrRedPallasBlake2b512) across DKG, signing, backup/recovery, and testing infrastructure
  • Centralizes curve dependencies (blsful, k256, p256, p384, jubjub, pallas, decaf377, ed448, vsss_rs) into lit-rust-crypto crate
  • Updates dependencies: frost (2.1.0 → 2.2.0), frost-dkg (0.3.3 → 0.5.1), lit-frost (0.3.0 → 0.4.0), and related libraries
  • Fixes ~150 clippy violations triggered by Rust 1.91 upgrade

Reviewed Changes

Copilot reviewed 202 out of 206 changed files in this pull request and generated no comments.

Show a summary per file
File Description
rust-toolchain.toml Rust version upgrade from 1.86 to 1.91
Cargo.lock Dependency updates including frost 2.2.0, new pallas support, lit-rust-crypto 0.6.0
lit-node-core/src/traits/encoding/redpallas.rs New encoding traits for Pallas curve Point and Scalar types
lit-node/src/tss/dkg/engine.rs Added Pallas variant to DKG enums and processing logic
lit-node/src/tss/frost/mod.rs Added Pallas curve case for FROST signing
lit-node/src/endpoints/recovery/*.rs Added Pallas share handling in backup/recovery
lit-sdk/src/signature.rs Added SchnorrRedPallasBlake2b512 scheme support
lit-node/tests/integration/signing.rs Added Pallas to ALL_SIGNING_SCHEMES test constant
Various clippy fixes Removed unnecessary borrows, simplified conditionals, used Error::other()
Import reorganization Moved curve imports to lit_rust_crypto throughout codebase

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants