Personal memo of Gav’s Whisper presentation at ÐΞVcon-0.
For people who doesn’t have enough time to watch 1hour video.
Memo from following video
ÐΞVcon-0 – Whisper: the Multi DHT Messaging System with Routing Privacy. Vision & Roadmap. – YouTube
- 1. Consensus is Expensive
- 2. Comms patterns in MMUs
- 3. Datagram patterns in MMUs
- 4. Static Content
- 5. RTC Connection
- 6. Routing privacy is important
- 7. Whisper
- 8. Is it a DHT?
- 9. Is it a Datagram Transport Layer?
- 10. Anti-DoS/SPAM
- 11. Always Identity, Never Endpoint
- 12. Configurable
- 13. Toic-based
- 14. Secure
- 15. Authenticated
- 16. What it’s not
- 17. Two Routes to Routing
- 18. Prioritised Forwarding
- 19. Maskng/Filtering
- 20. API
- 21. newIdentity
- 22. post
- 23. watch
- 24. Questinos and Answers
- 25. Example
- 26. Not yet covered
- 27. Questions
- 28. Ref
Consensus is Expensive
Comms patterns in MMUs
Static content publication
e.g. BitTorrent, FTP
Connection (betwixt indentities)
e.g. VoIP, RTC
Transient Datagrams
e.g. Twitter, IM, registries
Datagram patterns in MMUs
Wholly directed
e.g. IM, e-mail
Partially directed
e.g. Mailing list, usenet
Filterrable global
e.g. Twitter, registries, content-search
Static Content
- DHT/Swarm
RTC Connection
Raw P2P connection
Routing privacy is important
Encryption alone won’t keep your information safe
Whisper
Hybrid DHT and messaging system
Dark
…probablistic message forwarding
Subject-key orientated
…no indication of encryption, no notion of content
Is it a DHT?
Multi-key
…many ‘topics’ associated with entries
Multi-value
…many entries can have the sme key-set
Transient
..entries have explicit expiry
Is it a Datagram Transport Layer?
Broadcast/multicast/unicast
…always secure & authenticated
Ansynchroous
..packets hava a TTL
Anti-DoS/SPAM
Proof-of-work.
good-behaviour incentivisation
Always Identity, Never Endpoint
Endoint is implementation detail
Configurable
User makes effieiency/privacy tradeoff
Toic-based
Watch for topic subsets, act accordingly
Secure
Unicast vs broadcast = Encrypted vs plain
Authenticated
Origin vs anonymous = Signed vs unsigned
What it’s not
- Point-to-point
- High bandwidth
- Low latency
- Application-level
- Connection-oriented
Two Routes to Routing
Passive
…peer steering throught rotation against past useless
Active
…topic advertising through masks
Prioritised Forwarding
Server your peers well or risk disconnection
Interresting Topics
…prioritise messages in which peer has expressed interest
Lowest TTL
…prioritise short-lived messages
Highest Proof-of-Work
…prioritise messages for which a greater proof-of-work has been conducted
Maskng/Filtering
Forming the topic vortex
Consolidation of masks & forwarding
…masks of all other peers are consolidated packaged and resent
log(N) distance ofr mask precision
…information drops-off further away from peer as net increases
API
Three functions
newIdentity
…create a new identity (i.e. key pair)
post
…post an entry/message
watch
…watch for new entries/messages on the system
newIdentity
var key = newIdentity();
(memo by hshimo) creates new public key
post
shh.post({
optionally "from": owned public key,
optionally "to": public key,
"topics": [..., ...],
"payload": ...,
"ttl", integer,
"priority": integer
});
watch
var w = shh.watch({
optionally "to": owned public key,
"filter": [..., ...],
});
w.changed(function(m) {...});
var ms = w.messages();
w.install();
Questinos and Answers
(questions and answers)
Example
(source code and explanation by Gav)
Not yet covered
- Multicasting (shared-secret dispersal)
- Plausible deniability of authoring (Daniel?)
- Security, privacy and scalability modelling:
how good is it?
Questions
()