Skip to content

scientific(validation): prove recovery seed-state membership against the declared manifest #635

Description

@seonghobae

Finding

ScientificRecoveryProfileV1 previously committed only seed_manifest_sha256. ScientificRecoveryReplicationReceiptV1 accepted any canonical seed_state_sha256, and #634 promotion verified uniqueness plus repetition/profile/payload bindings but did not prove that those seed-state identities were the ordered entries represented by the profile's manifest digest.

That allowed arbitrary unique seed-state substitution while retaining the same declared recovery profile.

Repair lineage

  • source-level compile RED 5586359909f4a2dbc66ae791e409b9fd83598cd6 introduced the missing canonical manifest/membership contract. It is not claimed as a hosted failing RED because repair commits followed immediately.
  • causal production repair c43b4a9149933eb4593643733519e2da5827198a added ScientificRecoverySeedManifestV1 and changed replication validation to reconstruct the ordered manifest from the receipt seed-state sequence and require its domain-separated digest to equal profile.seed_manifest_sha256().
  • export 7ff2bb19f095c3af8144eae5772dabf317e61882 made the manifest value object part of the public Validation Evidence contract.
  • contract repair 606bf1effd82338d8a491503c8486e999f8b071a proves correct membership promotes, an out-of-manifest substitution fails closed, order changes identity, and duplicate/malformed/undersized manifests fail closed.
  • existing scientific recovery fixtures were ordinary-forward migrated in 0b410198..., 10789e9e..., ff34c7b5..., 12495b1d..., 9fde717f..., fffc9d5c..., and b7f87d45... so their profile seed-manifest identities are derived from the same canonical ordered seed sequence used by their receipts.
  • current CHANGELOG head is fcf988903bbcd7f34d44b6f37e5a66448e736cd4.

Scientific boundary

The public promotion API remains seven arguments; no detached mutable manifest object is trusted at promotion time. The owner reconstructs the canonical manifest from the exact ordered receipt seed-state identities and compares the derived digest with the profile commitment. Thus membership/order are bound at the represented content-identity layer without weakening practical RMSE, Monte Carlo uncertainty, planned denominator, exact-head receipt, payload identity, or ADR 0014 authority gates.

This is not an execution attestation. The remaining gaps are pre-execution profile/manifest registration chronology and signed/verifiable evidence that each named execution artifact was actually produced from the declared RNG state.

Current gate

PR #488 remains Draft/open. Exact-head hosted workflows for fcf988903bbcd7f34d44b6f37e5a66448e736cd4 are non-terminal, and no qualifying independent current-head APPROVED review exists. Keep this issue open until exact-head GREEN/review and ordinary landing evidence exist.

Refs #488 #627 #634.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions