Publishing App Data Anonymously

Is blockstack considering allowing apps to publish data to user’s gaia hubs without publicly announcing the app the data belongs to? Right now when an app publishes data to a user’s gaia hub, everyone can look at the user’s profile.json and see all the apps the user is using. I think that many people may not want to publicly announce the apps that they are using. For instance many people on dating apps wouldn’t want to publicly announce to the world that they are on dating apps. Or let’s say there’s an e-commerce app for buying jewelry. The app would want to be able to save user’s previous orders and preferences for a better user experience. Publicly posting that someone has joined the app could ruin a surprise for a significant other. There are also many sites that the average person visits that they would not want to publicly announce they visit (i.e. adult film sites). For these reasons I think that publicly announcing the apps people are using could be a major issue for many people who many be considering using a blockstack app and would therefore be a reason for developers not to build on blockstack.

As far as I am aware, any app that wants to save user data in gaia needs to enable to ‘publish_data’ scope which also makes public that a user is using that app. One solution to this issue could be to create a ‘private-apps’ field in a user’s profile.json which would be identical to the ‘apps’ field except all the data within it would be encrypted so that when an app runs, the address of the apps data for that user is decrypted.

This solution would make sharing data between users more complicated, but files could be encrypted with symmetric keys so that when a user wants to share a file on a private app, they could send the recipient the key and address of the file (encrypted with the recipient’s public key).

I’d love to hear what if anything blockstack may be doing to remedy this issue, whether people think it’s an issue, and any feedback about my idea to solve this issue.

It is not true that apps need to have the publish_data permission. The only effect of the publish_data permission is that the apps appears in the profile publicly. Using gaia works without that permission.

Apps can already now do the symmetric keys encryption for sharing data between users without that permission.

The blockstack gaia storage tutorial led me astray (“Every app that uses Gaia storage must add itself to the user’s profile.json file.” - https://docs.blockstack.org/browser/blockstack_storage.html)

Thanks for clearing that up!

@moxiegirl can we fix the docs in relation to what @samuelhatem.id.block pointed out? It’s under the “Add the publish_data scope to sign in requests” header.

1 Like

Sure. I’ve created this issue on the documentation:

I’m in a workshop most of today and tomorrow. I’ll take a look at it this weekend. You are welcome to create a PR if this is urgent.

1 Like

It’s not, but I decided to do it anyway =)

Thanks again @samuelhatem.id.block for bringing this up!

2 Likes