Automatic contact discovery is tricky, but the beginnings of one potential solution is I think explored in agl&#x27;s Pond, using pairings on BN curves?: <a href="https:&#x2F;&#x2F;pond.imperialviolet.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;pond.imperialviolet.org&#x2F;</a><p>To a point, so is offline messaging. Distributed datastores in general do that kind of thing - there are old implementations over Freenet in particular, and GNUnet as well and other things I think. The <i>robust</i> part is harder: if the client is offline, where&#x27;s the disk space coming from? Volunteers&#x27; (nodes&#x27;) cache? That needs to be opaque, and so do lookups. What&#x27;s to stop spammers flooding the network? (Spam, and denial-of-service in general, is a Hard problem to deal with in general even in distributed systems.)<p>They&#x27;re not among the hardest problems. Pseudonymity is a huge challenge as the latency gets lower against traffic correlation attacks, and a secure messenger is most definitely up against the kind of threat model that can and will try to pull those off in the wild. Perhaps mixing high and low-latency traffic may help, although it&#x27;s going to need to be very carefully analysed how much (I believe I2P&#x27;s design can do that, although I&#x27;m not sure if jrand0m ever implemented it in the router).