Post
Topic
Board Project Development
Re: [Announce] XChange - A Financial Exchange Library for Java V1.3.0
by
freemoney458
on 18/01/2013, 22:07:35 UTC
I like this project a lot.

I have a suggestion which might be a bit off-topic, maybe you can point me in a better direction where to address this.

Now that you have some exchange data happily being displayed in e.g. MultiBit, the next logical step will be to integrate a mechanism to buy and sell bitcoins.
I see the following possible approaches:
1. Integrating the APIs of one or more centralized exchanges like e.g. MtGox etc. Possibly the easiest and most useful approach today.
    Personally, I do not like these exchanges because these exchanges require a lot of trust in their honesty and integrity, technical skills to run the exchange and to secure it against attacks and because fiat money transfers to/from the exchanges usually take long or a lot of fees are involved. Also, there is a double risk involved: You can loose the deposited bitcoins AND you can loose the deposited fiat money.

2. Integrating Ripple-like mechanisms that already have been proposed elsewhere. The beauty is that it ends up in a p2p decentralized form of exchange. But there is still trust involved that all involved parties will be honest and settle their balances. Of course a rating system for every user can be included, but this involves setting up three p2p networks in parallel: Bitcoin, Ripple-like credit balances and a p2p trust rating system. It seems very high-end, but also very complex and therefore will take a long time to develop and to convince people to use it.

3. Integrating the API to a site like BitMarket.eu into the Bitcoin client. This is a mixture of 1 and 2. The real exchange is done on a person-to-person basis. All BitMarket.eu does in the first step is to bring together seller and buyer when certain criteria match: Agreed price and settlement method, basically. This could also be done in a p2p approach or using standardized IRC messages. In the second step BitMarket.eu acts as an escrow service where the offered bitcoins are only released to the buyer if the seller confirms that the price has been paid. But there is still trust needed in the escrow functionality, if a centralized site like BitMarket.eu is used.

In order to get rid of a centralized escrow service from 3, I suggest to set up a p2p escrow functionality directly as an extension to the client. This leads to a fourth approach:

4. Integrating the mechanisms to bring together buyers and sellers if prices and settlement method match (maybe standardized IRC messages are sufficient) AND THEN to use multisignature transactions as an escrow service within the p2p client exchange network. It basically means the same user experience as in BitMarket.eu, but all completely within the Bitcoin client. So there is no need for a centralized exchange and no need to trust a centralized institution as escrow.

Do you think this is feasible? Do you know a better place where to post this?