2026 04 13_storage_system_comparison_for_verse - mark-ik/graphshell GitHub Wiki

Storage System Comparison For Verse

Date: 2026-04-13 Status: Research / synthesis Scope: Compares Syncthing, Tahoe-LAFS, Storj, and Filecoin against Verse's decentralized storage-bank direction. Clarifies which ideas Verse should adopt for bilateral/private storage, opaque encrypted third-party hosting, community durability, optional incentive layers, and the fit of specific mechanism and crate choices for a Rust implementation.

Related docs:


1. Framing

Verse is not trying to become "Dropbox on a blockchain" or a generic storage coin. The more precise goal is:

  1. users can privately replicate data across their own devices or trusted peers
  2. communities can pool storage for shared durable services such as rooms, workspaces, files, capsule content, and similar hosted state
  3. providers can help store encrypted or fragmented data without necessarily gaining permission to read it
  4. public or community service should be auditable and optionally incentivized
  5. private self-backup should remain visible and accountable but should not automatically mint public credit

This note compares four relevant systems because each one solves a different slice of that problem.


2. Executive Judgment

The strongest hybrid for Verse is:

  • Syncthing-like for bilateral and personal device replication
  • Tahoe-LAFS-like for encrypted opaque hosting and capability-oriented access
  • Storj-like for audits, accounting, and untrusted-host durability mechanics
  • much lighter than Filecoin for the first serious implementation, while preserving the option to borrow stronger proof or settlement ideas later

The key design conclusion is that Verse should treat storage as three distinct trust zones:

Trust zone Examples Audit Credit
Personal / bilateral my phone, my laptop, my friend hosting my backup yes no by default
Community service room state, shared workspace, capsule content, shared files yes yes, if receipt policy allows
Open public market anonymous or pseudonymous third-party providers yes, stronger optional later

Trying to collapse those into one model creates bad incentives and unnecessary complexity.


3. Syncthing

3.1 What it is

Syncthing is a local-first file replication system for devices and explicitly trusted peers. It focuses on correctness, visibility, and user consent rather than markets or public service incentives.

3.2 What it gets right

  • clear device identity and trust establishment
  • direct replication without central coordination
  • strong visibility into what is present, missing, out of sync, or stale
  • practical offline-first behavior
  • no attempt to force an economy where one is unnecessary

3.3 What it does not solve

  • opaque third-party hosting at scale
  • untrusted public providers
  • community storage pools for shared services
  • receipts, payouts, or shared durability economics

3.4 Relevance to Verse

This is the best prior art for Verso bilateral storage visibility. The right lesson is not "copy Syncthing's protocol" but "keep the bilateral tier boring, inspectable, and non-financial."

If a user backs up their own devices, or a small trusted cluster shares storage informally, the system should track:

  • bytes held
  • what is replicated where
  • challenge/verification status
  • imbalance and withdrawal

But it should not automatically create public storage credit from those relationships.

3.5 Verse lesson

Private should mean accountable but not necessarily incentivized.


4. Tahoe-LAFS

4.1 What it is

Tahoe-LAFS is a secure distributed filesystem built around client-side encryption, capability-based access, and splitting data across multiple storage nodes.

4.2 What it gets right

  • data is encrypted before storage
  • storage providers can hold opaque shares without needing plaintext access
  • capability-bearing references control access
  • erasure coding and share distribution are first-class
  • strong alignment with least-authority principles

4.3 What it does not solve

  • broad incentive design
  • public community accounting
  • modern app/service durability economics
  • integrated social or governance layer

4.4 Relevance to Verse

This is the strongest precedent for your intuition that "the data you host should be encrypted and sharded without the provider needing the owner's permission to read it." That is a real and proven pattern.

Verse should adopt the following posture from Tahoe-LAFS:

  • store ciphertext or encrypted fragments by default for non-public service objects
  • verify by hash/CID, not by semantic inspection
  • separate storage authority from read authority
  • keep reconstruction and decryption at the edge where the holder has the right capability or membership proof

4.5 Verse lesson

Opaque encrypted hosting is realistic and should be the default model for shared private/community data.


5. Storj

5.1 What it is

Storj is a decentralized object-storage network where encrypted, erasure-coded fragments are stored on independent nodes while coordinating satellites handle metadata, audits, and payouts.

5.2 What it gets right

  • encrypted client-side storage on untrusted hosts
  • practical erasure-coded fragment distribution
  • audit and payment mechanisms tied to availability and service
  • clear distinction between storage nodes and coordination/control functions

5.3 What it does not solve cleanly for Verse

  • community sovereignty; satellites are a major coordinating dependency
  • room/workspace/community-governed service semantics
  • peer-local or small-community simplicity

5.4 Relevance to Verse

Storj is useful because it shows that the combination of:

  • encrypted fragments
  • audits/challenges
  • provider accounting
  • payout eligibility

can work in practice.

But Verse should avoid adopting Storj's architectural center of gravity. Verse wants the coordination layer to be reconstructable from receipts, announcements, heartbeats, and community policy rather than from a privileged satellite role.

5.5 Verse lesson

Borrow Storj's audit/accounting discipline, not its central coordination assumptions.


6. Filecoin

6.1 What it is

Filecoin is a storage market with on-chain commitments and cryptographic proofs designed for large-scale, adversarial, long-term storage.

6.2 What it gets right

  • serious durability incentives
  • explicit collateral and slashing logic
  • strong proof culture around storage commitments
  • credible public-market behavior under adversarial assumptions

6.3 What it does not solve well for Verse's first implementation

  • small trusted groups
  • low-friction self-hosting
  • simple room/workspace/community service backing
  • comprehensibility for users who just want to pool storage for shared state

6.4 Relevance to Verse

Filecoin matters as a reference point for:

  • bond/collateral thinking
  • service-level reliability expectations
  • the distinction between accounting and settlement

But it is too heavy to be the default mental model for Verse. The Verse storage bank should remain:

  • off-chain-first
  • receipt-ledger-first
  • payout-second
  • optional for communities that want incentives at all

6.5 Verse lesson

Do not import full public-market complexity before the community-scale service model is proven useful.


7. Comparison Matrix

Property Syncthing Tahoe-LAFS Storj Filecoin Verse target
Trusted-device sync strong weak weak weak strong via Verso
Opaque encrypted hosting low strong strong mixed strong
Erasure-coding-ready low strong strong strong strong, staged
Public incentive layer none none yes yes optional
Community-governed shared services low low low low core requirement
Audit/accounting moderate moderate strong very strong strong
Simplicity for users high moderate moderate low moderate
Good first implementation model yes for bilateral yes for opaque storage partial no hybrid

8. What Verse Should Actually Do

8.1 Bilateral tier

For my devices and trusted peers, Verse/Verso should be Syncthing-like:

  • tracked
  • challengeable
  • inspectable
  • imbalance-aware
  • no automatic public credit

This tier can still support explicit private agreements and even local bookkeeping, but there is no reputation stake, so there should be no default public reward.

8.2 Community service tier

For shared rooms, shared workspaces, files, capsule bundles, or similar durable objects, Verse should be Tahoe-like plus Storj-like:

  • encrypted or encrypted-fragment payloads by default unless intentionally public
  • CID-addressed storage objects and fragment manifests
  • availability challenges and repair incentives
  • receipts for storage service and retrieval service
  • service-class policy to decide what deserves priority

This is the tier where the storage bank actually matters.

8.3 Open-market tier

For large public communities or anonymous providers, Verse may later borrow more from Filecoin-style collateral and stronger proof semantics. That should remain optional until the lower-friction community model is actually useful in practice.


9. The "Useful Data" Problem

If a provider cannot read the payload, how can the network know the data is worth storing?

The answer is: the storage layer should not attempt to infer semantic usefulness from ciphertext. Instead it should use policy and observed service value.

Useful signals include:

  • declared service class
  • community pinning
  • allocation priority
  • retrieval receipts
  • hold duration
  • under-replication status
  • governance policy for retention and pruning

The system does not need to know "this room transcript is philosophically important" at the storage layer. It only needs to know:

  • this object backs a shared room
  • the community marked it Standard or Critical
  • it is under-replicated
  • it is being retrieved and depended on

That is enough for a storage bank.


10. The Applet/Room Distinction

Verse should keep two different storage subjects separate:

  1. host capability package
  2. shared service instance

Examples:

  • Matrix applet package: host/runtime capability, more like software distribution
  • Matrix room state/history: persistent shared service object
  • Gemini renderer capability: host/runtime capability
  • Gemini capsule bundle: shared or public content object

The storage bank should focus primarily on persistent service objects, not on automatically turning every installed applet into a streamed network artifact.

That means the important storage-bank question is usually not "how do we ship Matrix?" It is "how do we durably back this particular room, workspace, or hosted object?"


11. Recommended Verse Storage Posture

11.1 Defaults

  • bilateral/private storage: tracked, auditable, no credit by default
  • community storage: auditable, optionally credit-bearing, community policy controlled
  • payout: disabled by default; receipt and reputation accounting still active
  • encryption: default for non-public service objects
  • fragmentation: start with full-copy replication, keep interfaces erasure-coding-ready

11.2 Optional later layers

  • transferable storage tokens if a real coordination problem emerges
  • stronger collateral/slashing for anonymous public providers
  • more formal proof-of-storage machinery if open-market durability becomes central

11.3 Explicit non-goals for the first serious storage-bank model

  • no mandatory token economy
  • no assumption that all useful hosting is public-market hosting
  • no need to expose plaintext to providers for the network to decide it is worth retaining
  • no conflation of installed host capability with the durable shared object that capability operates on

12. Synthesis

The right reading of the comparison is:

  • Syncthing explains the personal and trusted-peer tier.
  • Tahoe-LAFS explains how opaque encrypted community storage can work.
  • Storj explains how audit and payout mechanics can work around opaque fragments.
  • Filecoin explains what a full public market looks like, and why Verse should not start there.

Verse should therefore behave less like a storage coin and more like a community durability fabric with optional incentives layered on top.

That framing fits the rest of the architecture:

  • Graphshell remains the host.
  • Verso remains the bilateral named-peer and personal-device layer.
  • Verse remains the community-scale durability, discovery, and optional incentive layer.

The result is simpler and more realistic than a one-size-fits-all storage economy, while still leaving room for a stronger market model if the project ever truly needs it.


13. Critique of the "DSN Blueprint" Framing

A useful refinement is to describe Verse as a three-zone storage architecture rather than a single decentralized storage network turning disk into one commodity class.

The proposed blueprint gets several things right:

  • encrypted, opaque fragments are the correct model for community storage
  • signed receipts and audit trails are more realistic than immediate on-chain settlement
  • a lighter-weight accountability model than Filecoin is a better fit for Verse

But four corrections matter.

13.1 It is not one storage market

Calling the whole system a market or commodity layer makes the private and bilateral tier look more economic than it should be.

Verse needs three different postures:

  • personal / bilateral replication
  • shared-service durability
  • optional open public hosting

Only the middle and later the third tier need a genuine storage-bank or market vocabulary.

13.2 "Proof-of-Retrievability" is too strong for v1

Full PoR / PoRep language implies stronger cryptographic guarantees than the current Verse design actually requires.

The more accurate first-implementation model is:

  • content-addressed integrity
  • challenge-based availability verification
  • real retrieval receipts
  • signed append-only accounting

Merkle commitments can help organize proofs of blob/chunk layout, but by themselves they do not prove that a provider is still storing the data over time.

13.3 Bilateral trust should stay on iroh

The current architecture already has the correct transport split:

  • iroh for bilateral named-peer trust and device sync
  • libp2p for community-scale discovery and swarm behavior

Using libp2p as the default private/bilateral layer would blur a boundary that is currently clean in VERSO_AS_PEER.md.

13.4 JWT is the wrong shape for receipts

Receipts are not web bearer tokens. They are signed evidence records.

The better conceptual split is:

  • signed domain receipts for accounting and audit
  • UCAN for delegation and capability transfer
  • optional VC-like attestations for portable provenance

JWT would import unnecessary web-auth assumptions into a system that already has a cleaner cryptographic boundary.


14. Refined Verse Blueprint

The improved blueprint is:

14.1 Personal / bilateral zone

Use iroh plus explicit trust store semantics.

  • own devices and trusted peers
  • tracked, inspectable, challengeable
  • no public credit by default
  • strong fit with the existing Verso layer

14.2 Shared-service zone

Use encrypted content-addressed blobs or fragments to back durable objects.

  • room state/history
  • workspaces and graph projections
  • capsule bundles and feed snapshots
  • shared files and attachments
  • applet state checkpoints where applicable

This is the real storage-bank layer:

  • availability challenges
  • retrieval receipts
  • repair incentives
  • service-class policy
  • allocation and retention controls

14.3 Open public hosting zone

Only later, if needed:

  • anonymous or pseudonymous providers
  • stronger collateral and slash conditions
  • more formal proof machinery
  • DHT-heavy placement and provider discovery

This is where Filecoin-like lessons become more relevant, but it should not be the first operational target.


15. Mechanism and Crate Fit for Rust

The right Rust stack should follow the architectural boundaries already present in Verse and Verso rather than flattening them.

15.1 Networking

Recommended fit:

  • iroh for bilateral/private transport and direct trusted-peer replication
  • rust-libp2p for community-scale provider discovery, pubsub, and swarm participation when the community layer is actually activated

This preserves the current split described in VERSO_AS_PEER.md and related Verse docs.

15.2 Encryption and capability-oriented access

Recommended fit:

  • aes-gcm or chacha20poly1305 for opaque encrypted payloads or chunks
  • rs-ucan for delegation/capability expression
  • crypto_box-style key wrapping for encrypted object/key handoff, matching patterns already used in the session capsule plan

This aligns better with Verse's existing capability language than JWT-style bearer tokens.

15.3 Content identity and local state

Recommended fit:

  • cid plus multihash-compatible content addressing for durable object identity
  • redb or fjall for local durable state, matching existing documentation posture more closely than a pivot to sled

15.4 Erasure coding

The primitive is right; the crate should be chosen only after a focused dependency audit.

Recommended posture:

  • design Verse around a FragmentManifest and a CodingScheme abstraction first
  • start with full-copy replication as already documented
  • leave room for Reed-Solomon / Zfec-compatible erasure coding later
  • avoid prematurely hard-coding the architecture around one crate name before validating maintenance posture, portability, and WASM implications

15.5 Verifiability and receipts

Recommended fit:

  • Merkle or manifest commitment structures are useful for chunk layout and integrity proofs
  • challenge-response availability checks are still required
  • signed retrieval receipts remain the strongest practical signal of actual usefulness and service value

In other words, Merkle proofs help; they do not replace availability and retrieval evidence.


16. Recommended Rust Blueprint Table

Concern Recommended fit Why
Bilateral/private transport iroh Matches Verso's existing trust and sync boundary
Community transport rust-libp2p Useful for Kad/GossipSub once community swarms matter
Opaque payload encryption aes-gcm or chacha20poly1305 Good AEAD choices for encrypted blobs/fragments
Capability delegation rs-ucan Better semantic fit than JWT for access rights
Key wrapping / object sharing crypto_box-style flow Already aligned with existing capsule-sharing patterns
Local durable storage redb or fjall Closer to existing Graphshell/Verse documentation
Content identity cid Fits VerseBlob and content-addressed storage
Erasure coding abstract behind CodingScheme Keeps architecture flexible while v1 stays full-copy
Accounting signed domain receipts Receipts are evidence, not auth tokens

17. Final Guidance

The right implementation posture is:

  • do not market the whole thing as one storage commodity system
  • do not overclaim PoR/PoRep properties before the protocol actually has them
  • do not replace iroh with libp2p in the bilateral tier
  • do not use JWT as the core receipt primitive
  • do use encrypted opaque fragments, capability-oriented access, signed receipts, and content-addressed durable objects

That refined blueprint is both more realistic and more compatible with the Verse architecture already described in the active docs.

⚠️ **GitHub.com Fallback** ⚠️