There are two aspects of this implementation:
1. The Blockstack naming system is used to associate an immutable user identity with the routing path to their storage, for reads and writes.
For an application to store data in the gaia hub, they must sign a challenge text proving they have been whitelisted to write that data, but the data is associated with the users gaia hub.
If the user leaves the platform, all of their data is with them in their gaia hub, which can be used by another app (maybe a competing blogging app for example?).
2. Users host their own gaia hubs.
Right now, the barrier is high for people hosting their own gaia hubs, so Blockstack provides a default one that is associated with their identity, so the average user can focus on using the applications on Blockstack and less on the system administration like overhead in setting up a gaia hub.
However, this user onboarding default does not override the ownership the user has in that their id is the one whitelisting applications and allowing applications to store data, which they can then own and use in other places, or disconnect their gaia hub and simply keep the data as their own personal HD with user addressable content even if they did not want to use it anywhere else, with other apps, etc.
Users can host their own gaia hubs. We are working on migrations, images available on platforms and publishing instructions for how to utilise DO spaces and S3 in addition to the driver functionality that exists now for things like Azure blob storage and S3 buckets.
The newer development is focused around automating the driver with local disk so the same set up can be ported to images on the cloud as well as users hosting their own gaia hubs on a server somewhere. For example, many of our enthusiasts are asking how to host them on a rasberry pi.
Let me know if this answers your question. I would also love feedback or ideas in general.
So stay tuned.
I personally find Digital Ocean to be the most user friendly, so we are trying to lower barriers to make it as easy as possible to roll out gaia hubs by providing instructions for these kind of platforms.
We are also rolling out instructions and images for the major cloud hosting platforms. If you have any preferences for a particular platform you would like supported or any other feedback, let me know.
Currently on master branch, gaia supports the following drivers:
Amazon S3, Azure Blob Storage, Local disk (you must set up static web-hosting to point at this driver), and Google Cloud Storage
You can learn more about how to set up your own gaia hub here: https://github.com/blockstack/gaia/blob/master/hub/README.md
Gaia is not necessarily dependent on Blockstack, but it was designed to be modularized within this design, so users can control where their data is stored, which is not necessarily the case with IPFS.
It is pretty darn cool :)
Let us know if you have any more questions.