Human communities have always propagated information through gossip.
A person shares news with their close circle, who share it with theirs, creating epidemic spread through a trust-weighted social graph. This mechanism has three properties that formal gossip protocols seek to replicate.
Trust filtering
Information from a close friend carries more weight than from a stranger. A claim about person X means different things coming from someone 1 hop versus 4 hops away.
Contextual preservation
Gossip within a community preserves context: who said what, to whom, under what circumstances. Gossip without context is slander; with context it is signal.
Natural redundancy
Important information reaches you through multiple independent paths. If one friend is unavailable, another provides the same update. The redundancy is proportional to the information's social relevance.
These are not abstract ideals. They are how every village, every friend group, every community has ever worked. Then social life moved online.
Centralized platforms didn't just fail to preserve these properties, they engineered the opposite.
On Twitter, Facebook, and Instagram, an algorithm decides what you see, optimized for engagement, not trust. A stranger's viral post reaches you before your friend's update.
A post meant for close friends appears alongside strangers. Instagram flattens intimate moments into public performance. Without context, communication becomes performance.
Your data, relationships, and entire history live on one company's servers. If they ban you, change terms, or shut down, everything disappears. There is no fallback.
Billions of people communicate through infrastructure designed to extract attention, not preserve relationships.
Decentralized protocols emerged to give that control back to users. But even then, everything is routed through servers that decide what gets stored, served, and censored.
Storage control
Servers decide which data to store and for how long.
Distribution control
Servers decide which data to serve and to whom.
Censorship capability
Operators can silently drop content or suspend accounts.
Economic leverage
Users must pay operators or accept their terms.
This recreates the platform dependency that decentralized protocols were designed to eliminate. The user's social graph lives on infrastructure they do not control.
What if the social graph itself was the infrastructure?
We propose a local-first architecture where the network's social structure is its infrastructure. Your relationships become your storage network, your trust graph becomes your delivery system, and relays are demoted to optional accelerators.
Primary storage resides on the user's device and their close WoT peers (1-2 hops).
Primary retrieval queries the trust network first, not relay infrastructure.
Relay role is demoted to optional discovery and curation, useful for beyond-graph reach, not required for existence.
Data is self-authenticating and portable. Every event is signed by the author's keys, convertible to and from ActivityPub, AT Protocol, and other decentralized formats.
How the protocol works
Storage Pacts
A storage pact is a bilateral agreement between two nodes to store each other's events. Formation follows a three-phase negotiation: Request, Offer, Accept. Pact partners are verified through periodic challenge-response exchanges: hash challenges prove data is available without transferring full events. Each node maintains around 20 active pacts (floor 12), renewed by default; a failing partner is simply dropped and replaced.
Tiered Retrieval
When a node needs to retrieve events from a followed author, the protocol attempts delivery through a cascade of increasingly expensive paths: local pact storage, then a direct encrypted query to the author's pact partners, and finally relay fallback as a last resort. Each tier is attempted only when the previous fails, creating a natural cost gradient that keeps most traffic within the social graph.
Gossip Routing
As an optional censorship-resistance extension, the protocol's WoT-filtered forwarding mirrors how humans selectively share: active pact partners get highest priority, then 1-hop WoT peers, then 2-hop peers if capacity permits. Unknown sources are never forwarded: strangers' gossip stops at your door. The primary read path is simpler: data requests are NIP-44-encrypted directly to a chosen storage peer, so reader privacy comes from keeping request metadata among your web-of-trust peers rather than on public relays, not from hiding who is asking.
What the protocol enables
Multi-device sync without sharing keys
Each device gets its own subkey, delegated from your root identity. Your phone, laptop, and browser extension all sign events independently, no private key copying, no single point of compromise. When devices come online, they reconcile via checkpoints: a lightweight Merkle proof that each device saw the others' latest events. Conflict resolution is automatic. If two devices edit your profile simultaneously, fields merge by latest timestamp. Follow lists merge by set operations. Events chain by per-device sequence numbers, making withholding and reordering detectable in real time.
Encryption with purpose-built key hierarchy
Your root key stays cold, in a hardware wallet or air-gapped machine. From it, the protocol derives purpose-specific keys: device keys for everyday events and a governance key for profile and follow changes. Encrypted messages use a dedicated DM key derived from its own independent seed, so compromising your root key never exposes past DMs. That DM key rotates every 90 days, limiting the exposure of any single period: this is periodic key rotation, not forward secrecy. Not every device needs DM access; your desktop and phone might decrypt messages, while your browser extension only posts. If a device is compromised, revoke its subkey. Your identity, your DMs, your social graph: untouched.
Data portable across protocols
Every event is self-authenticating, signed by the author's keys, verifiable by anyone. This makes cross-protocol bridging straightforward: Nostr events convert to ActivityPub activities for Mastodon, to AT Protocol records for Bluesky, and to RSS/Atom feeds for syndication. Your identity bridges through signed attestations linking your secp256k1 pubkey to ActivityPub actor URIs or AT Protocol DIDs. You can export your complete history as a signed archive, tamper-evident, importable into any compatible client.
Three-tier feed model
Not all relationships are equal, and the protocol knows it. Your Inner Circle (mutual follows with active pacts) gets continuous, real-time delivery. Your Orbit (high-interaction authors and socially-endorsed discoveries) gets periodic polling. Your Horizon (2-hop graph and relay discoveries) gets on-demand fetching. The tiers emerge from your actual social behavior: reply, repost, and react to someone enough, and they drift closer. Stop engaging, and they fade. No algorithm decides this. Your attention does.
Social recovery
Lose your root key? Designate recovery contacts from your Web of Trust. If the worst happens, N-of-M threshold verification kicks in: your contacts verify your identity out-of-band, publish recovery attestations, and after a 7-day timelock, giving the legitimate owner time to cancel, your new key takes over. No seed phrases to forget. No centralized recovery service. Just the people who know you.
Where Gozzip fits
Gozzip is not a replacement for existing protocols. It is a missing layer, purpose-built to complement what Nostr and BitChat already do well, and to solve problems that earlier peer-to-peer designs like Scuttlebutt left open.
Complementing Nostr
Nostr gave the decentralized world something critical: a simple, relay-based protocol where identity is a keypair and events are self-authenticating. But Nostr's relay model means your data lives on servers you don't control, with no guarantee of persistence. Gozzip adds the storage layer: bilateral pacts between peers who know each other, enforced by cryptographic challenges, reciprocal but with no volume matching. Your Nostr identity works directly, same secp256k1 keys, same event format. Gozzip doesn't fork Nostr. It gives Nostr users a way to own their data without depending on relay operators.
Complementing BitChat
BitChat solves a different problem: encrypted peer-to-peer messaging over Bluetooth Low Energy, with Noise Protocol handshakes, compact binary framing, and multi-hop relay up to 7 devices. It excels as a real-time mesh layer: ephemeral, local, designed for scenarios where there is no internet. Gozzip adds persistence on top: storage pacts that keep your data alive when you go offline, a Web of Trust that filters what propagates, and a social graph that serves as long-term infrastructure. BitChat handles "send a message to someone nearby right now." Gozzip handles "own your social life permanently." Together they form a complete stack from Bluetooth radio to sovereign social media.
What Scuttlebutt got right, and where it stopped
Secure Scuttlebutt pioneered the idea that social networks could run on peer-to-peer gossip without centralized servers. Gozzip owes a conceptual debt to that work. But the architectures diverge in three critical ways. First, identity: SSB ties ed25519 feeds to single devices, lose the device, lose the identity. Gozzip uses secp256k1 with a delegation hierarchy, so your root key stays cold while device subkeys handle daily operations. Second, replication: SSB pub servers replicate data unilaterally: they store what they want, for whoever they want, with no obligation. Gozzip enforces bilateral storage pacts with proof-of-possession challenges, making free-riding structurally impossible. Third, gossip boundaries: SSB has no explicit trust limit: gossip propagates indefinitely through the network. Gozzip restricts forwarding to a 2-hop Web of Trust, preventing the unbounded data growth that made SSB pubs collapse under their own weight.
Emergency resilience
The BitChat integration also enables panic wipe: a configurable trigger (triple-tap, gesture, or decoy PIN) that destroys all local keys, cached events, and state. Your published data survives on pact partners and relays. Your identity survives in cold storage. Recovery is: access root key, publish a new device delegation, fetch from storage peers, and you're back. Optional decoy mode wipes to an innocuous profile. The adversary sees a normal app with harmless content.
Each protocol solves a hard problem well. Gozzip connects them into a stack where the social graph is the infrastructure: from identity to storage to transport.
How it compares
| Nostr | Mastodon | Gozzip | |
|---|---|---|---|
| Identity | secp256k1 keypair | user@instance (domain-bound) | secp256k1 + key hierarchy |
| Data lives on | Relay servers | Home instance (PostgreSQL) | Your device + friends' devices (~20 pact partners) |
| Who controls | Relay operators | Instance admin | You + bilateral pact partners |
| Redundancy | Manual multi-relay publishing | None - single home instance | ≈20 active pacts (floor 12), renewed by default |
| Censorship resistance | Individual relays can drop events | Admin can suspend/delete | No single point - data on 20+ WoT peers |
| Offline support | Not supported | Not supported | Store-and-forward via pact partners while you are offline |
| Read privacy | Relay sees all subscriptions | Instance admin sees all activity | Encrypted requests stay within your web-of-trust peers |
This architecture still needs some participants to be reliably online. These are not public servers or relays. They are friends running Gozzip on a desktop, a home machine, or a small VPS. They might be you, with a multi-device setup where one device stays on. The difference from today's protocols is structural: pact partners operate under bilateral obligations with people they know, enforced by challenge-response, not under unilateral control of a platform operator. The hard problems remain. Graph bootstrap for new users requires initial relay dependence. DM key rotation limits exposure but is periodic key rotation, not forward secrecy. These are engineering challenges, not architectural ones.
The infrastructure exists, but it is owned by the social graph.
The design of this protocol is not merely inspired by human social dynamics; it is structurally isomorphic to them.
Robin Dunbar's research identifies fractal social layers: ~5 intimate contacts, ~15 close friends, ~50 good friends, ~150 casual friends, each layer roughly tripling in size and halving in intimacy. Each protocol primitive maps to an observable pattern in how humans form communities, maintain relationships, and propagate information.
The protocol formalizes this as storage pacts: bilateral agreements where both parties store each other's events, each up to a per-partner cap. There is no volume matching: a prolific poster and a quiet lurker can pact freely, because what keeps the relationship healthy is reliable storage, not symmetric output. Reliability is the currency; a partner that stops delivering is simply replaced.
Each node maintains per-peer reliability scores from a rolling 14-day window of challenge-response results, and the score is presence-aware: a partner is judged only while it is actually online, so a mostly-offline mobile Witness is never punished for sleeping. Scores are private: each node computes its own assessment. There is no global reputation score. The network topology is the incentive structure.
The protocol formalizes this as guardian pacts: an established user voluntarily stores data for one untrusted newcomer outside their Web of Trust. The pay-it-forward framing is deliberate: today's seedling becomes tomorrow's guardian.
This natural variance maps directly to how the protocol distributes storage. Peers who are online more often naturally store more data and serve more requests, while peers with intermittent availability contribute what they can. The protocol doesn't force anyone into a role; it adapts to how people actually use their devices. Just as social circles self-organize around natural availability, the network's storage topology emerges organically.