You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[DRAFT - decision-gated] feat(tbtc/signer): mirror TEE hardening stack from tBTC monorepo
⚠️ DRAFT — DECISION-GATED. This PR mirrors the source PR
tlabs-xyz/tbtc#88 which is itself a decision-gated draft. It must NOT
merge until the Threshold policy decision to require TEE operation
for signers is explicit.
Stacked on top of [PR #4005](https://github.com/threshold-network/
keep-core/pull/4005) which lands the base FROST/ROAST Rust signer at
pkg/tbtc/signer/. This PR adds the optional TEE signer-hardening
checker stack on top.
Phases A-D (per source PR #88)
- Phase A: governance registry + audit-event validation
(tee_registry_checker)
- Phase B: verifier/keyset/token/revocation validation
(tee_token_checker)
- Phase C: runtime token + denylist + vendor-diversity enforcement
(tee_runtime_checker)
- Phase D: enforcement modes + break-glass controls
(tee_enforcement_checker)
Files (19 total — all mirror status)
- 4 Rust binaries at pkg/tbtc/signer/src/bin/
- 12 sample config JSON files at pkg/tbtc/signer/scripts/
- 1 README.md update at pkg/tbtc/signer/
- 2 docs at pkg/tbtc/signer/docs/ (tee-whitelisted-signer-activation-
gate-record.md + tee-whitelisted-signer-enforcement-plan.md)
Provenance
- Source repository: tlabs-xyz/tbtc
- Source PR: #88 (decision-gated, draft)
- Source commit (PR #88 HEAD): 31f0aa2b8efbf8ac42909f8e8d4ce67248cb478e
- Source branch: feat/tee-phase-a-governance-registry (stacked on
feat/frost-schnorr-migration)
- Base for THIS PR: extraction/frost-signer-mirror-2026-05-26 (PR #4005)
- Source PR includes stacked phases B, C, D from PRs #89, #90, #91
merged into PR #88's branch
Decision gate
The source PR #88 description is explicit: this stays in draft until
the runtime TEE policy decision is made. The same constraint applies
to this canonical mirror — DO NOT MERGE before:
1. PR #4005 (base FROST signer) lands
2. Threshold policy decision on TEE enforcement for signers is
explicit and documented (per the source PR's "Decision-Gated"
framing)
Verification (per plan v38 §7.2 mirror status)
For each file:
- sha256(git show 31f0aa2b8e:<sourcePath>) ==
sha256(file at this PR head at <targetPath>)
The 19 files port as byte-for-byte mirrors with path normalization:
- tools/tbtc-signer/* → pkg/tbtc/signer/*
- docs/frost-migration/tee-* → pkg/tbtc/signer/docs/tee-*
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|`break_glass_cooldown_seconds`|`86400`| 24-hour cooldown between activations |
74
74
|`break_glass_scope`|`named_operator_ids_only`| no global suspension in default policy |
75
-
|`break_glass_quorum_bps`|`6700`| supermajority quorum for activation |
75
+
|`break_glass_quorum_bps`|`6700`| supermajority quorum for emergency break-glass actions |
76
+
|`activation_gate_required_quorum_bps`|`6700`| independent quorum threshold for `draft -> mandatory` activation gate; hard floor of 6700 bps enforced by checker |
0 commit comments