a permanent web
web services are constantly disappearing:
- pivot into some other business
- shut down
- turn evil
- cache invalidation
- network is always unreliable
- bundled client and service
- identity as a commodity
single point of failure
If somebody owns a service, they can take it away without warning.
How can we build services that nobody can own?
webapps of the future!
We'll need distributed versions of these that can't be taken away:
You are the hash of your public key.
Your friends decide what to call you instead of a centralized global registry.
- merkle DAGs for metadata
- content-addressable blob storage
- trivial replication (concat!)
- robust against replay attacks, out of order delivery
- all of history is kept around
merkle DAG example:
+++ hash: bd470e47e999a6cd94f7fc67bd0359eb91ddec59 prev: null hello +++ hash: a6da22f22705aab17fd4063fef40305d04a8d14d prev: bd470e47e999a6cd94f7fc67bd0359eb91ddec59 second msg! +++ hash: 589e87f23b2beea2338c830478d968b5f459f7c8 prev: a6da22f22705aab17fd4063fef40305d04a8d14d third msg...
hyperlog in the browser
How can we securely deliver updates?
not trust-worthy / future-friendly:
- domain names (expiry, $$$)
- SSL certs (expiry, $$$)
- using a signed hyperlog
get data payloads from our peers, remove single point of failure
We can also use p2p techniques for append-only logs!
mutable 1k payloads on the DHT!
save a pointer to the HEAD (a hash) of a merkle DAG
other research topics
- distributed naming systems
- append-only torrent files
- distributed twitter/facebook/flickr/soundcloud
- self-archiving p2p youtube + webrtc livestreaming
- p2p git issue tracker
geocities RIP never again