Research #33
Research Whisper / shh
Description
Whisper (also see this is a component of Ethereum, made for providing Dapps with a means of exchanging messages.
This could be done via the Blockchain too, but that would be very expensive and inefficient.
Whisper works on top of devp2p, sharing the p2p network of the Blockchain. It's made for low bandwidth data (e.g. text good, video bad) and comes without latency guarantees. It's not p2p in the sense that sender and receiver establish a direct connection at some point, but datagram based.
It's designed for maximum privacy, including avoidance of metadata and optional support of plausible deniability.
It's further designed (using probabilistic routing strategies) to be configurable such that use case specific tradeoffs between latency/scalability and privacy can be achieved.
Whisper is supposedly not used by many Dapps. A notable exception is Status.im.
Tom also uses it (todo: link).
Web3 includes the ssh API.
The geth client currently has Whisper support disabled by default. Routing of shh messages relies on altruistic nodes having it enabled (todo: check if this statement is correct and if there are plans to incentivize Whisper routing.
Also see v5 spec (link provided by Jarrad of Status.im).