With Blockstack authentication, each application has a unique per-app, per-user private key (and associated Gaia storage). Currently, Blockstack applications are identified to user’s by the app’s Origin — this means that a change in origin will lead to a change in user keys and storage. Unfortunately, for now, this is a limitation of the platform.
Long-term, I’d want to pursue two solutions to this:
Enable easy user-controlled migration from one Gaia address to another. The user’s root keys (managed by the Blockstack Browser) have the ability to access any of the user’s Gaia addresses, and so should be able to initiate a migration from one to another — indeed, this is part of the promise of user-controlled data. The app-specific private key would still change, but there’s application-level methods to address this (and to the extent that those solutions are generalizable, there should be developer tooling to make that easier).
Identify applications using the Blockstack Naming System rather than application Origin. This puts application developers in significantly more control when it comes to changes in their infrastructure / DNS, and is also more secure, because it depends on the cryptographic safeguards of our platform.
I’d be interested to hear what other people think about those plans, or alternative strategies that may be able to improve the situation more quickly.