I have just finished reading those three provided white papers and I can’t quite get the topic of virtualchain administration during a long-lived fork of the underling blockchain as well as during blockchain migration.
As stated in the “Extending Existing Blockchains with Virtualchain” paper (sorry if the copy paste from the pdf is not well formatted):
To detect long-lived forks, a node runs multiple processes that subscribe to a ge- ometric series of prior block heights. If a process at a lower height derives a different consensus hash than one from a higher height, then a blockchain fork must have occurred then, and all processes at higher heights have potentially-divergent state. This means all running nodes will be in a separate fork set from bootstrapping nodes. Reconciling the fork sets requires human intervention, since irreversable actions taken by the application may be based on now-lost state transitions. Fortunately, long-lived forks are rare and severe enough to be widely noticed [2] [3] [4]. This means that when they happen, users and administrators can determine which transactions were affected, and come to concensus about which state-transitions need to be re-sent.
and
To begin, the application administrator(s) announces a future block after which the current blockchain will no longer be used and sends special “migrate” transactions to both the current and the new blockchain (to announce the migration process). The administrator(s) (a) acquires a lock on the new blockchain, (b) writes the current application state (excluding historic state transitions) to the new blockchain, and © releases the lock on the new blockchain and opens up the new blockchain to new transactions. Virtualchain verifies that the migrate transactions are signed by the same principal and verifies that the last-known state on the old blockchain is consistent with the consensus hash announced on the new blockchain. This enables seemless cross-chain migration.
Can somebody please explain this using the example from some hypothetical situation. I am aware of Onename migration but I don’t understand how is that possible.
For example, I can control my Onename identity that is ultimately registered in the Bitcoin blockchain using Blockstack’s virtualchain protocol implementation. Then somebody from Onename top management team decides that Bitcoin is not suitable anymore for their needs and decides to migrate to AnotherCoin. How will I control my identity in that case, if my keys are from Bitcoin assets, not AnotherCoin’s?
Do I understand correctly that being a Virtualchain specific implementation, Blockstack Inc can decide which blockchain to choose and migrate the whole PKI and DNS (with all registered namespaces)?