argus/DESIGN-hosting-pact.md
Local Dev a45320db7d Initial commit — Silent Mode baseline (2026-07-29)
Snapshot of the decentralized-web stack at the point of the resolver+Theseus
rebuild deploy. Includes:

- Argus (BNS engine + resolver daemon + Sia gateway)
- AriadneResolver (Windows Inno installer bundle + Android APK sources +
  Firefox extension)
- TheseusNavigator (Electron browser)
- site/ (silentmode.st content, deployed to Sia at bns/silentmode/)
- design docs, roadmap, protocol spec

Secrets excluded via .gitignore: Argus/sia-s3.json, Argus/wallets.json,
Argus/ca/*.key,*.crt. Build outputs, node_modules, and bundled runtimes
also excluded.

Shipped hashes on dl.silentmode.st at this commit:
  AriadneResolver-Setup-0.1.0.exe    5bcb216eef31ea28ed767e4134ab74bd5ac69dfbd365fd249e9e6938e55c986a
  TheseusNavigator-Setup-0.0.1.exe   7c735e88bad2da3347145adba3016c8f626a18b8422289c8c6ba471972e2952b
  TheseusNavigator-0.0.1-portable.exe 008fd84445babeabb401b2bca40ea9466b24b0e6d6c85104da7640c5c5c84521
  ariadne-v0.2.apk                   635c8f04d44ef855a8390b9eeddb8cd2d50622e81cc4e5004e8daffc1bb0425c
2026-07-29 13:54:34 +02:00

90 lines
5.1 KiB
Markdown

# Argo — the hosting pact: dilution-pool incentives for serving the decentralized web
*Argo is the host network; the hosts who crew it are **Argonauts**. Part of the
Silent Mode stack (hub: `D:\Dev\SilentMode\README.md`).*
Status: design idea (July 2026). Not yet implemented. Companion to
[PROTOCOL.md](PROTOCOL.md); assumes BNS names on BCH and content on a storage
network (Sia, IPFS, or on-chain `h` records).
## The idea in one paragraph
A site owner funds a **pool** tied to their name's content (monthly / quarterly
/ yearly). Hosts **join permissionlessly** — no one selects them — by bonding a
small stake and proving they store/serve the content. Each epoch the pool pays
out, **split among all current provers**. More hosts → thinner slices; fewer
hosts → fatter slices. Replication count is not configured anywhere: it is the
*equilibrium* of pool size vs. hosting cost, discovered continuously by the
market. Paying more is the owner's only knob — and it directly buys more
redundancy and serving capacity. Client software suggests a price from the
median of on-chain host asks.
## How Sia works, for contrast
Sia is **renter-driven, closed-membership**: the customer's agent (`renterd`)
scans the host market, *selects* ~30 specific hosts, forms bilateral fixed-term
contracts with each, monitors them, and migrates shards when hosts die. Hosts
advertise general capacity and wait to be picked; they cannot volunteer for a
specific dataset. Repair requires the renter's agent to be online and funded.
## Why Sia's model is not enough (for websites)
1. **A manager must exist.** Sia heals because *renterd* notices dead hosts
and re-uploads. If the renter agent is offline or unfunded, redundancy
silently decays. The pool heals **without any manager**: a dead host stops
proving → its share flows to the survivors → each slice fattens → the pool
becomes more attractive → new hosts join. The noticing is done by
economics, not by an agent. This is the core automation the idea adds.
2. **Membership is closed.** In Sia, a host that *wants* to help serve a
popular site cannot join its contract set. In the pool, joining is the
default; the algorithm that "decides who hosts" is replaced by
self-selection under price pressure (the same open-entry mechanism as
Bitcoin mining: reward fixed, participants join until marginal profit ~ 0).
3. **No serving incentive.** Sia pays for *storage possession*, never for
*serving the public* — the gap that killed Skynet (decentralized storage,
centralized unpaid portals). The pool's payout can cover gateways/seeders,
the actually-scarce resource for websites.
4. **Designed for private data.** Sia encrypts client-side and hides data from
hosts — right for backups, unnecessary for websites, which are public
goods. Public content is exactly the case where open membership is safe:
there is nothing to leak, and anyone may legitimately serve it.
5. **Lifetime is administrative, not economic.** Sia contracts expire per
contract term. A pool's site lives exactly as long as someone values it
enough to fund it — a market-driven expiry that doubles as the namespace
garbage collection Namecoin lacked (cf. Kalodner et al. 2015).
## Known hard problems (and mitigations)
- **Sybil splitting** — one disk posing as N hosts to collect N shares.
Mitigate: per-host-unique erasure-coded shards (k-of-n), so each identity
must store distinct data; stake per identity; diminishing returns per new
host as slices thin.
- **Proof of possession** — challenge from a future block hash → Merkle proof
over the host's shard. Verifiable in a BCH covenant post-May-2025 limits
(clunky but plausible); v0 can verify in an auditable coordinator.
- **Proof of serving** — unprovable on-chain (true for Filecoin/Sia too).
Layered approach: watchtower spot-checks, client-side reputation, coordinator
attestation; shrink the trusted surface over versions.
- **Pool exhaustion** — funding dries up → hosts leave → site dark. Feature,
not bug (see 5 above), but resolvers should surface "pool low" warnings so
owners/fans can top up (anyone may pay into a pool — patronage built in).
## Sketch on BCH
1. Site → storage network → per-host shards (off-chain tooling).
2. Name's chain record: `{"cid"|"s3": ..., "pact": <pool id>}`.
3. Hosts post asks via beacon txs; wallets suggest the median (owner's knob).
4. Pool = covenant UTXO funded by owner (or anyone); hosts join by bonding
stake in a registration tx naming their shard commitment.
5. Per epoch: block-hash challenge → hosts submit proofs → covenant releases
the epoch tranche split among provers; missed proof = no pay (+ stake slash
on repeated failure).
6. Resolvers discover hosts from registrations and fetch from any of them.
## Version ladder
- **v0** — coordinator does audits + payouts openly on chipnet (trusted but
fully auditable; all money flows on-chain).
- **v1** — possession proofs verified by CashScript covenant; coordinator only
attests serving quality.
- **v2** — multi-watchtower serving attestation, coordinator eliminated.