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 = 1

Safe 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 issuer

The 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 = 1

I111–I114

Evidence

GitHub Actions run: 31618790089
Job: 94188104629
Benchmark SHA:
a90f9d903e74103dfead69134104c44761848982
Artifact ID: 9150364287
Artifact digest:
sha256:bbd0de53bf4cc9690a4df11893ccaa7fbb5469d60fa4353aa96d2ff62bf8039b
Score: 10/10

Boundary

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.

Read TTP Membership Authority Equivocation RulePrevious: Verified #037 →