While the idea of decentralizing websites in general seems rather easy to implement since a typical website is really just a collection of .html files, a decentralized altcoin exchange seems very difficult to implement and I just don't see how a decentralized fiat-cryto exchange could exist at all.
I've tried to think of various ways in which a decentralized altcoin exchange similar to Cryptsy or Poloniex could function but the main problem seems to be the issue of who actually holds the damn coins. Usually in centralized exchanges, it's the exchange itself that holds the coins. This works well for the most part - but we must trust the exchange owners to not run off with the coins.
A semi-decentralized exchange (in the sense of not relying on centralized servers) that is similar to eBay could probably work where person A sends their coins first, person B receives it, and then person B sends their coins to person A. Obviously for a crypto exchange this solution is not ideal because now person B could run off with the coins.
There would need to be some way of making sure that both people have sent their coins before receiving the other's coins - i.e. some type of escrow who holds the coins. But then the escrow could run off with the coins so again, the problem remains.
A typical escrow model is shown below. If A wants to trade his 2 bitcoins for B's 20 catcoins, A must send bitcoins to C and B must send catcoins to C. Only after both events are true will C send catcoins to A and bitcoins to B:
Anyone know of any good solutions? And how is NXT's asset exchange able to solve this problem by allowing people to trade without using an escrow?