Distribute recovery custody and harden RC identity - #119
Merged
Conversation
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.
Issue
Closes #118
Claim-ID: 95bc0e19-3134-4a37-909a-66a3f8d1d709
Deployment: not deployed
Outcome
Turns the merged V0 identity baseline into a pre-release candidate with genuinely separated recovery-holder stores and processes, keyless threshold aggregation, multi-head recovery handling, crash-safe holder publication, and least-authority runtime capabilities.
The runtime now requires ten disjoint operator profiles plus two dedicated host profiles:
statusexposes exactly the five authenticated host-status methods andcuratorexposes exactly the four curator methods. All twelve profiles have separate keys, slots, paths and configs and are covered by one Ed25519 runtime binding signed by the active root-authorized embodiment signing key. Bootstrap and ordinary/recovery rebirth emit the same closed binding. Single-store/all-seed ceremonies remain explicitly synthetic and outside the public operational path.Invariants
Validation
Exact candidate:
96e9b112053b02e91d2f0f9add4b507c32058889Tree:
38f3edb002ac52aac2d51fbf533cb58c38b813c5Independent exact-head review passed capability-set cardinality and uniqueness, hostile cross-runtime swaps/relabeling, signed widening attempts, wrong origins/keys/paths, hard expiry/revocation, bootstrap and ordinary/recovery rebirth. The same checks passed from source and from the installed wheel.
Tests
daimon-genesisentrypoint; the removed centralized bootstrap command is absent.df96015fe2bea750c97dc994cdfaccb96ef1d775cd4de315454b6edf540d1548.ba89a1d77ac8f664fdac3be177d7778d004fb0045d65a44b62289176f4b9c879.Security and rollback
The principal security changes are removal of all-seed operational APIs, cryptographic runtime/capability binding, strict operator/host role separation, exclusive expiry boundaries, signed revocation high-water handling and idempotent crash recovery around holder publication.
Rollback before deployment is a normal revert of this PR. Existing merged V0 remains untouched until merge; there is no live state migration or compatibility promise. Physical custody, external participant consent and any deployment remain separate human gates.