The Dark Forest: Private CRDTs as Global Database

The contents here is created from the official CascadiaJS Page

Overview

Brooklyn Zelenka image

Abstract

P2P social networks, local-first apps, and resilient client-side apps need to be private, concurrent, BFT, and run everywhere. Let's look at some recent tools & techniques that make this even possible.

Notes

  • @expede (Private)

  • Fission Codes

  • WNFS, Dialog, CAR Pool, PVM

  • Keeping data in a database is a bad idea. See GDPR.

    • If you don't store data you can't be persecuted for storing any data you shouldn't.
  • Networked Data, not apps

    • Stuff comes first
  • Open protocols

    • Auth: interop without pre-negotiation
    • Data
    • Compute
  • Global Primary Keys

    • Content addressing
      • Truly global links as opposed to ip addresses (physical location), DNS, networked routing for hashed data,
      • Hard links vs soft links (url)
      • Content IDs (CID)
      • Seems to basically just be like a REST request, but instead of using an id, just use the hash of the object
        • What do you do when you update the data, wouldn't its hash be updated?
          • Brooklyn explains this. All history is needed (wink wink blockchain)
  • Portable Private Data

    • SublteCrypto(Web Crypto)
      • Never gives direct access to the key
      • Add an ownership node to the object
  • BFT Concurrency

    • Over my head, something about color mixing, commutability, associative, and (does not change f(x) === f(f(x)));
  • See also CRDT

Notes by kevin

  • speaker
    • cto of fission codes
    • working on lots of protocols
  • context for auth
    • theres a lot in th emiddle
    • lots of data is sensitive
  • networked data, not apsp
  • 3 techniques
    • global primary key (content hashing)
    • cryptrees/dark forest
  • content hashing
    • never change
    • hard links for the web
    • self verifying data
  • private data substrate
    • traditional: file system
    • new:
      • partitioned
      • persistent & versioning
        • feature but also implementation detail
        • just maps under the hood
      • private data
        • crypto is just transforming existing problems into key management problems
        • what changed: ubiquitous web crypto api
          • you can't extract keys using the api, only signing
  • offline access control
    • use hash tree vs trie
  • concurrent writes

  • Brooklyn is co-founder and CTO of Fission Codes
  • Problem 1: The situation of Services in 2022
    • Allow users to authenticated using Auth Service
    • Sharing data across services (like from a photo service to music service) requires downloaing the data and re-sharing.
  • Problem 2: Too much in the way
    • Browser
    • REST
    • Server
    • Data Store
    • DEvOps
  • Problem 3: Toxic Data
    • 2005: Credit Card info in DB
    • 2015: Personal Info in DB
    • 2025: Nothing in DB
  • Suggestion 1: Networked Data, not apps.
  • Suggestion 2: Open Protocols
    • HTTP has been open
    • What if we get open protocols for
      • Auth (interop without pre-negotiation)
      • Data (ubiquitous dumb storage)
      • Compute (local and remote lambdas)
  • Three techniques
    • Content Addressing
    • Private Data Substrate
    • Fault-safe concurrency


Children
  1. Hunter
  2. Kevinslin
  3. Trivikr

Tags

  1. web3
  2. distributed-systems
  3. auth
  4. identity
  5. functional-programming
  6. ocap
  7. formal-methods
  8. vm-design