For those that did not attend the latest dev hangout, BM briefly explained how cross-chain trading would work.
Is this explanation somewhere online?
Anything I forgot to describe? Anything unclear?
The form of AXCT you describe requires both chains to implement the
withdraw_password_type operation. Thus it is only practical between two BitShares Toolkit chains. A potential AXCT implementation would have more value if it supported coins such as BTC, LTC, DOGE, etc. (without requiring a hardfork in those non-BitShares Toolkit chains).
Another minor nitpick: The described protocol is not truly atomic. If Bob is offline between Alice revealing the password and the expiry of Alice's transaction, Alice may end up with both BTSX and DNS. You can reduce (but not eliminate) this possibility by lengthening the time Bob would need to be offline for this to happen.
I have proposed a protocol which fixes the above deficiencies. (emski independently developed an identical protocol.) However my / our protocol imposes an additional requirement: It requires a way for the network to "know" whether the delivery of the "foreign" currency occurred. I.e. we (the BTSX network) need to know what happened on the foreign chain (the BTC network).
One way to satisfy this requirement is having delegates to monitor the foreign chain. This is less than ideal: (1) Supporting N altcoins would require the delegates to run N different clients; (2) You have the political problem of choosing which altcoins to support, (3) Fully auditing delegates' good behavior also requires N foreign clients, so you have the problem of either (4) Less thorough delegate auditing, or (5) Running N different clients on all nodes.
I've come up with a less centralized way to meet the requirement without too much burden; a way to make the network "know" what happened on the foreign chain. However, I haven't written it up yet. I think AXCT between BTSX and BTC would have some value. It would make it easier to leverage existing BTC infrastructure. For example, it would be fairly simple for a third party to use AXCT to build a translation app which allows using BitUSD to pay a specified number of Bitcoins to a specified Bitcoin address, e.g. paying a BitPay invoice [1] [2].
Also, if we have AXCT for DOGE <-> BTSX and BTSX <-> BTC, then essentially we can allow users to trade DOGE <-> BTC without trusting any fiduciary. Making the "MtGox problem" a thing of the past.
In addition, I suspect a working, live implementation would get us a lot of attention; basically free marketing.
[1] With AXCT support for BitUSD -> BTC, this app would not require any fiduciary trust from the user. Without AXCT, this app is still possible, but either the app must have API access to the user's account at bter or a similar fiduciary exchange, or the app maintainers must have fiduciary control of user funds.
[2] This app would provide value by (from the user's point of view) enabling every merchant who accepts BTC to also accept BitUSD, without any action on the part of the merchant.