Do you need miners for a desentralized bitcoin exchange ? Couldn't an exchange be more of the model of bittorrent, or would that not work ?
That's what I've been saying. A blockchain you have to mine is all the rage with the kids nowadays, so they want to stick it into everything
Also mining for such a system would take hashing away from the main bitcoin network.
Would it not be possible that each client in the decentralised system either could import an existing private PGP-key, or generate one for you to use, for example it could even import ratings from bitcoin-otc.com if you could prove you had the right private key. Then all that were needed for trading and identifying a certain individual on the network would be to prove that the client holds the private key, kind of like the same authentication method that is used on freenode when auth/verifying with gribble.
That would build kind of a layer over bitcoin-otc, but it could also be made to work stand alone. So the ratings given and received somehow where retained in the system. Not sure how you'd secure the data integrity, perhaps by signing a rating, and then having the client check it against the public key to see if the signature is valid ?
So if you're Alice and trades with Bob, you can see that Bob has received like 20 ratings, and then an indicator could indicate whether the signature of all those ratings were valid or not. And then it would also be possible to click on the usernames that rates Bob to check their history and so on.
I'm not sure what's most desirable, just to connect individual parties for trades, like bitcoin-otc, or to have a more liquid orderbook like MtGox. In the event of the latter, you would need to have a fiat balance and a btc balance for each user, and the btc would need to be held somewhere ? Are we then talking about centralization again, hum.. Perhaps the best option is to neither store fiat nor btc in such a desentralized exchange, but only to connect buyers and sellers. And then there could be a bunch of trusted escrows that could be used as well, or one could just send the funds if one felt comfortable with it based on the rating of the counterparty. A trade could also be completed in bunches, where a 1K USD trade is completed by first sending 100 USD, then 200 and so on. The more I think of it, just having a nice bit-torrent like client connecting buyers and sellers would be pretty nice.
To make things easier, there could be different filters, so one could filter users based on geo-positions for instance, or currency, or whatever. If someone puts up a bid of 10 BTC in london for whatever price, then somebody could chose to match it completely or partially, and after it's matched it could be locked in the market for a certain time frame, perhaps 12 hours, or whatever timeframe (could also be adjustable) the seller or buyer (or both ) is interested in ? If the deal goes through, the order is removed from the market and added to the done trades list, so that other users can see what trades are done, and at what price. In the done trades list, there could also be a link to ratings, as it would be desirable for both parties to rate the other when the deal is done.
Some crafty software could even hide all the 'ugly' PGP details from the less advanced users. So all they needed to do was to download the client, hook up with a counterparty, and check his trustrating, and then decide how to proceed from there, so there should obviously be some messaging capasity in the system as well. I think there's a bitmessage open source system recently created, don't know much about it, but maybe it could be used ?
So in the future, it could be super-easy, just go to bitcoin-org, download BOX (Bitcoin Open eXchange) or whatever name it is called. And then after it is installed, it asks for PGP-import, or generates a private pgp-key if you don't have one, and uploads the public key to a keyserver or perhaps the public key should reside in the exchange network itself ? Anyway, everything happens under the hood, so the only thing the user does is entering his order.
It could be Tom, living in new york, enters buy 3 BTC @ 93, and selects preferred payment method from a drop down list, for instance wire transfer. Then Janice sees this buy order, and she wants to sell 3 BTC for the artwork she sold online, so she marks the order and a message is sent to Tom that Janice wants to trade. Tom then proceeds to check the trust level of Janice, and sees that she is 'highly trusted after 30 successfull trades. There could be a colorbar or something indicating the trust level of a user + the ability to clik the user to see his/her complete story. So after peeking over the ratings of Alice, Tom thinks it looks good, and sends Alice a message asking her for her bank account information. This is then relayed immediately to Tom, and signed by Alice, and it will show up as 'approved message' on Tom's end. Then tom sends the money, and when the money is received on Alice's end, she sends the btc to Tom (he provided his desirable btc address through the client, signed with his private pgp key). Then either of the parties could mark the trade as completed, and give the other user a rating, and the trade then is moved into 'trade history'-list. In the event the trade didn't go through, Tom could label (give negrating) Alice as a scammer if she never sent the BTC, and then reopen his offer for BTC purchase, since it was never completed. The same way, Alice could negrate Tom if Tom for instance saw that the price fell to 70, and he didn't want to honour the negotiated price.
There are so many ways this could've been made, so what do you think ? I don't think we need a blockchain for a desentralized exchange. A bittorrent like system with discovery of peers would work just fine. Perhaps there would be a need for irc-bootstrapping in the beginning or something, but that should only be used in the early days. Heck, this could even be integrated with the official client!