4. Assumptions and threat model
This chapter states the conditions under which every guarantee in this document holds, the principles the rules are built on, the adversaries the protocol defends against, and the risks it accepts without defence. A guarantee stated anywhere in this document is conditional on the assumptions of section 4.1.
4.1 Assumptions
- The network is asynchronous: it delays, reorders, and drops messages, and liveness is guaranteed only after an unknown global stabilization time.
- At most
f = ⌊(n − 1)/3⌋ofnvalidators are Byzantine (N3f1), so n = 7 tolerates 2. - BLAKE3, Keccak256, Ed25519, secp256k1, P256, and BLS12-381 are unbroken.
- The settlement chain's own finality holds for credit imports.
- Every other party, including every node that is not a validator, is untrusted.
Indexers, gateways, and the history query tier are derived views, and are among those untrusted parties.
R-4.1. A derived view MUST NOT be treated as a trust boundary.
The obligations a derived view itself carries, including exposing the finalized height it reflects,
are in ../docs/history-query.md.
4.2 Design principles
This subsection is informative. The principles motivate rules that are stated normatively in later chapters.
- Every externally supplied value is adversarial. Every derived header field, including roots, targets, counts, hashes, and the active release, is re-derived by the verifier. Every proposer-chosen field, including the timestamp and the body, is validated against its constraints. A well-encoded field is never trusted.
- Three fault outcomes are never conflated: permanent invalidity, which rejects; transient local inability, which stays pending; and fatal local corruption, which stops and recovers. A storage read error is never a vote.
- Worst-case resources are reserved from the payload shape before any signature check or execution.
- Only what execution must prove is merkleized. Query indexes are never in a root.
- Validators are compact: state proportional to active records, logs windowed, history served from the store.
- Cheap checks precede expensive cryptography everywhere.
- The trust boundary is at the target. Sync sources and proof servers are untrusted; targets come from certified headers or pinned genesis.
- Canonical bytes have one encoding, decode with exact consumption, carry explicit bounds, and use architecture-independent widths.
- Determinism comes from flat order. Parallelism is an implementation strategy that must be result-equivalent.
- Calibration values are named placeholders until measured. This document invents no number; where a value appears it is a recommended default awaiting the calibration gate.
4.3 Adversaries defended against
Under the assumptions of section 4.1, the protocol defends against:
- a Byzantine proposer that consumes verification work or permanent bytes,
- a malicious client or gateway replaying, reordering, or forging witnesses,
- a compromised delegated key spending within its class,
- an untrusted relayer,
- a lying exporter, proof service, indexer, or query tier,
- under
DynamicReshareV1, a departing validator that goes offline early, or a dealer that equivocates after restart, - a username sniper after grace (accepted, stated),
- a fresh node fed a stale bootstrap list, up to the weak subjectivity of section 13.5: certificate verification of every observed finalization is what the protocol defends with, and a stale list leaves the joiner trusting its operator's choice of anchor.
4.4 Accepted risks
The following are accepted and stated, not defended against.
| Risk | What is accepted | Bounded by |
|---|---|---|
| Owner-quorum compromise or loss | Compromise or loss of a quorum of an account's owners, and for a 1-of-1 account its single key, before reconfiguration | Permanent loss of what that account controls, and nothing beyond it |
| Configuration divergence between chains | Divergence between an account's Tempo and Makechain configurations until its owners reconfigure on Makechain: a key removed on Tempo keeps its Makechain authority until then | The owners close the window in one Makechain block, and clients warn on divergence |
| Tempo identity compromise or Tempo safety failure | Compromise of Tempo's threshold identity, or a Tempo safety failure: forged headers can mint credits until governance pauses imports | Credit-mint safety is bounded by Tempo's own; the exposure is free Makechain usage rather than value, because credits are non-transferable and non-refundable |
| Past-epoch share compromise | A later compromise of a quorum of shares from any single past epoch, which forges certificates under the invariant group key | Remedy is a new chain, mitigated by mandatory erasure |
| Governance dishonesty | Dishonesty of Makechain's own governance multisig, and, if a governed grant allowance is ever introduced, of its spending authority | Not bounded within the protocol |
| Settlement asset failure | Issuer or depeg failure of the accepted settlement asset | Not bounded within the protocol |
| Funded growth | Growth of live state, validator memory, and bootstrap time with funded usage | Priced and rate-limited, never capped (chapter 9) |
| History-range loss | Either cause: both exporters fall behind by more than retained_marshal_blocks, after which validators have pruned the bodies and no queue ever received the range; or the exporters' queues, the store, and the mirror lose the same queued range together |
Bounded by the two copies of different form, the validators' retained window, the standby's independent queue, and its failure isolation from the active (chapter 17); a lost range is permanent |
| Object unavailability | Objects a commitment names may be unretrievable | Not bounded within the protocol; availability is never a consensus fact (chapter 17) |
| Transport denial of service | Transport-layer denial of service | Absorbed by external proxies |
| Block confidentiality | Confidentiality of anything in a block | Not bounded within the protocol; every block field is public (chapter 17) |
| Username front-running | Front-running of new username claims by a gateway or proposer | Not bounded within the protocol |