Here is an idea that I have been tooling around with in my head for a while, and I wanted to share it with the community. I love the idea of multi-signature Bitcoin addresses, and I have been thinking about how this concept could present people from losing their funds when Mt. Gox/GLBSE/Moolah events occur. I would like to prevent a possible solution: Read-only private keys and 2 of 3 multi-signature wallets for Nubits and Nushares.
Let’s say that you buy 1,000,000 Nushares, and you decide that for some reason, you want to leave them on Bter. This is currently a very bad idea because you could wake up one day to find out that Bter has collapsed, and all of your Nushares are gone. A system could be created that would allow you to create a new multi-signature Nushares wallet. Bter would have to add support for the type of multi-signature Nushares wallet that I am about to describe. You would export three keys from your new multisig Nushares wallet to Bter: 2 read-only private keys, and one normal private key. The 2 read-only private keys could NOT be used to spend funds. They would only be used in combination with the normal private key to generate a multisig Nushares address.
Lets say that that address is 3SjH8Bb5JZQhbTtPMePCd2o5rXAubQ98Xrq
Read only private key 1 (BTER) + Read only private key 2 (BTER) + normal private key 1 (BTER) generates 3SjH8Bb5JZQhbTtPMePCd2o5rXAubQ98Xrq
Normal private key 1 (BTER) + Normal private key 2 (owner) + Normal private key 3 also (owner) also generates 3SjH8Bb5JZQhbTtPMePCd2o5rXAubQ98Xrq
Any 2 of 3 normal private keys are needed to spend the funds held at 3SjH8Bb5JZQhbTtPMePCd2o5rXAubQ98Xrq, so the exchange can never spend the funds without the consent of the owner. If the exchange goes under, the owner can still recover the funds since he or she will always control at least 2 of the 3 private keys. the funds are held on the exchange, but never under the control of the exchange.
So how does one execute a trade? The owner would run a desktop client that would monitor the price index of the asset that the owner wants to buy using Nushares (let’s say Bitcoin). As soon as the price hits the target, the client authorizes 1 private key to “vote” for spending Nushares to buy BTC. The exchange provides the second vote, and the BTC are bought at the desired price.
A scripting mechanism could be generated such that when the trigger is hit, only an amount of Nushares predetermined by the buyer could be spent. For example, if the owner had 1,000,000 Nushares on Bter, he or she might authorize spending 100,000 Nushares for one NSR/BTC trade. Since the exchange only has 1 of 3 private keys, it has no choice but to comply. If the owner’s desktop client sees that the amount of the pending transaction is some value other than 100,000 Nushares, it will simply reject the transaction, and not sign the transaction with its private key.
Why would exchanges go for this? Because they would have no choice. Once this system were implemented, no one would deposit Nushares (or any other crypto-currency) on any centralized exchange using the old method.