Author

Topic: Idea: Zero-Storage Wallet (Read 966 times)

newbie
Activity: 52
Merit: 0
November 26, 2011, 03:15:30 PM
#10
It does seem that the standard client has way too many dependencies in general.  Unfortunately, building a GUI that is really cross platform seems not to be an easily solved problem.  I find all of boost, qt, gtk, etc. to be quite daunting and error prone to configure and build (I mostly run on Mac's and Ubuntu).

Are people interested developing a more minimal server client (ideally, for me, all in Python)?  What projects already exist with goals like that?

For the client UI, it seems to me that an embedded web server whose client is built in HTML/JavaScript would be preferable to all the complex GUI Frameworks that are being used today.
hero member
Activity: 518
Merit: 500
November 26, 2011, 02:14:50 PM
#9
Quote
In my spare time (not as much as I would like) I have been experimenting w/ a deterministic wallet variant which generates private keys "on demand" storing only the public key in the wallet.  The goal would be to never write any private key to disk.  However the way bitcoind is currently written makes that a challenge and will require extensive rewrite of the db and log code.

Exactly. The current code is a complete mess no wonder the wallet encryption bug. A Berkeley database, seriously ?

newbie
Activity: 52
Merit: 0
November 26, 2011, 02:10:17 PM
#8
It seems that Electrum client will not run on Mac OS/X (PyGtk does not seem to be supported on Mac).  Anyone know how I can get a Mac version running?

Mike Koss
CoinLab.com
newbie
Activity: 52
Merit: 0
November 26, 2011, 12:17:28 PM
#7
Thanks for the links!  I especially like electrum - I'll dig into the code there and try it out.

Mike Koss
CoinLab.com
legendary
Activity: 1896
Merit: 1353
November 26, 2011, 01:47:47 AM
#6
I feel nervous about preserving private keys in any of the wallet solutions I've seen.  In all cases, even if the keys in the wallet are encrypted, there is a non-zero chance the wallet.dat file (or equivalent) will be lost, making the deposits in the wallet irrevocably lost.

So, why not generate all the public/private keys in a wallet based on a user-provided seed?  It's certainly possible to deterministically regenerate an arbitrary number of public/private key pairs, given only a random seed as a starting point (e.g., a string like "service-name/user-name/passphrase").

If the wallet need never be stored because it can always be regenerated, then you just have to ensure that you don't loose the seed value (i.e., your password).

I'd love to hear if someone has already implemented something like this.  I'd be willing to work on including it as an option in the BitCoin client as well.

Thanks,
Mike Koss
Coinlab.com
Seattle, WA

see http://ecdsa.org/electrum/
and this thread: https://bitcointalk.org/index.php?topic=50936.40
full member
Activity: 154
Merit: 102
Bitcoin!
November 26, 2011, 01:46:15 AM
#5
As long as you have a strong (and long) enough passphrase, I like the idea of a deterministic wallet where the private keys are only ever generated in memory when you want to send money.
donator
Activity: 1218
Merit: 1079
Gerald Davis
November 25, 2011, 08:45:51 PM
#4
The term is "deterministic wallet".  

http://bitcoin.stackexchange.com/questions/718/what-is-a-deterministic-wallet

There are some that exist.   Most use a pass-phrase to generate a seed to recreate a "traditional wallet".  

In my spare time (not as much as I would like) I have been experimenting w/ a deterministic wallet variant which generates private keys "on demand" storing only the public key in the wallet.  The goal would be to never write any private key to disk.  However the way bitcoind is currently written makes that a challenge and will require extensive rewrite of the db and log code.
newbie
Activity: 52
Merit: 0
November 25, 2011, 07:29:43 PM
#3
That sounds close - it eliminates to possibility of losing a wallet.dat file.  But it would also be nice if private keys are NEVER written to disk, and so are much less vulnerable to theft.
legendary
Activity: 1708
Merit: 1010
November 25, 2011, 04:38:04 PM
#2
There exists a forked client that does exactly this, allowing the user to probably recreate a damaged or lost wallet.dat file based upon a secret passphrase used as the seed for new addresses, but I can't remember the name of it nor could I vouch for it's trustworthyness otherwise.
newbie
Activity: 52
Merit: 0
November 25, 2011, 04:34:58 PM
#1
I feel nervous about preserving private keys in any of the wallet solutions I've seen.  In all cases, even if the keys in the wallet are encrypted, there is a non-zero chance the wallet.dat file (or equivalent) will be lost, making the deposits in the wallet irrevocably lost.

So, why not generate all the public/private keys in a wallet based on a user-provided seed?  It's certainly possible to deterministically regenerate an arbitrary number of public/private key pairs, given only a random seed as a starting point (e.g., a string like "service-name/user-name/passphrase").

If the wallet need never be stored because it can always be regenerated, then you just have to ensure that you don't loose the seed value (i.e., your password).

I'd love to hear if someone has already implemented something like this.  I'd be willing to work on including it as an option in the BitCoin client as well.

Thanks,
Mike Koss
Coinlab.com
Seattle, WA
Jump to: