jean-luc
If you can get asset trades denominated in other assets implemented, then NXT AE would be able to dominate all other centralized exchanges. Basically all cryptos supported by the gateway could be directly traded against any other crypto. It would be fantastic!
After trading, people could withdraw directly to their wallet whatever crypto they have assets for
I think this is a much bigger change than assets supporting fractions, but maybe its a conditional handling in Order.java for all the trades of an asset denominated in another asset. Even if BTC is the only other asset something can be denominated in, that would get us 90% of the benefit, but I think the way the code is structured, it would be almost the same work to allow arbitrary denominations based in other assets.
James
I'm a little unclear on this, so apologies if my understanding is flawed.
Could this be done atomically with chained transactions?
For example:
BTC -> NXT && NXT -> LTC
BTC -> NXT && NXT -> DOGE
etc...
Everything would be converted to NXT as intermediate hold, then immediately used to purchase the new asset. If chained transactions can apply with atomicity, then goal is achieved.
except you get hit with bid/ask spread twice, instead of once. For low volume asset against NXT, the spreads could be unimaginably large. This is one of the big problems with ripple. everything goes through XRP and 5% spread one leg and 8% spread the other leg and it becomes untradeable.
Direct trading gives us the best advantage, well actually, it makes us the same as the exchanges as far as trading pairs
I think you could still do this with explicit trading pairs of BTC->LTC and BTC->DOGE, etc, and get a single spread. The conversion to NXT would be behind the scenes, and denomination in NXT would become wholly unimportant for that trading pair (ie: the explicit trading pairs in/out of NXT would be completely unrelated). Work would be in client, and not in core.
Some small transaction fee would need to be accounted for in NXT and siphoned as a trading fee.
(note: this assumes the premise that chained transactions are atomic).
Here's how I would approach it:
Step 1) allow trading Nxt against the top ten most popular coins directly to and from those coins
Step 2) Enable trading one coin for another using the BTC -> NXT && NXT -> LTC approach as a starting point to quickly allow that kind of trading between any different crypto pairs.
Step 3) Start allowing the trading of coins against other coins, again starting with the most popular, continue slowly adding more coins directly tradeable against Nxt as well.
Step 4) Do something along the lines of automatic arbitrage, let's say I want to trade Litecoin for Dogecoin, you look at all the other coin pairs that are being traded and find that the gap is smaller if you trade them through Bitcoin, so list that as a potential 3 way trade. Nobody has to know that when that order completed, they didn't actually send Litecoin to someone in exchange for Dogecoin but actually had 3 trades execute simultaneously. Potentially you could expand this to to 4 or 5 or 6 way trades, though at some point it just doesn't become worth it. In this way, you actually close that gap between all the various cryptos.
Also, every time you trade a coin pair, keep in mind you'll have to feed the forgers, so the more people use us to trade coins in general, the more value Nxt becomes as forgers earn more of them.
I'd do this type of arbitrage on computers that are open to forge but not actively processing transactions but more or less sitting around idling.. eventually they'll also be doing decentralized computing for us.