feat(wasm-mps): VRF-DKG + hard derive bindings for eddsaMpc hardened derivation - #363
Draft
joeypinz wants to merge 1 commit into
Draft
feat(wasm-mps): VRF-DKG + hard derive bindings for eddsaMpc hardened derivation#363joeypinz wants to merge 1 commit into
joeypinz wants to merge 1 commit into
Conversation
joeypinz
force-pushed
the
feat/mps-hard-derive
branch
from
August 20, 2026 22:46
d8dbb4c to
bb0ffa5
Compare
Safe creation advances signing DKG and VRF-DKG in the same three rounds when round0 is called with with_vrf=true, and writes both finished shares into one RootDocument. Ordinary DKG (with_vrf=false) keeps the previous bare Keyshare encoding. Hard-derive takes that combined document; the standalone VRF-DKG wasm exports are removed. Co-authored-by: Cursor <cursoragent@cursor.com>
joeypinz
force-pushed
the
feat/mps-hard-derive
branch
from
August 20, 2026 22:49
bb0ffa5 to
a00b10f
Compare
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.
Summary
Adds Ristretto VRF-DKG and hard-derive bindings to
wasm-mps, needed for hardened MPC derivation on theeddsaMpc(MPS/ed25519) Wallet Safes slot.Context: TDD: Wallet Safes v1 — Part III-2: MPC Wallet Minting (VRF) (David Kaplan, draft). Opened as draft — the TDD is explicitly not final and no tickets exist yet; this is meant to give reviewers something concrete to look at, not to preempt that process.
ed25519_vrf_dkg_round{0,1,2}_processanded25519_hard_derive_round{0,1,2}_process, matching this file's own round0(bootstrap)/round1/round2 split — the closest match to precedent of the three repos touched by this work.hsm-firmware/sl-mpsimplementation (PR #2305), with deliberately different round seeds on each side, confirming hard-derive's output is a pure function of (root, vrf_share, path) as the VRF construction requires.sl-mpsfunctions, which require one). A real message from either side would have failed to decode on the other in production — invisible to both repos' own test suites, since each only round-trips messages within itself. This is concrete evidence for thesl-mps/wasm-mpsduplication risk flagged in the TDD's Open Item docs: use formal capitalization of Node.js #5 — worth a look before deciding whether independent implementations (this PR's shape) or a relinked shared binding is the long-term target.test/mps.ts, alongsideed25519/redpallas) rather than as a new file — no precedent in this repo for a second test binary/file per protocol addition.What this doesn't do
Nothing in BitGoJS, wallet-platform, or hsm-api.
Test plan
cargo build,cargo test,cargo clippy --all-targets --all-features -- -D warnings,cargo fmt --check— all cleannpm test— 51/51 passing (49 pre-existing + 2 new), including the golden-vector cross-check againstsl-mps