Sorry if this has been suggested already. Encrypted caching: allow the generation of an alternate secret that syncs data, but doesn't decrypt it. That way, I could give all my friends this code (and they could give me theirs) and we'd all have a cache of everyone else's data that could keep syncing when anyone was online, but wouldn't enable anyone but me to see my data. This would also allow anyone to set up online services that would accept your cache-code (perhaps for a fee), and keep an always-available high-bandwidth copy of your data for you without fears that they could access it. This seems the best way to achieve the cloud-storage effect in a secure, distributed framework.