Skip to content

Proof-of-Trust consensus

Quidnug does not produce a single globally-agreed chain. Each node tiers incoming blocks based on its own trust in the validator:

TierConditionBehavior
TrustedTrust in validator ≥ domain thresholdAdded to main chain; transactions applied
TentativeBetween distrust and trust thresholdsStored separately; not built on
UntrustedBelow distrust thresholdOnly trust-edge data extracted
InvalidCryptographic verification failsRejected outright

Alice trusts validators A and B. Bob trusts A and D. They agree on A-sealed blocks. They disagree about B’s and D’s, which is correct, because they disagree about those parties.

This is not Byzantine Fault Tolerance. It is trust-aware consensus where the observer’s context determines acceptance. It fits domains where “one chain for everyone” isn’t the goal, private, consortium, or federated deployments, where parties legitimately disagree about who to trust.

When your problem has this property: the same event should be accepted by some parties and not others, because they do not agree on who is authorized to speak. Examples:

  • A medical consortium where different hospitals trust different CA roots, an attestation signed by one root should be accepted by its customers and rejected by others.
  • A cross-jurisdictional election where different counties trust their own officials, a precinct block from county A’s official should land in county A’s chain and be tentative (or ignored) from county B’s view.
  • A vendor-neutral fraud signal consortium where merchants trust their own rankings of reporters, one merchant’s “confirmed fraud” signal may be another’s “unverified noise”.
  • You need a single globally-agreed ledger. Use a BFT or Nakamoto-style chain.
  • You have no initial trust seeding and no out-of-band channel to bootstrap relationships.
  • You require a single universal score for a subject, Quidnug deliberately refuses to produce one.

See also the system overview and rogue-node security write-up.