# 2025-07-13 Update ## Rust Workspace for Blockchain Commons Rust Crates - The private [`bc-rust` workspace](https://github.com/BlockchainCommons/bc-rust) has been created to manage all Blockchain Commons Rust crates in a single repository. - All crates are Git submodules of the `bc-rust` repository, allowing for easy management and updates. After cloning the repository, use `git submodule update --init --recursive` to ensure all submodules are cloned. - The top-level `Cargo.toml` file defines the workspace and includes all submodules as members. It also has a `[patch.crates-io]` section that ensures all crates use the local versions of their dependencies. - Although not member Rust crates, for convenience the workspace also includes the `research` and `cbor-book` repos as Git submodules. - The workspace also includes several command-line tools used for the crate release process, and `RELEASE_INSTRUCTIONS.md` containing detailed steps for releasing crates that can be used by humans or AI agents. - The workspace includes stub `CLAUDE.md` files referring Claude Code to `.github/copilot-instructions.md`, which provides genreal guidance and refers agents the various `AGENTS.md` files used in the workspace. - The workspace can be used from within any IDE, but contains configurations for VS Code, GitHub Codepilot, and recommended extensions for Rust development. - The workspace is currently private, but contains no API keys or other sensitive information. The main consideration is that if we make it public, we have to document and maintain it. - A choice we did not make would be to move all actual source code into the workspace, creating a monorepo. This could possibly simplify maintenance of the stack, but would require deprecating all the individual crate repos in favor of the monorepo. ## FROST Tools Support for Secp256K1-TR - Forked [ZCash Foundation FROST Tools](https://github.com/ZcashFoundation/frost-tools) and added support for the Secp256K1-TR ciphersuite, enabling Bitcoin taproot compatibility. Updates are in the `secp256k1-tr-support` branch of the [Blockchain Commons fork of the FROST Tools repo](https://github.com/BlockchainCommons/zcash-frost-tools/tree/secp256k1-tr-support). - Added a [walkthrough of the new Secp256K1-TR support](https://github.com/BlockchainCommons/zcash-frost-tools/blob/secp256k1-tr-support/FROST%2BSecp256k1-TR%20Demo.md). - We are ready to submit a pull request to the ZCash Foundation FROST Tools repo to merge this support into the main branch, or we can continue to maintain our fork. ### Commit Message feat: Add comprehensive Secp256K1-TR ciphersuite support for Bitcoin taproot compatibility This commit implements full support for the Secp256K1-TR ciphersuite across all FROST tools, enabling Bitcoin taproot-compatible threshold signatures alongside existing Ed25519 and RedPallas support. ### Core Changes: - **Dependency Management**: Added frost-secp256k1-tr v2.1.0 to workspace and all relevant crates - **CLI Integration**: All command-line tools now accept `secp256k1-tr` as a ciphersuite option: - trusted-dealer: Generate threshold keys for Bitcoin taproot - dkg: Distributed key generation with Secp256K1-TR - coordinator: Coordinate signing sessions with taproot keys - participant: Participate in taproot threshold signing ### Implementation Details: - **Ciphersuite Helper**: Extended ciphersuite_helper.rs to map Secp256K1Sha256TR::ID to helper implementations - **CLI Dispatching**: Added string-to-type mapping for "secp256k1-tr" across all CLI entry points - **Trait Implementations**: Implemented MaybeIntoEvenY trait for Secp256K1Sha256TR (no-op, as even Y conversion not required) - **Type Safety**: Added proper type dispatching based on ciphersuite ID in all coordinator and participant modules ### Testing & Documentation: - **Integration Tests**: Added comprehensive test coverage for Secp256K1-TR in frostd integration tests - **README Updates**: Updated documentation to reflect three supported ciphersuites with usage examples - **Supply Chain**: Added frost-secp256k1-tr exemption to cargo-vet configuration ### Files Modified: - Cargo.toml files across workspace for dependency management - CLI modules for string-to-ciphersuite mapping - Helper functions for ciphersuite-specific operations - Integration test suite for complete flow verification - Documentation reflecting new Bitcoin taproot support ### Verification: - All existing tests continue to pass - New Secp256K1-TR integration test validates complete FROST signing flow - CLI tools accept and properly handle secp256k1-tr option across all workflows This enhancement maintains backward compatibility while extending FROST tools to support Bitcoin taproot transactions through threshold signatures, completing the multi-blockchain support matrix.