4 ms·
A state-less browser-based Bitcoin wallet that connects to the p2p network using WebSocket? Using a deterministic wallet seeded with a password you type once wh
by mrb 13y ago
A state-less browser-based Bitcoin wallet that connects to the p2p network using WebSocket? Using a deterministic wallet seeded with a password you type once when opening the page? Is this the technical core of what Dark Wallet is about?
Wow, I have been in Bitcoin for 3 years, and I can't believe I never put thin web client + deterministic seeded wallet together... Even without implementing anything else[1] this would be HUGE, INSANELY useful.
- There would be zero efforts in getting started using Bitcoin.
- No software/app to install.
- Open a Dark Wallet page (hosted anywhere), type in a password, that's it you can see your Bitcoin addresses and receive coins.
- If you received coins in the past, you see your balance, and are ready to send coins. Dark Wallet can use SPV[2] to automatically discover the balance of your addresses. It could use HTML5 local storage just to cache a few things to speed up auto-discovery.
- You could even save the Dark Wallet html/js on your local harddrive and just open this up next time.
- If Bitcoin nodes have native support for acting as WebSocket servers, this would make Dark Wallet completely server-less.
- Dark Wallet would dynamically find p2p Bitcoin nodes via DNS, just like Bitcoin-QT does it today.
- No need to back up or save anything. Coins cannot be accidentally lost as long as you remember your password and as long as the password is strong. The password you type is the seed generating your wallet's private keys.
[1] https://darkwallet.unsystem.net https://darkwallet.unsystem.net lists: auto-anonymizer, broadcasters, encrypted messaging, encrypted shop-front, contracts, escrows, etc.
[2] Simple Payment Verification.
EDIT: Looking more into Dark Wallet, it seems they want to implement it as a browser extension, which would involve a non-zero effort to install. Argh! There is a huge value to have NOTHING to install. Another way to understand what I suggest is a server-less blockchain.info wallet.
- sktrdie 13y agoEven if the Bitcoin protocol adopted WebSockets, the browser wouldn't be able to initiate the connections between peers. They would only be able to receive them from regular Bitcoin clients that can initiate connections [1]. 1. http://stackoverflow.com/questions/4118272/do-websockets-allow-for-p2p-browser-to-browser-communication http://stackoverflow.com/questions/4118272/do-websockets-all...
- johnpmayer 13y agoBut the browser could simply do verified transaction signing using known code. It severely lowers the trust barrier.
- kolinko 13y agoWell, there are solutions that you described, for example: http://carbonwallet.com http://carbonwallet.com No required plugins, no mess related to p2p network connection, and just as secure/safe from government as anything. Darkwallet - meh. A case of overcomplicating a simple thing.
- pixelcort 13y agoThere's also http://brainwallet.org/ http://brainwallet.org/ for a similar concept.
- kolinko 13y agoYeah. I mentioned carbonwallet, because it tracks the balance, while brainwallet only shows the address. I personally prefer the latter, but the former matches parent's description more closely.
- kybernetikos 13y agoI used the code from brainwallet to make a system that allows you to create a bitcoin address, encode the address in your gravatar image, and then send secret messages / get the bitcoin address of anyone who's done this with their gravatar. It's nice because you only need their email or the hash of their email. http://kybernetikos.github.io/VisualSecrecy/ http://kybernetikos.github.io/VisualSecrecy/ It can either generate a key pair from your password or use your password to encrypt an imported keypair. If you use the address generated from the password, it is stateless, just as the parent suggested.
- neals 13y agoSo if 2 people have the same password, they have the same wallet?
- phaer 13y agoYou could use a username too, right? Because <unique username> + <any password> should be unique.
- mistercow 13y agoNot quite. Say user "fortunate_sonar" uses "arkansas" for a password, and "fortunate_son" uses "kansas" as a password. You can use a delimiter to reduce the chances of that happening, but it's not strictly unique.
- gabemart 13y agoNot really. A username of 8 characters and a password of 8 characters ensures no more entropy than a password of 16 characters and not bothering with a username. It might even provide less, given that the user is more likely to share their username with others than they are to share half their password.
- rch 13y agoHow about a long-ish memorable phrase and password, encrypted with scrypt? Hit the output with base64 and use the first N characters of the, possibly hashed, result (haven't tried it, so I'm not sure what stage of the output would be most memorable). The results should be about as easy to remember as a routing number + bank account, which is something my friends and I all do.
- conformal 13y ago> - If Bitcoin nodes have native support for acting as WebSocket servers, this would make Dark Wallet completely server-less. we are working on this with btcd - the wallet and gui are decoupled from the blockchain maintenance. all blockchain-related operations can be done via json/websockets.
- kyledrake 13y agoIs there a json API for your blockchain daemon? I would love to take a look at it for Coinpunk.