|
October 24, 2013, 06:54:51 PM Last edit: October 26, 2013, 06:30:07 PM by trout |
|
here's a suggestion of how to drastically remove the need of trust for online (collective) wallets.
Why:
Online collective wallets have the following advantages: - mixing of users' coins - free or cheap transactions between users, including - microtransactions, - off-chain (i.e., not polluting the bitcoin blockchain) - ease of use But they have the following big problem: * You need to trust the operator not to run away with your coins or to get hacked.
The following simple idea can remedy the latter drawback:
Instead of one server handling the user coins, several (say, n) online wallets pool together, and every withdrawal has to be approved by m out of n of them.
In a bit more detail: each user is identified by a public key, to which the private key is kept only in his browser. The public key is sent to n servers. Every server keeps the ledger of all transactions of each user. The user may chose one of the online wallets as his primary wallet; this wallet will provide all the user interface to him, and will take any charges that are applicable. Any operation the user wants to make is signed with his private key. The signed request is sent to all the participating servers. Deposit address for each user are "m of n" addresses. So each withdrawal has to be signed by m of n servers. The charges a users' primary server wants to apply follow the same process: if they are internal, all servers put it in their books. If they are external (withdrawals) m of n servers must sign the transaction. If the rules for the charges are agreed upon in advance, keeping the books is straightforward.
Shall the user's primary server go offline/get hacked etc., he can still request to withdraw his funds from the remaining servers, and they can process it (as long as the number of online/not compromised servers is <= m)
From simple online wallets/mixers this can be potentially extended to more advanced services such as banks, casinos, etc. with the same idea: all participating servers keep the book for all users; withdrawals are m of n.
|