About the only thing that comes to my mind would be a digital equivalent to broadcasting a radio signal - a protocol, under which everyone receives all communication that's done over that protocol, but each person can only decrypt the part that's addressed to them directly. This would reduce the metadata to "who's broadcasting", without revealing the listener.
EDIT: Some back-of-the-napkin calculations on such broadcast protocol:
I took a look on my today's communication with my SO; rounding somewhat up, it would be ~100 messages of on average 50 characters, going in both directions. That gives, using 2 bytes for character and multiplying by 1.5 to account for protocol-related padding:
- 15000 bytes / user / day of a single conversation
Say this protocol has 1M user, that gives us:
(50 * 100 * 2 * 1.5 * 1000000) / (100010001000)
15 GB of data, spread over the whole day.
Seems manageable; especially if one would be to bucket it by e.g. hour by default, or less, if client is active and streaming data continously. Definitely a mobile bandwidth killer, though.