TRANSACTIONAL TRUST · VERIFIED #038
The signatures were valid. The authority had created two histories.
Verified #037 blocked replay of an older membership epoch. #038 goes deeper: the same membership authority signs two different successor memberships for the same epoch, and each branch has a locally valid witness quorum.
SAME AUTHORITY + SAME MEMBERSHIP EPOCH + DIFFERENT AUTHENTIC MEMBERSHIP DIGESTS = EQUIVOCATION EVIDENCE.
The fork
M2-A:
issuer = membership-authority-demo-key-v1
set-B / epoch 2
W4 W5 W6 / threshold 2
predecessor = digest(M1)
authentic ✅
digest = sha256:aa0ad1f9...
M2-B:
issuer = membership-authority-demo-key-v1
set-C / epoch 2
W7 W8 W9 / threshold 2
predecessor = digest(M1)
authentic ✅
digest = sha256:b1586f4d...Same issuer. Same namespace. Same epoch. Same predecessor. Different authentic membership content.
Both local worlds validate
QC-A = W4 + W5 → H9
valid under M2-A ✅
QC-B = W7 + W8 → H9
valid under M2-B ✅Unsafe isolation
verifier sees only M2-B + QC-B
M2-B authentic = true
QC-B valid = true
H9 authentic = true
R2 / generation 9 / ACTIVE = true
→ isolated_membership_branch_authorized
→ adoption rows = 1
→ HTTP 200
→ effect_count = 1Safe cross-view guard
same authority = true
same epoch = 2
same predecessor = true
both authentic = true
different membership digest = true
→ membership_authority_equivocation_detected
→ branch A effects = 0
→ branch B effects = 0
→ quarantine membership issuerThe verifier does not choose the branch that arrived first or the one with a familiar set ID. The conflict itself becomes evidence.
Explicit recovery
M3:
issuer = separate recovery authority
set-D / epoch 3
W10 W11 W12 / threshold 2
resolves = [digest(M2-A), digest(M2-B)]
predecessors = [digest(M2-A), digest(M2-B)]
QC-recovery = W10 + W11 → H9
→ equivocation_resolved_by_fresh_recovery_membership
→ adoption rows = 1
→ HTTP 200
→ effect_count = 1I111–I114
- I111 — Same authority + same membership epoch + different authentic membership digests = equivocation evidence.
- I112 — Authentic membership record ≠ unique membership history.
- I113 — Membership-authority equivocation must hold all disputed branches and quarantine the issuer before consequence.
- I114 — Recovery requires a fresh higher-epoch membership from non-equivocating authority or explicit governance resolution binding all conflicting branch digests.
Evidence
GitHub Actions run: 31618790089
Job: 94188104629
Benchmark SHA:
a90f9d903e74103dfead69134104c44761848982
Artifact ID: 9150364287
Artifact digest:
sha256:bbd0de53bf4cc9690a4df11893ccaa7fbb5469d60fa4353aa96d2ff62bf8039b
Score: 10/10Boundary
The benchmark uses deterministic HMAC identities and a test-only separate recovery authority. It does not implement production PKI, BFT governance, transparency logs or consensus finality.