Subject: Re: [Bitcoin-development] Project status

From: "Luke-Jr" <[email-masked]>
Date: Tue, 13 Sep 2011 12:40:23 -0400

On Tuesday, September 13, 2011 10:43:27 AM Gavin Andresen wrote:
> 3) I'd really like to come to consensus on one or more
> 'multi-signature' standard transactions to enable much better wallet
> backup and security.

More important in this area, IMO, is support for deterministic keychains in 
wallets. Type 2, according to gmaxwell's original spec, seems pretty ideal, 
and significantly improves security for many use cases. Since it allows a 
wallet to contain a public keychain without the matching private keychain, 
webservers, POS, and other services can be provisioned only with the keychain 
required to generate/access infinite public keys, and without the private 
keyroot needed to spend them.

The ideal scenario in this regard, as I see it, is this:
- Webserver wallets are provisioned with multiple public keychains (one per 
webserver), and configured to use a specific one for getnewaddress/etc. By 
provisioning them with *all* the public keychains, their listtransactions/etc 
can see the transactions sent to other webservers, necessary to show 
confirmations to the end user and such.
- Business keeps a locked-down *offline* wallet with the private keychains for 
all the forementioned public keychains. Only this wallet has the information 
required to spend the income. The wallet is encrypted, and can only be 
accessed by staff with the proper position/authority to authorize expenses.
- A third wallet is used by staff to prepare expense transactions. It keeps 
track of locking coins it knows are in the process of being spent, and any 
staff member can create new ones. Once created, they must submit the 
transaction to a staff member with the proper authority to bring it to the 
offline transaction-signing wallet (on a USB key), where it is signed, and 
returned to this third wallet.

Another feature that needs some attention is signmessage. It can be used to 
send a transaction id/summary to a specified email address signed by the 
sending key of the same transaction (these can be added to the send-money 
GUI). This would allow merchants to publish a single payment address and still 
be able to verify which customers sent payment.