Tidemark

Security model and limits

What Tidemark protects against, what it assumes, and where it can be fooled.

What you trust

ComponentAssumptionMitigation
RPCServes the real chainfinalized reads, a second --rpc cross-check, and the ledger itself hashing deployed bytes
RulesCatch the change you care aboutversioned, deterministic, tested against patched backdoors; heuristics, not proofs
ReviewersAct independentlyeach co-signer re-runs the review; quorum is only as independent as the people
Registry authorityAdds honest reviewersreviewer changes bump config_version and late approvals are shown
Ledger programIts code is what was reviewedclients print its upgrade authority and warn on redeploys; multisig then freeze
AI judgeNothingadvisory only, can only raise risk, never part of a hash

Hostile binaries

Programs under review are attacker-controlled. Inputs over 16 MiB are refused, the diff has a deadline, scans have caps, and when a limit is hit the report says so with TM-PARTIAL instead of passing quietly. The ELF and ledger parsers are model-checked with Kani.

Known limits

  • Keys computed at run time or read from an account are not constants and are not found.
  • Malicious logic added inside an existing handler, or a reused CPI call site, may only show in the hunks.
  • Merged error returns after a compiler change can raise a false TM-CHECK-GONE.
  • A same-source rebuild from SBPF v2 to v3 can raise a false TM-CHECK-GONE.
  • Non-Anchor programs get the bytecode rules but no per-handler check counts.
  • On-chain ELF hashing costs about 0.5 compute units per byte, so programs over about 2.7 MB cannot be attested.

Found something else? Open an issue.