Skip to content

Swarm-wide verification collection and trust graph modeling #152

@careck

Description

@careck

Context

After #150 lands, each peer stores local verified_by records — "which of my direct peers vouched for this op." But each node only sees one hop of the trust chain. The workspace owner has no way to see the full verification path from author through the chain of vouches.

Proposal

Allow workspace owners to send a verification collection request through the swarm via the existing delta sync mechanism. Each peer responds with their local verified_by records. The owner aggregates these into a trust graph per operation showing the full vouching chain.

Security model

  • Only the owner can send a collection request (enforced by signature verification — peers reject requests not signed by the owner)
  • Requests travel inside deltas — encrypted between each pair of peers like any other delta payload. Each peer can read the request (to act on it and forward it), but it is never plaintext on the wire.
  • Responses are double-encrypted — the response content is encrypted to the owner's public key (inner layer), then wrapped in normal delta transport encryption (outer layer). Intermediate peers can decrypt the delta envelope but cannot read the response payload. Only the owner can decrypt the inner layer.
  • Uses the same request/response messaging primitive introduced by swarm topology discovery (Swarm topology discovery -- owner queries peer identities and connections #151)

What this enables

  • Trust graph construction — the owner combines verification records from multiple peers to build a directed graph: author -> first-hop verifier -> second-hop -> ... extending trust reasoning beyond what any single node knows locally
  • Verification auditing — the owner can see which operations have strong vouching chains vs. weakly verified ops
  • Anomaly detection — gaps or inconsistencies in the vouching chain may indicate tampered or unverified operations

Open questions

  • Should collection be scoped (e.g., "verification records for ops since timestamp X") or always full?
  • How to handle offline peers? Store-and-forward via relay, or retry on next sync?
  • Should the assembled trust graph be persisted or computed on-demand from collected records?

Dependencies

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions