§34: the four-party protocol - killing distributed transactions
This commit is contained in:
@@ -943,3 +943,80 @@ Rules that make it real:
|
|||||||
|
|
||||||
This is Law 48 made executable. The four parties stop being a
|
This is Law 48 made executable. The four parties stop being a
|
||||||
documentation convention and become the shape of memory itself.
|
documentation convention and become the shape of memory itself.
|
||||||
|
|
||||||
|
## 34. THE FOUR-PARTY PROTOCOL — killing distributed transactions
|
||||||
|
|
||||||
|
The claim: 2PC and its descendants (sagas, coordinators, distributed
|
||||||
|
locks) exist to answer one question — "did we BOTH do it?" — with
|
||||||
|
infrastructure. Four-party records answer it with epistemology.
|
||||||
|
|
||||||
|
### Why distributed transactions die
|
||||||
|
|
||||||
|
2PC's fatal shape: a COORDINATOR holds LOCKS while asking everyone
|
||||||
|
to promise. If any node dies mid-promise, locks stay held and the
|
||||||
|
whole system blocks. Sagas avoid blocking by adding compensation
|
||||||
|
logic — manual undo for every step. Both pay heavily to fake one
|
||||||
|
thing: a single moment when reality flipped from not-done to done.
|
||||||
|
|
||||||
|
Four-party records refuse the premise. THERE IS NO SHARED MOMENT.
|
||||||
|
Each party commits locally, always, immediately. "Done" is not an
|
||||||
|
instant — it is a STATE OF AGREEMENT, reached asynchronously:
|
||||||
|
|
||||||
|
STATES OF AN OPERATION:
|
||||||
|
INTENDED → recorded locally: {what, why, prior_hash}
|
||||||
|
PERFORMED → executed; outcome appended w/ before/after hashes
|
||||||
|
PROPOSED → signed offer sent to counterparty(ies)
|
||||||
|
MUTUAL → all counterparties countersign (proof-of-possession)
|
||||||
|
WITHDRAWN / AMENDED → supersede record appended, never delete
|
||||||
|
|
||||||
|
### The guarantee mapping
|
||||||
|
|
||||||
|
ATOMICITY → replaced by VISIBILITY RULES:
|
||||||
|
only MUTUAL records may present themselves as
|
||||||
|
fact to third parties. Partial work exists as
|
||||||
|
PROPOSED — real, recorded, but claiming nothing.
|
||||||
|
CONSISTENCY → chain verification at sign time; divergence =
|
||||||
|
fork = loud alarm (never silent corruption).
|
||||||
|
ISOLATION → competing proposals to the same object create
|
||||||
|
rival forks; resolved by deterministic rule
|
||||||
|
(first-MUTUAL wins) or explicit resolution
|
||||||
|
record. Loser remains in history, superseded.
|
||||||
|
DURABILITY → local append-only + §26 fallback cascade.
|
||||||
|
|
||||||
|
### Failure analysis — where 2PC dies, this shrugs
|
||||||
|
|
||||||
|
Coordinator dies → there IS no coordinator. Each party
|
||||||
|
owns its own ledger; nothing blocks.
|
||||||
|
Counterparty dies → operation sits PROPOSED: visible,
|
||||||
|
pending, retryable, amendable. Other
|
||||||
|
work continues untouched.
|
||||||
|
Party lies → transcript mismatch = fork alarm;
|
||||||
|
honest majority out-votes by hash
|
||||||
|
(the little blockchain, §33).
|
||||||
|
Network partitions → both sides keep recording truth
|
||||||
|
locally; on heal, forks surface and
|
||||||
|
reconcile by signed resolution.
|
||||||
|
"Undo" needed → AMENDMENT: a forward operation that
|
||||||
|
references what it corrects. Rollback-
|
||||||
|
by-deletion is undefined, as designed.
|
||||||
|
History cannot be unbuilt, only
|
||||||
|
outgrown.
|
||||||
|
|
||||||
|
### Finality = common knowledge
|
||||||
|
|
||||||
|
An operation is FINAL exactly when witness-status reaches MUTUAL:
|
||||||
|
signed by all parties, hashed into both chains, eligible for seals.
|
||||||
|
This is sunrise-finality (§26/§33): not "a coordinator declared it"
|
||||||
|
but "everyone knows, and everyone knows everyone knows." No lie can
|
||||||
|
be coordinated against finality of this kind.
|
||||||
|
|
||||||
|
### Cost, stated honestly
|
||||||
|
|
||||||
|
Every operation carries its own receipt-chain: more bytes, more
|
||||||
|
hashing, slower absolute throughput than a single-node transaction.
|
||||||
|
What you buy: zero coordinators, zero held locks, zero blocked
|
||||||
|
systems, total auditability, and recovery that is a property of the
|
||||||
|
data rather than a procedure run by operators.
|
||||||
|
|
||||||
|
Formal status: protocol sketch complete; state machine above is the
|
||||||
|
implementation contract for semantic.ts storage layer (after R1-R3).
|
||||||
|
|||||||
Reference in New Issue
Block a user