What is Nostr?
bitcoinerrorlog / John Carvalho
npub13nd…0svh
2025-04-15 15:03:40

bitcoinerrorlog on Nostr: Pubky vs Nostr - Under the Hood Here's an AI-generated breakdown of the key ...

Pubky vs Nostr - Under the Hood

Here's an AI-generated breakdown of the key differences under the hood between Pubky and Nostr, focusing on architecture, protocols, and design principles:

🔑 1. Identity Model

Pubky:
- Uses PKARR (Public Key Addressable Resource Records) to map pubkeys to resources (e.g., profile, index, feed, etc.) via the Mainline DHT.
- Treats a public key like a domain name, with multiple associated records (like DNS).
- Emphasizes self-custodial identity with keychain-style apps (like Pubky Ring) to manage access.

Nostr:
- Identity is simply a public key.
- No native support for structured resource discovery—clients infer structure (e.g., via nip-05, which is optional and centralized).
- No native key management or delegation system.

🧠 2. Data Architecture

Pubky:
- Data is hosted via homeservers, which can be self-hosted or federated, but data belongs to the user, not the host.
- Each pubkey publishes signed records (e.g., profile, index, posts) to their homeserver or a DHT-announced URL.
- Homeservers act like mirrors, not gatekeepers—enabling credible exit.

Nostr:
- Data is broadcast to relays
- Relays decide what to store and serve; users must trust relays to propagate and preserve content.
- No built-in credible exit or ownership enforcement.

🔄 3. Data Discovery & Routing

Pubky:
- Uses PKARR + Mainline DHT for decentralized discovery.
- You can find the correct endpoint for any key without a centralized index or bootstrap.
- Promotes semantic discovery through social tagging and pubkey-indexed resources.

Nostr:
- Discovery relies on centralized relay lists, nip-05 (centralized domains), or third-party indexers.
- No native DHT or structured discovery mechanism.
- Feeds are mostly ephemeral, requiring external tooling to rebuild context.

🗂️ 4. Content Structure and Graph

Pubky:
- Native support for tags, semantic relationships, and custom indexes.
- Embraces a semantic social graph, where users create and share meaning through tagging and trust.
- Tagging is relative, not objective—enabling things like contextual moderation, reputation, and filters.

Nostr:
- Content is flat and unstructured beyond event.kind and tags[], which are simple arrays.
- Social graph is inferred from follows and zaps but lacks higher-level structure.
- No built-in semantics—interpretation is client-dependent.

🔒 5. Censorship Resistance & Exit

Pubky:
- Promotes a credible exit by allowing users to self-host or mirror their data.
- Homeservers can be replaced or migrated without losing history or identity.
- All records are cryptographically signed and portable.

Nostr:
- Resilience depends on relays honoring your writes.
- If major relays drop you, there's no native fallback unless you're running your own.
- No migration tooling for moving across relays or restoring full history.

⚙️ 6. Protocol Complexity

Pubky:
- Uses existing infrastructure (Mainline DHT, HTTP, JSON, etc.).
- Structured, with clear roles: PKARR, homeservers, apps.
- More modular and composable by design.

Nostr:
- Simple and minimalistic by design.
- One protocol to rule them all—relays serve everything, and clients decide what to do with it.
- Easier to bootstrap but harder to evolve without fragmenting.

🧭 Philosophy Differences

Pubky is systematic and protocol-first.
Nostr is minimal and spec-last.

Pubky builds a structured semantic graph.
Nostr uses a freeform event stream.

Pubky relies on decentralized routing via the DHT.
Nostr relies on centralized or trusted relays.

In Pubky, a public key is like a domain with structured records.
In Nostr, a public key is simply a handle for a feed.

Pubky focuses on providing users with a credible exit.
Nostr focuses on censorship resistance through broadcast redundancy.

Pubky uses a multi-role network with nodes, homeservers, and apps.
Nostr has a flat network with only relays and clients.
Author Public Key
npub13ndpm2hm9hud4azsq5euhf5mv3d05r90wymwxsd7rdn29609hhvqp60svh