📚

Lite Paper

walled.garden technical overview

walled.garden

Cryptographic Ownership for Digital Spaces

A decentralized social platform powered by Ed25519 signatures

📐 System Architecture


    ┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
    │   Browser A     │    │   Browser B     │    │   Browser C     │
    │                 │    │                 │    │                 │
    │ ┌─────────────┐ │    │ ┌─────────────┐ │    │ ┌─────────────┐ │
    │ │Ed25519 Keys │ │    │ │Ed25519 Keys │ │    │ │Ed25519 Keys │ │
    │ │   🔐 🔑     │ │    │ │   🔐 🔑     │ │    │ │   🔐 🔑     │ │
    │ └─────────────┘ │    │ └─────────────┘ │    │ └─────────────┘ │
    └─────────┬───────┘    └─────────┬───────┘    └─────────┬───────┘
              │ sign & verify        │ sign & verify        │ sign & verify
              │                      │                      │
              └──────────────────────┼──────────────────────┘
                                     │
                        ┌─────────────▼───────────┐
                        │    Multisynq Cloud      │
                        │  ┌─────────────────────┐│
                        │  │ Distributed State   ││
                        │  │ • Garden Claims 🏰  ││
                        │  │ • Posts & Messages  ││
                        │  │ • Friend Lists 👥   ││
                        │  │ • Real-time Sync ⚡ ││
                        │  └─────────────────────┘│
                        └─────────────────────────┘
              

🔐 Ownership Protocol

Garden ownership uses first-come-first-served cryptographic claims:


    User visits /garden/alice → Check if claimed?
         │                           │
         ▼                           ▼
    ┌─ NO ──────────────┐       ┌─ YES ─────────┐
    │                   │       │               │
    │ 1. Generate Claim │       │ Show as       │
    │    {              │       │ Visitor       │
    │      slug: "alice"│       │               │
    │      key: pub_key │       │ ✅ Owner      │
    │      timestamp    │       │ 👁️  Visitor  │
    │      signature    │       │               │
    │    }              │       └───────────────┘
    │                   │
    │ 2. Sign with      │
    │    private key    │
    │                   │
    │ 3. Broadcast to   │
    │    Multisynq      │
    │                   │
    │ 4. ✅ Become      │
    │    Owner          │
    └───────────────────┘
              

🌐 Cross-Browser Synchronization

Real-time state sync ensures all browsers see the same ownership:


    Browser 1 (Chrome)           Multisynq Cloud           Browser 2 (Firefox)
         │                            │                            │
         │ POST claim-garden          │                            │
         ├──────────────────────────► │                            │
         │                            │ ◄──────────────────────────┤
         │                            │         JOIN session       │
         │                            │                            │
         │ ◄──────────────────────────┤ garden-claimed event       │
         │                            ├──────────────────────────► │
         │                            │                            │
         ▼                            ▼                            ▼
    ✅ "Your garden"             📊 State:                  👁️ "Viewing garden"
    🔑 Can edit                garden_owners =            🚫 Read-only
    💬 All post types          {"alice": "pub_key_123"}   💬 Public + owner-only
              

🔑 Cryptographic Security

Ed25519 signatures provide mathematically provable ownership:


    Ownership Claim = {
      garden_name: "alice", 
      public_key: "d4f2e1a8c7b9...",
      timestamp: 1703123456789,
      signature: sign(private_key, "alice:d4f2e1a8c7b9...:1703123456789")
    }
    
    Verification Process:
    ┌─────────────────────────────────────────────────────────────┐
    │  verify(signature, message, public_key) === true ?         │
    │    ├─ YES → ✅ Valid claim, update ownership              │
    │    └─ NO  → ❌ Invalid signature, reject claim            │
    └─────────────────────────────────────────────────────────────┘
    
    Security Properties:
    • 🛡️  Forgery: Computationally impossible without private key
    • 🔒 Integrity: Any tampering breaks the signature
    • ⏰ Freshness: Timestamps prevent replay attacks
    • 🌍 Consensus: All browsers verify independently
              

💬 Privacy Levels

Post visibility is enforced cryptographically:


    Message Filtering Matrix:
    
    Viewer →    Owner   Author   Friend   Stranger
    Post ↓        │       │        │        │
    ────────────┼───────┼────────┼────────┼──────
    🌍 Public   │  ✅   │   ✅   │   ✅   │  ✅
    🔒 Private  │  ✅   │   ✅   │   ❌   │  ❌
    👥 Friends  │  ✅   │   ✅   │   ✅   │  ❌  
    👑 Owner    │  ✅   │   ❌   │   ❌   │  ❌
    
    Implementation:
    posts.filter(post => {
      if (post.visibility === 'public') return true;
      if (post.author === user.key) return true;
      if (garden.owner === user.key) return true;
      if (post.visibility === 'friends') 
        return garden.friends.includes(user.key);
      return false;
    });
              

🚀 Try The Demo

Live Test:

  1. 1. Create a garden: /garden/your-unique-name
  2. 2. Open same URL in incognito: observe visitor mode
  3. 3. Post from both browsers: see real-time sync
  4. 4. Export keys → import in new browser → regain ownership

📊 Technical Specifications

Cryptography

  • • Ed25519 signatures (128-bit security)
  • • SHA-512 message hashing
  • • Deterministic key generation
  • • Browser-native crypto APIs

Infrastructure

  • • Multisynq distributed state
  • • Next.js static export
  • • IndexedDB local storage
  • • Real-time WebSocket sync

🌱 Your Space. Your Rules. Synced Forever.

True digital ownership through cryptographic proof, not corporate control.