Thank you for your reply, I appreciate very much the dedication you took for answering.
If I go through your points in turn:
RE: running under Linux on a Mac book. If you want, you can run MultiBit as a fully fledged Mac app (with pretty icons and everything). It's the same code but just better integrated for the Mac platform. I only finished this off this week but will put out a beta next week with the Mac dmg file.
I will try it out.
RE: 1). Yes encryption is a must have. I plan to copy the standard client's encryption *exactly*.
Glad that you plan it and take it over exactly from the standard client.
RE: 2), 3) Importing and exporting keys are, when it comes down it it, about interoperability. One of the things that I am adding in the current round of dev work is to change the MultiBit wallet storage format to 'Protocol Buffers' which can be read and written by C++, Java and Python easily. (You can basically auto-generate the code to access the wallet).
One of the reasons to copy the standard client's encryption exactly is that it makes the possibility of interoperable *wallets* possible. This is more a long term goal than anything - I haven't even started talking to the C++ devs about it yet. This would cut out a lot of the importing/ exporting of private keys people currently have to do.
You are right, it is about interoperability AND not depending on a specific technical solution (client, format of data storage).
Your plans sound reasonable to achieve these goals.
What I am still missing is an import/export button for e.g. bitbills or the like, meaning a solution which needs no programming skills and is easy to handle for the average joe.
For wider adoption of bitcoin, I think people are happy with the idea of a 'wallet' but the moment you start talking about private keys and asymmetric encryption you are talking another language and they switch off.
I completely agree.
RE: 4) Redirecting change to a fixed address. Would you mind explaining why you want to do that? I mean, what is the use case that you are trying to fulfil ?
I have to admit that I have not sent bitcoins myself, I got this idea just from reading the forums. So I could be mistaken.
My use case is the following:
1) I create a 100% secure off-line savings wallet like described in
https://bitcointalksearch.org/topic/howto-create-a-100-secure-wallet-17240 2) I save the encrypted wallet in different locations. I could also choose to store just the key to this ONE address in different ways, e.g. as a QR code (encrypted of course).
3) I copy ONE bitcoin address from this wallet and use it as my 100% secure savings address
4) I send bitcoins to this ONE address from lesser secure online exchanges or from other bitcoin clients.
I can do this overs years without connecting the 100% secure wallet to the internet and still receive the bitcoins because the network stores the transactions for me. So all of my bitcoin savings are stored in a single address.
Nothing new until now, the tricky part comes when I want to spend bitcoins from the 100% secure savings address.
5) I start again my live CD with unix, connect it to the internet and send a small part of my savings to some other address.
Here lies the problem (if I understand the behaviour of the client correctly):
The client sends out part of the savings to the address where I want the coins to be spent.
The remaining part of the savings the client will send to a newly created address in my wallet (with new private key).
Now my 100% secure savings address is EMPTY and I have to use a new address for the remainder of my savings.
This forces me to store my wallet again in order not to loose the bitcoins.
But now the wallet and the new address has seen an internet connection, so I can not be sure that nobody already got access to the private key of the new savings address.
So my preferred solution for this dilemma is:
6) When executing 1) I offline create TWO wallets with a 100% secure address in each. Both are different of course.
7) When spending bitcoins from the 100% secure savings address, I tell the client that it shall send the remaining part of the bitcoins to the 100% secure address in the second wallet. Since this adress has been created offline and the wallet has never seen any internet connection, the private key to this address is still secure. So now I still have a 100% secure savings address.
Regarding your other comments I will need more time to investigate. You gave me a lot to chew through.
Again, thank you for your answer.