If mastercoin can be brought back from a secondary chain to main chain, how is it possible to check the validity of such transaction without following the secondary chain? I'm fairly certain that it isn't possible.
The import problem. I’ve been noodling on that one myself. Not sure if there’s an easy answer yet.
However.
Everyone seems to agree that eventually, the end-user client will not need the entire
BTC blockchain. By that time, I assume there will be a mechanism to keep perhaps the most recent unspent transactions (some subset of the blockchain), and be able to query the surrounding network for missing information or validation, if needed (perhaps reach “consensus” on missing info?). If this will (eventually) be the case, or something like it, then the necessary “following of the second chain” will be as straightforward (simple?) as following the necessary info on the primary chain.
But maybe it’s not that difficult. We’re already talking about the race-condition concerns on the distributed exchange (a lot can happen in 10 minutes), so there may be talk of “sniffing” the unconfirmed transactions before they are locked in a block.
In the first scenario above, the difficulty is validating the “import” on the receiving blockchain. For simplicity, let’s say some amount of MSC have been exported off the
BTC blockchain previously (to wheverer, doesn’t matter, which we can deal with, they’re exported, they can’t move on the
BTC blockchain context anymore), and some MSC suddenly re-appear in a new “import” transaction on the
BTC blockchain. Since we’ve got some number of exported MSC that we know about (since we do follow the
BTC blockchain), we know this isn’t impossible.
That new “import” on the
BTC blockchain, let’s say, will be coming from the RonPaulCoin blockchain. But we’re not listening to that blockchain, so we can’t verify that some crazy person didn’t just invent MSC@RonPaulCoin without having received it from some other blockchain at some point prior. (they came from MSC@
BTC originally, obvioiusly, but maybe hopped around on some other blockchain inbetween)
So we see the “import.” Luckily, the “export” of MSC@RPC occurs in the future (from the
BTC blockchain’s import context, remember, the export comes *after* the import), if we began listening to the RPC blockchain at that point in time when we first see the import on our primary
BTC blockchain (either right when we sniff the import tx or see it in its first block in the
BTC context), we could begin listening for the next several valid blocks to come in from the RPC blockchain, and we wait to see the export. Once we have it, it includes the address that was meant to receive the MSC@
BTC, which “confirms” that at least a correctly formatted “export” of MSC@RPC was performed (yes, assuming many many things, and it sounds like merge-mined blockchains might make this less squiggly), and that at least on the surface, the BTC address used in newly seen “export” tx @RPC matches the RPC address encoded in the import @
BTC.
The problem is this: those MSC@RPC could’ve been moving around for quite a while on the RonPaulCoin blockchain, and/or they’ve been sitting in an RPC address for weeks. Finding the last transaction which would verify the MSC balance of that address, or tracking down their movement between addresses across who knows how many RonPaulCoin transactions would be difficult without having the whole RPC blockchain.
(Wouldn’t it be nice if there were an easy way to blockstamp “imported” MSC that always hung around with it through all transactions, to provide a reference block to check against for validation purposes? Then you’d just need what happened between that import block and the export block you’re hoping to validate, and not the whole blockchain)
Also discussed has been an entirely separate “tiny” blockchain whose sole purpose it is would be to track these import/exports… but that seems unnecessary…?
If it is one way only, it can work, but price of mastercoins in a secondary chain might be fully detached from price of mastercoin on the main chain.
I agree that in a one-way-only situation, the MSC price may become detached, with a second assumption that it’s either an inefficient market, or if the MSC have lost some of their utility on the new blockchain. Or, in anticipation of it eventually becoming two-way, the recipient blockchain MSC might trade at a premium ;-)
However, in a two-way situation, an efficient market should make sure that MSC always retain a consistent(ish) value, regardless of the blockchain it’s on, and be related such that MSC/BTC = RPC/BTC * MSC/RPC
Actually, it’s not one-way from the recipient blockchain’s context at this point. We can’t verify imports ;-) It’s simple freeze of some MSC@
BTC at this point.
...
Trying to vizualize metadata hopping around a bunch of partial graphs on two timescales with only limited context is a fun exercise at 2am.
It seems to me there are obvious answers right in front of us, but which continue to elude us. But for some reason, I’m convinced they're there.