|
February 15, 2014, 12:40:09 PM |
|
Wallets are small files, you can store you wallet locally and encrypted without having to store the entire blockchain, so why not just store it locally? It's always safer if you never have to store it un-encrypted with a third-party service. In that sense you can be your own bank - you can be the only one with access to your funds.
This doesn't work for exchanges, who need to accomplish atomic transactions between users by acting as a sort of mediator. Of course, exchanges are inherently unlike banks though, yes? If you have your funds stored at an exchange you're not going for the "be your own bank" model of bitcoin. Unless you have a mechanism for atomic exchanges between currencies (which there are some like Ripple, though they don't seem super popular for lay-people), at some point you'll have to trust a third party to act as a mediator of sorts - trust either that they're not malicious and swiping copies of your wallet everytime you unencrypt it, or trust that they're not incompetent or overlooking something small which allows someone else to swipe copies of the wallets, or to switch output addresses before the transactions are created. I think for a centralized exchange to work though, it needs to be in control of the funds at some point - whether through having access to your wallet unencrypted, having all the coins stored in a central pool that the exchange itself just draws from while keeping it's own separate accounting ledger, or by having your key in-hand to unlock the wallet stored on it's server.
I wonder if we could have atomic exchanges using something akin to coin-join, where the transaction is created, and everyone has to go through and sign the transaction to make the funds go through, and if one person doesn't then it doesn't go through. Only we would have to have that across multiple cryptos - fiat I think would be fairly well out of the question for that - I think in that case you pretty much have to have a central authority in control of the funds (other than meeting in person and handing over cash).
So I can see the merit of the functionality you're describing as far as ease-of-use for exchanges, but I don't think it actually creates any more security for users of exchanges - you still have to trust the exchange to not store your password or an unencrypted version of your wallet, and you still have to trust they don't have any security holes which allow a third party to do the same thing. I suppose it would mean that exchanges could use the reference implementation of the wallet and so we would know they have predictable code that everyone uses, which is nice.
What may be interesting is the idea of trusting calculations to larger computational powers, but reversed here. The exchange hands you one of the public inputs (the address you have to send funds to), and it generates a proof verification key, and you have to faithfully generate a transaction from your locally stored wallet (private input) and release it to them (maybe encrypted somehow) - along with a proof that you faithfully carried out the computation to generate the correct transaction. You would have incentive to not release the transaction ahead of time because you don't want to send the coins before the other user has verified that they have sent their coins. Then the exchange waits for both transactions to come in, and it only releases them to their networks once it has both transactions - still you're trusting the exchange to not release yours even if they don't recieve the other party's.
Who knows, exchanges are complicated. I think it's pretty hard to remove trust - even Ripple (if I'm remembering correctly) is based on a web-of-trust. It doesn't eliminate the trust mechanism, just distributes it a bit - I have no idea how robust it is though. Hopefully in the near future Bitcoin will be widely distributed enough so that exchanges play a much smaller role in the market - but until it's used for things like buying groceries every day I don't think that will be the case :/ As long as a currency that is unpredictable in it's supply, creation, and initial distribution exists (I'm talking about fiat here), there will always be money to make in the fiat/crypto market - hopefully one day these unpredictable manipulated currencies will be gone and the idea of an exchange will be one of the past.
|