Skip to content

Prevent UniFFI FROST wallet material generation#4020

Merged
mswilkison merged 1 commit into
feat/frost-schnorr-migration-scaffoldfrom
codex/remove-uniffi-frost-dkg
Jun 7, 2026
Merged

Prevent UniFFI FROST wallet material generation#4020
mswilkison merged 1 commit into
feat/frost-schnorr-migration-scaffoldfrom
codex/remove-uniffi-frost-dkg

Conversation

@mswilkison
Copy link
Copy Markdown
Contributor

Summary

  • stop the frost_tbtc_signer build from registering the tbtc-signer bridge as the generic UniFFI FROST DKG/signing engine
  • ensure new FROST DKG prefers coarse frost-tbtc-signer-v1 material if a tbtc-signer engine is available
  • add regression coverage so fresh FROST DKG cannot emit frost-uniffi-v2 material in the tbtc-signer stack

Why

The private testnet E2E reached Taproot deposit sweep signing with a wallet generated as frost-uniffi-v2. That material cannot produce Taproot-tweaked signatures, so real Taproot deposits would be stuck at sweep signing. The production FROST rollout should only generate tbtc-signer-backed FROST wallet material.

Tests

  • go test -tags 'frost_native frost_tbtc_signer cgo' ./pkg/frost/signing -run 'TestRegisterBuildTaggedTBTCSignerEngine|TestBuildTaggedTBTCSignerInteractiveFROSTBridge_WithLinkedSigner'
  • go test -tags 'frost_native frost_tbtc_signer cgo' ./pkg/tbtc -run 'TestExecuteFrostDKG_PrefersTBTCSignerMaterial|TestOutputKeyFromTBTCSignerDKGResult'
  • go test -tags 'frost_native frost_tbtc_signer cgo' ./pkg/frost/signing
  • KEEP_CORE_FROST_TBTC_SIGNER_ACCEPT_SCAFFOLD_KEY_GROUP=true go test -tags 'frost_native frost_tbtc_signer cgo' ./pkg/tbtc

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jun 7, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 18e16867-0bf0-4654-85cd-047052b4d6b3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/remove-uniffi-frost-dkg

Comment @coderabbitai help to get the list of available commands and usage tips.

@mswilkison mswilkison merged commit baac88e into feat/frost-schnorr-migration-scaffold Jun 7, 2026
16 checks passed
@mswilkison mswilkison deleted the codex/remove-uniffi-frost-dkg branch June 7, 2026 16:52
mswilkison added a commit that referenced this pull request Jun 7, 2026
## Summary
- Require the tbtc-signer engine for FROST DKG output and stop falling
back to the generic UniFFI FROST DKG path
- Reject unsupported `frost-uniffi-v2` signer material before signing,
group-key extraction, Taproot output-key extraction, and FROST wallet-ID
derivation
- Remove the UniFFI FROST wrapper adapters/tests while keeping the
tbtc-signer ABI smoke coverage and legacy `frost-uniffi-v1` ECDSA
compatibility

## Rationale
`frost-uniffi-v2` is not a production compatibility format. It cannot
produce Taproot-tweaked signatures, so a FROST wallet using it can
accept Taproot deposits that are effectively unsweepable. This PR fails
closed before new FROST wallet material or BTC deposits can be created
on that unsupported path.

## Tests
- `go test -tags 'frost_native frost_tbtc_signer cgo'
./pkg/frost/signing`
- `KEEP_CORE_FROST_TBTC_SIGNER_ACCEPT_SCAFFOLD_KEY_GROUP=true go test
-tags 'frost_native frost_tbtc_signer cgo' ./pkg/tbtc`
- `go test -tags 'frost_native frost_tbtc_signer frost_roast_retry cgo'
./pkg/frost/signing`

Stacked on #4020.
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.

1 participant