It seems like there is really no great way to exchange USD for BTC. Having to trust an exchange with your private keys is undesirable. I'm wondering if there is a way to utilize the convenience of an online exchange without needing to trust them with your private keys. So two questions:

Are there any exchanges which do not require control of the private keys? I am aware that Coinbase offers a multi-sig vault but I'm talking more about zero control, zilch, nada, private keys on your local device only.

Is there a problem with the following exchange model? The exchange manages all the market orders and matches buyers and sellers to transact directly. The exchange communicates the terms of a transaction to the BTC seller's wallet (like the blockchain wallet) and tells the seller that he has X minutes until the terms are void. The BTC seller's wallet finalizes the transaction. The transaction requires the exchanges signature and the seller's signature. The seller signs the transaction using his private key and forwards it to the exchange. The BTC buyer sends money to the exchange. The exchange then signs the transaction and sends it off to the network. Once the transaction is confirmed in the blockchain Y number of times (to avoid double spending), the exchange forwards along the money to the BTC seller, keeping a commission for himself.

I think the biggest problem with your proposal is it would allow the buyer and/or seller to back out of the transaction after being informed there was a match, simply by failing to deliver the coins or cash. It's a pretty fundamental property of traditional exchanges that an order is binding: once you place it, if a matching order is placed, the trade is executed atomically without anyone getting to dither, haggle, or back out. I recently read Michael Lewis's Flash Boys in which failures of this property in stock markets were exploited very profitably by certain participants.
– Nate EldredgeJan 24 '15 at 7:14

1

To my mind, this is the main reason why we give exchanges control of our money or coins: not just because it's convenient for them to execute the trade, but because we want it done by an impartial third party who won't let the principals cheat.
– Nate EldredgeJan 24 '15 at 7:15

@NateEldredge That's a pretty good seed for an answer. :)
– Murch♦Jan 25 '15 at 9:46

In fiat currency accounts you transfer money into the brokerage account (Ameritrade, TradeMonster) but these brokerage accounts don't have access to your bank accounts (checking, savings). I'm a complete noobie regarding bitcoins so I'm confused. Do the bitcoin exchanges actually have access to funds not placed in their account or did I misunderstand the questiom?
– MayoJan 29 '15 at 0:21

3 Answers
3

This could work. Participants would need to deliver sufficient money to the exchange to protect others from their non-performance. But the exchange would never have to touch any Bitcoins.

When you sell Bitcoins, you'd have to be responsible for any decrease in the value of Bitcoins between when you sold them and when you delivered them. Rational sellers would price this risk into their spreads and try to deliver as quickly as possible.

Likely, the buyer would have to be able to cancel a buy if the seller didn't deliver. If the price had gone down, the buyer would be responsible for the difference in price.

The problem with such a service, at least today, is that it would be difficult for people to buy and sell on it. Buyers would have to wait for delivery and possibly switch offers and sellers would need to deliver quickly or risk losing money. This would result in higher buy prices and lower sell prices, which would likely discourage adoption.

It could become popular among people who want to speculate on the price of Bitcoins with leverage. You could sell Bitcoins you don't have, for example. The buyer doesn't want Bitcoins, they just want to profit if the price goes up.

the exchange needs to be in control of the coins when you want to sell them for someone to be able to instantly but them.
if this would all happen on-chain then the amount of BTC that they would have open and available to a hacker is way more than what they currently keep in their hot wallet.

the solution is still that you shouldn't keep BTC on an exchange and only move it there when you want to sell!

counterparty has a decentralized exchange which allows you to trade BTC for counterparty assets.

I guess you just need a counterparty asset that is pinned to the dollar :D

I understand that they need your private key in order to "instantly sell them." That doesn't imply that my exchange fails. Just that it is different from an exchange that offers instant sales.
– NickJan 26 '15 at 20:38