feat: add experimental generic FROST HD derivation - #1083
Open
JW-Rami wants to merge 1 commit into
Open
Conversation
Author
|
@conradoplg hey - I would love it if you could take a look when you have a chance. This topic came up in the earlier discussion and I finally went ahead and opened a concrete implementation for review. |
Author
|
let me know if you have any questions! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds a new experimental crate
frost-hd, which defines non-hardened hierarchical key derivation for FROST key packages in a ciphersuite-generic, blockchain-agnostic way.The construction derives child key material by applying the same additive tweak to each participant signing share, each participant verifying share, and the joint verifying key. This lets a FROST group derive descendant key packages for arbitrary non-hardened paths without changing the underlying signing protocol.
To support this cleanly, this PR adds:
frost-hdcrate with typed derivation paths, explicit context binding, derivation-key handling, error types, vectors, and documentation;KeyPackageandPublicKeyPackage;The scope is intentionally limited. This PR does not claim BIP32 compatibility, does not claim SLIP-0010 compatibility, and does not implement hardened derivation. The child derivation model is explicitly related-key: disclosure of a child share reveals the corresponding parent share for that participant.
This is experimental and unaudited. It is not being proposed as production-ready wallet infrastructure. The goal is to upstream the generic construction and the surrounding review surface, while keeping chain-specific adapters and hardened derivation out of scope.
Background and prior upstream discussion
This PR is not introducing this topic out of nowhere. There is already upstream discussion and visible demand for FROST hierarchical derivation work:
BIP32 key derivationas a next feature, and this comment points to a separatetaproot-bip32branch as useful so that FROST keys can be used in hierarchical and descriptor wallets.This PR is intended as that follow-on work, but in a ciphersuite-generic and blockchain-agnostic form. Its scope remains limited to non-hardened derivation, and it does not claim BIP32 or SLIP-0010 compatibility.
Some additional features we can consider adding:
frost-corerather than an adjacent experimental crate