Projects · Security engineering · Research prototype · PROVEN
escrow-budget-mpst
What this establishes
That the escrow transfer sub-protocol, expressed as a multiparty session type with crash-stop failures in Rust, is deadlock-free and communication-safe on all executions and leaves the surviving peer deadlock-free after a crash at any point, enforced by the Rust type system on every build.
What this does not establish
The budget bound: session types govern communication, not arithmetic state, and the Charge that consumes budget sends no message, so it is invisible to the type. It assumes reliable, ordered transport (loss, duplication and reorder are assumed away), and models crash-stop, not crash-recovery. It is complementary to the Lean and TLA+ method, not a confirmation of it. This method never touches the cap theorem.
Trusted base
The Rust compiler and the mpstthree session-types library, and the assumption of reliable ordered transport. The TCB additions are set out in GAPS.md.
Method
The global type is projected to local types realised as Rust types, so a type-violating implementation and a non-projectable global type are both rejected at compile time; crash-stop faults are injected at every protocol point.
Result
make check builds green; the properties-by-methods table in COMPARISON.md records exactly where the two methods overlap and where they do not, with explicit NOT APPLICABLE cells, MPST not applicable to the budget bound, Lean not applicable to communication safety.
Negative controls. nc1, a type-violating implementation, and nc2, a non-projectable global type, are both rejected at compile time.
Reproduce
make check - Toolchain
- Rust with Cargo, and the mpstthree multiparty-session-types library
- Verified at
- repowazdogz-droid/escrow-budget-mpst@59bbc08 (2026-07-20)
This pass. Confirmed by source read at 59bbc08 (COMPARISON.md, README, negative controls); make check was verified green at publish, not re-run this pass.
Independent reproduction
None known. The build was verified from a fresh public clone (make check, exit 0).
Prior art and positioning
Multiparty session types and crash-stop session-type failure handling; the mpstthree library. The contribution is the paired complementary-not-confirmatory account with the sibling budget proof and its explicit NOT APPLICABLE cells.