Open Trust Commons · OTCS

Security

Version 0.1 · Status: EXPERIMENTAL

A registry of trust systems is itself worth attacking. Whoever corrupts the record corrupts every decision made from it.

So the threats are named here, the defences are published, and the gaps are admitted. If you can build an attack these controls miss, that is the point — tell us (§5).


1. What we expect people to try

Attacks on the record

Attacks on the supply chain

Attacks on governance

Attacks by leaving

2. What stops them

AgainstControl
ImpersonationMaintainer keys and named people listed in each entry. Changing them is a proposal, not an edit
TamperingAn append-only log where each entry is chained to the one before, plus content hashes on referenced files
Rewriting the pastDisputes and corrections are new records. History is never edited. RETRACTED is a state, not a deletion
Artifact substitutionSigned commits and tagged releases; entries reference files by hash, not only by address
Fake ownershipThe canonical location and the maintainer key must agree. If they do not, the entry is flagged
Fake independenceDisclosed relationships — shared maintainers, funding, codebase. An affiliated evaluation cannot be INDEPENDENTLY_TESTED (EVIDENCE-MODEL.md §3)
Fake accountsOne verified human per individual vote; project votes signed by a named representative (VOTING.md §7)
Name squattingFirst registration is recorded, not owned. Collisions go to the dispute process on dated evidence
Emergency abuseEmergency actions are scoped, logged, and expire in 7 days unless approved normally (GOVERNANCE.md §8)
CompromiseA REVOKED state. Revocation adds a marked cut to the record; it never rewrites it

GitHub is where we collaborate. It is not the trust model.

The trust model is: signed identities, a chained log, evidence levels, disclosed relationships, and a dispute process. Any of those can be moved elsewhere.

3. What this does not defend against

The honest limits at version 0.1. This section matters more than the one above it.

The log proves less than people assume

It provides tamper-evident sequence integrity. Never "immutable evidence."

It proves that committed records form a consistent sequence and that none was altered afterwards. On its own it cannot prove:

Each of those needs the surrounding controls — signed identities, outside timestamps, disclosure rules — and some of them are still open. A maintainer compromised between two commits is detectable afterwards, not preventable.

Identity is weak

Version 0.1 identity is declared keys and named people. Adequate at this scale, insufficient against a determined adversary running fake accounts. Strengthening it is an open proposal. It is not scheduled against a version number, because naming one would promise a date the work does not have.

Deep collusion survives

A structure built to look clean on every individual check can defeat checking things individually. Disclosed relationships raise the cost. They do not close the hole. Analysing groups rather than pairs is future work.

Anything that never enters the record

We record what enters the record. Private coordination that never surfaces is out of scope. The mitigation is that such coordination carries no formal weight (GOVERNANCE.md §14) — not that we can see it.

4. Who responds

StageWho
Now (CHARTER.md §7 Stage 1)The founder, bound by the emergency rules in §2
From Stage 2A designated group of at least two, with no single organisation holding a majority

5. Reporting something

Found a vulnerability in the protocol, the formats, the tooling, or the governance mechanics? Use the private channel (COMMUNICATIONS.md §6).

Reports are acknowledged in the log after remediation, with an appropriately redacted public record.

An attack on the model is as valuable as an attack on the code. If you have found a way to game these rules — a strategy the controls in §2 do not catch — that is a security report, and it goes to the same place.