Nostr Comparison
How Gozzip relates to the Nostr ecosystem — what we reuse, what we change, and migration strategy.
What We Keep from Nostr
The entire existing Nostr event ecosystem works unchanged:
- Event structure — signed JSON objects with kind, pubkey, content, tags, sig
- Kind 0 — user profiles (name, about, picture)
- Kind 1 — short notes, replies, threads (NIP-10 conventions)
- Kind 3 — follow lists (contact list)
- Kind 6 — reposts
- Kind 7 — reactions
- Kind 14 — direct messages (NIP-44 encryption, NIP-59 sealed gifts)
- Kind 30023 — long-form articles (NIP-23, parameterized replaceable)
- Kind 9 / 39000-39009 — group chats and group metadata (NIP-29)
- Kind 9734 / 9735 — zap requests and receipts (NIP-57)
- Key format — secp256k1 keypairs, same as Nostr
- Relay protocol — WebSocket subscriptions, filters
What We Add
New primitives on top of Nostr:
| Primitive | Kind | Purpose |
|---|---|---|
| Device delegation | 10050 | Map device subkeys to a root identity |
| Checkpoint | 10051 | Sync state for light nodes |
| Conversation state | 10052 | DM read-state sync across devices |
root_identity tag |
— | Attribute device-signed events to root identity |
| Oracle/relay resolution | — | Transparently resolve device → root on subscription |
| Storage pact | 10053 | Reciprocal storage commitment between WoT peers |
| Storage challenge | 10054 | Proof of storage via challenge-response |
| Pact request/offer | 10055/10056 | DVM-style discovery of storage partners |
| Data request/offer | 10057/10058 | DVM-style retrieval from storage peers |
| Storage endpoint hint | 10059 | Encrypted peer endpoints for gossip discovery |
| Recovery delegation | 10060 | Designate N-of-M social recovery contacts |
| Recovery attestation | 10061 | Attest root key rotation (7-day timelock) |
| Per-event hash chain | — | seq + prev_hash tags for stream completeness |
| Onion routing (relay service) | — | Optional privacy layer for gossip routing, paid via Lightning |
See Protocol > Messages for full event schemas.
What We Change
- Authorship model — events are signed by device subkeys, not the root key directly. The
root_identitytag links them back. This enables multi-device without sharing private keys. - Follow semantics — following someone is a commitment to index their network. You keep your follows wisely because you bear the cost.
- Node sovereignty — users are not fully dependent on relays. Light nodes use checkpoints to sync efficiently. Full nodes maintain complete history.
- Storage model — data is stored by reciprocal WoT peers, not just relays. Relays become optional accelerators.
- Key hierarchy — root key moves to cold storage. Derived DM and governance keys serve specific purposes on devices. Device keys remain independent.
- Incentive model — storage reliability and relay curation translate to content reach through pact-aware gossip routing. Lightning zaps provide an optional premium layer for relay services. No external subscriptions or tokens needed.
- Offline transport — BLE mesh via bitchat interop enables event exchange without internet. Nearby discovery uses ephemeral subkeys for privacy.
Migration Strategy
- Existing Nostr keys work as Gozzip root keys — no new identity needed
- Existing Nostr events are valid Gozzip events (no
root_identitytag means root key signed directly, which is the Nostr default) - Clients add device delegation and
root_identitytagging incrementally - Relays add oracle resolution logic to serve both Nostr and Gozzip clients
- Follow lists (kind 3) are identical — no migration needed