Ok I have some ideas, so I'd like to contribute. I haven't read the entire thread, so perhaps of what I have to say is redundant.
So for the sake of this discussion, I assume that a decentralized p2p market on the model of bitcoin/bittorrent/bitmessage is technically possible to make. It would work like MtGox works today, accepting orders, and matching them in a matching engine and keeping track of people's fiat balances and bitcoin balances.
I won't go into details about how I think that should be done, but the real issue here is that of interfacing with the traditional system. So I thought up the concept of brokers or agents if you will. There would be some super agents, that would seed the agent network initially, and there would need to be some kind of system to keep track of all the agents and their trustworthiness, and by community consensus, the license of an agent should be able to be revoked, if he cheats.
Agent Could be one of the following
- Person that can give you fiat money for a matched bitcoin sell order that you have done.
- Person that can receive fiat money from you and inject it as an available amount in your fiat account in the p2p exchange.
- Holds a certain amount of fiat money
Now, there would be a structure where agents are referred into the system by other agents. And no agent can refer another agent until they've reached a certain trust level and/or have been in the system a certain length of time, or a combination of the two. If an agent cheats. The agents two level above this one will be hit with a penalty, say the agent that went away went off with 10K USD, the referring agent would have to reimburse 10% of the USD that's gone, and the agent above him again would have to reimburse 5% of the stolen money. This would give each agent an incentive to only chose agents they are reasonably sure they can trust. Since the p2p exchange charges a fee that is distributed among agents and also pooled into an account that can only be touched if 6 of 10 superagents agree. I know, this looks like a quasi-centralized system, but bear with me. Somehow that pool of fees that are accumulated needs to give away some funds to replenish the funds stolen by a rogue agent. Now, if agents were limited to holding 10K USD, or another amount that's reasonable, 1 agent stealing the money would not bring the system down, and by selecting the agents carefully, as the sponsors knows they will be responsible if the agent fails, they also have an incentive to do some due dilligence on the agent they're recruiting. Preferrably it would be someone that they know in person.
When a withdraw is requested by an account holder, a message is broadcast to the network, for example, user TomCat holds now 3K USD in his account, and he wants to withdraw it. He lives in New York and wants to have it in cash. So the message goes out on the network, a request for a 3K USD cash withdraw. The agent meets with the TomCat user and gives him the cash. The agent updates his balance, which again is distributed to all the nodes, updating the total USD holdings in the system.
This system could also be used with different currencies, and there could be agents all over the world using this system. Agents could use bank transfers, or any other preferred method to send funds to account holders.
Also, to reduce risk, new agents would only be allowed to hold a certain amount of money, until their trust increased.
As to make this system actually workable, and having people participate in a fair and honest way, it's a lot of work before it gets there, but I think it would become doable. If a friend recruits you, and that is a good friend that you trust, it's not a friend you want to let down and steal money! However, this system requires a lot of trust, and there's nothing stopping an entire gang from slowly accumulating trust, and then all of a sudden just parting with a lot of money.
Another way to do it would be to be even more careful with the agents, and perhaps strike deal with actual companies, or make divisions all over the world like Western Union, while the p2p exchange still provides the platform. Now a govt. could shut down the agents easily of such a system, but they would have a hard time shutting down the p2p exchange itself.
Anyway, if agents accepted bank transfers, there would be a link to their name in the traditional banking system, and in the event they stole the money it would be possible to trace them and make life uncomfortable for them.
Another variant, which I am sure have been discussed already would be something like bitcoin-otc, but only on a p2p network, so people would basically enter orders, for instance I wanted to buy 2 BTC for 50 USD each, I enter the order in the system, and it's matched with someone else in my country that offers to sell 10 BTC for 50 USD each and accepts partial fills. The other party sends the 2 coins to escrow in the system and I send him 100 USD over a bank transfer. I got the bank transfer details from him on the inbuilt message system in the p2p system. After he receives the money, he release the coins from escrow to me.
The last system I described here I think is possible to make, however it would be not much different from the bitcoin-otc we know of today which is done over bitcoin-otc.com and freenode. However, both freenode and the website could be shut down if a powerful enity wanted to do so. A p2p network would be much harder to shut down.
I don't know if the first option with agents is so smart. I'm pretty sure it would be misued, and people would start aquiring fake bank accounts and become an agent, and police would never find them or their money and so on.
In the second version I proposed, there would be a trail in the system indicating that a trade has been agreed upon, if the seller sends coins to escrow, and the buyer sends fiat to the seller and the seller doesn't realease the coins, then I'm not sure how it should be solved, perhaps there must be a group of super users that can check the evidence and come to a resolution.
There are however many ways in which such a system could be gamed. We can imagine a scammer making an account in the system. His aim is to get free bitcoins, so he tries to buy 20 btc, he gets a trade locked in, and the coins are sent to escrow. The scammer gets the bank account details from the seller, and then the scammer lists an item on an online acution, for instance E-bay. He promises the victim to sell him an Iphone if he sends him money to the bank account of the bitcoin seller. The bitcoin seller receives the money and is happy, and release the coins. Then later on, the Iphone victim can't get hold of the scammer, and eventually resorts to contacting the bank, which again contacts the bank of the bitcoin seller. Then we have a problem. How can we avoid that ?
If everyone was honest, a p2p system would work just great, but as everybody will not be honest, I see a lot of problems that would need to be solved. With a trusted company running everything we might be better off, but then we're back to MtGox-status again. There could also be a group of super-agents that had the final say in the system, but that would also be a certain amount of centralization.
Perhaps the bitcoin-otc version over p2p is the best anyway, and really educating the users about how to avoid scams and so on. For example, in a bank transfer message, there could be a message that read like: agentp2p.com If the user went to that site, he would see a message that said: "This payment is going to an agent in the p2p cryptocurrency exchange network, and if you're buying a laptop or iphone with the account information you got, you are being scammed. Perhaps also for the first few transactions of anybody new in the system some verification needed to take place, like the seller of bitcoins verifying the buyer over the phone, or depositing a small amount to his bank account.
Ie. some steps could be taken to make it much more difficult for a scammer to operate in the p2p exchange. But beware, scammers will undoubtedly infiltrate the exchange when and whenever it comes to life.
I am sure many of you have even brighter ideas as to how the different challenges could be solved. I am not sure if we could actually make a market mimicing MtGox in terms of trade volume, ie. day trading would be very difficult, unless some sort of system, like the one I proposed first could be used. But we would also need to ensure the system could not be cheated and so on, and therw would need to be rules for the matching engine and so on. And as not everything would not happen instantly at the same time everywhere, how could one determine when a sell and ask order is matched.
I am sure there could be many technical challenges.