Overview

Witness network

Independent witnesses co-sign your history's growth, so hiding or rewriting the recent past stops being deniable.

Receipts verify offline, forever. The one thing an offline check cannot prove is that you are looking at the latest history.

Two attacks exploit that gap, and both are free:

AttackWhat it looks like
WithholdingRecent records "don't exist" — you get a truncated history that verifies cleanly
EquivocationTwo verifiers are shown two different histories, each internally consistent

Witnesses co-sign every step forward. Rolling history back then means contradicting signatures sitting in append-only logs — the rollback stops being a deletion and becomes evidence.

How it works

An agent emits one aggregate — head, count, cumulative — to a set of independent witnesses. Each cosigns only monotone growth, so presenting the same index with a different head yields a publishable duplicity proof instead of a signature. The finalized anchor is then read offline by watchers and verifiers alike.

the anchor loopno per-call data leaves home
The agent's private spend chain

Every settled call appends to a signed hash chain. What leaves: one aggregate — head, count, cumulative — committing to all of it, revealing none of it.

one signed anchor ⟨seed, head, k, cum, τ⟩
witness A
operator 1 · US
checks growth · cosigns · logs
witness B
operator 2 · EU
checks growth · cosigns · logs
witness C
operator 3 · APAC
checks growth · cosigns · logs
each accepts only monotone growth — same index, different head ⇒ a publishable duplicity proof
t-of-N cosignatures + log inclusion proofs
Finalized anchor

Rolling history back now requires contradicting a quorum's signatures in append-only logs — a rollback is no longer a deletion, it is evidence.

read by anyone
watchers
scan for forks and silence — the market is one
verifiers
offline, free — now with fresh · stale · unanchored
verification stays offlinerollback ⇒ signed contradictiontwo histories ⇒ duplicity proofwitnesses see no per-call rows

Start here

Two things never change:

  • Verification stays offline and free. An anchor adds one labeled fact — fresh, stale, or unanchoredbeside the verdicts, never inside them.
  • Witnesses see aggregates only. No per-call rows, no counterparties, no tool names. Your private log never leaves your infrastructure.