Author

Topic: Does such a thing even exist?! (Read 3386 times)

legendary
Activity: 1001
Merit: 1005
October 17, 2013, 06:43:15 AM
#13
Here we are in 2013, and I was happily making some bitcoin keys to store on paper, so I thought, just pop them one by one into one of those lightweight clients and I can manage the funds and check the transactions easily and quickly!

The full client takes ages to load and uses too much space in an encrypted VM. Once you add your private keys, you can't really remove it. You can't possibly suggest I will remove all the downloaded blockchain data and resync with a new wallet. You can't even specify what private key to use. I'm sure there are some cryptic commands and loops to go through to have this, I'm too tired now to read tons of documentation for achieving such a simple task: load key, spend, unload key. And even if I managed to do that, there is still the burden of the downloaded blockchain.

Armory started downloading the blockchain. Nope, no thanks, already have gigabytes of that stuff, don't do it again, bye.

Multibit has some "import/export" features but they are all proprietary formats, I can't seem to figure out how to load a private key into it.

Electrum... couldn't even get it running, I'm sure it is very good for some people's workflow but not for mine.

Blockchain.info seems to have some of this functionality, but I'm not too sure I would trust it too much, and I'm not sure I can pick the originating address for sending bitcoin.

What would you suggest I do if I'm in a hurry and need to load a paper wallet or a private key from a list and do some quick transactions? Again, I have a list of X private keys, I want to load one of them, check or execute some transactions, and remove it from the computer with no traces, under the guise of no malware present and no full blockchain checking requirements.

UnoWallet has a feature for this

https://uno-wallet.com/key/ will allow you to spend from any valid private key.

Example:
https://uno-wallet.com/key/5HpHagT65TZzG5LM2WEWDM8S64k4xwutTpY9xjhtU1kqZd9gmoW

Of course, the keys go to their server, so I would suggest it for one-time use only. If you find a private key somewhere that you want to "empty" into some other address, then this is a good tool for it.
b!z
legendary
Activity: 1582
Merit: 1010
September 28, 2013, 09:08:05 AM
#12
Blockchain.info can import priv keys in many formats quite easily. Try it.
legendary
Activity: 3416
Merit: 1912
The Concierge of Crypto
September 20, 2013, 07:54:31 AM
#11
I know you don't like downloading or storing the blockchain, but I do fine with the original bitcoin-qt with coin control. I sync it with the network once a day, or once every few days, sometimes even once a week when I go on vacation or something.

I also keep and use different wallet.dat with it, and you can use pywallet to organize the keys, or even make just watching wallets.

Once Armory can use and import compressed keys, I am considering switching over just for the cold storage capabilities.

The size of the blockchain is not an issue for me, once you already have most of it. There are tons of other bloat that reside on my computer, apps, offices, games ... 11 gigs isn't much. For now. I don't think it will be an issue for the next couple of years.
legendary
Activity: 1442
Merit: 1005
August 10, 2013, 05:19:25 AM
#10
I have tried the mycelium bitcoin wallet and I must say it fits my criteria. Being open source I could possibly fork it and change it to my desires.

As always the above risks are present and are hard to mitigate.
member
Activity: 63
Merit: 10
August 08, 2013, 04:00:40 PM
#9
...
May I ask what are the known risks of accessing your wallets on a community binary download rooted Android ROM? Can you sandbox your application so other applications or system binaries can't readily access your wallets?

Sorry for not replying earlier... for some reason your post didn't show up as a reply until recently.

Caveat: speaking for my wallet application - Electroid - only.

So - on a completely rooted ROM, you have a few attack vectors to consider:
 * File access
 * Memory access
 * Input access
 * Screen capture

File access is mitigated by the fact that your entire wallet will be an encrypted database, not the items, but the entire wallet. Inside the encrypted database will also be the encrypted keys (or seeds if a derivation-based algorithm is used). So - attacker would need to know your PIN which would be used to encrypt the entire database (or you could not encrypt if chosen)... then.. past that, the attacker would need to know your password for the wallet.

Memory access, you are not at risk unless you enter your PIN and passcode while something is watching the wallet's address space. Then the PIN / passcode and private key could be discovered...

Input access has similar risk to memory access, except it is significantly easier to watch and record all presses instead of watching for memory traces and record. This /could/ be mitigated by a custom keypad... however if someone has compromised your input method, it's not too far a stretch that other items are compromised.
Willing to add a custom keypad entry in the future, however. This would at least make the attacker use input detection AND image recording...

Screen capture would let the attacker see password entry due to typical keypad feedback. This paired with file access would give the attacker full access on device.

One possibility that I just thought of, relevant to newer devices, is that there is a possibility for hardware-stored crypto keys that are limited to a given application to access - this would be a good way to force the attackers hand into memory access watching or hack the hardware crypto mechanism.

Another item is the backups, since the mechanism will use public/private keys and encryption keys protected with those, the keypair attack window will be watching memory and/or input and/or screen at key generation time. The encryption key attack window will be at each backup... however if your memory is being watched - you're losing the battle.

If interested, I could post a security analysis as a blog entry - though I suppose a living document composed of attack vectors would be better...
full member
Activity: 177
Merit: 101
August 06, 2013, 12:46:42 PM
#8
You can use "Paper wallet" for android. It is pretty complex because of offline nature and doesn't have change, though.
Jan
legendary
Activity: 1043
Merit: 1002
August 06, 2013, 12:28:16 PM
#7
just use the mycelium bitcoin wallet:

it has support to instantly import private keys. they are stored on your device only and uses our backend servers to quickly obtain balance + transactions.

With the new cold storage spending it is even easier. Nothing stored, only in-memory.
Demo: http://youtu.be/1pDSzOiFgIk

For optimal security you should use a dedicated device for this purpose. I got a second hand old android 2.2 device, nuked it to factory defaults, installed cyanogenmod with no SIM card, and only installed the Mycelium Bitcoin Wallet on it.

Disclaimer: I am a Mycelium Bitcoin Wallet developer.
hero member
Activity: 668
Merit: 501
July 02, 2013, 07:43:52 AM
#6
just use the mycelium bitcoin wallet:

it has support to instantly import private keys. they are stored on your device only and uses our backend servers to quickly obtain balance + transactions.

legendary
Activity: 1442
Merit: 1005
July 01, 2013, 02:01:20 PM
#5
All of the clients you mention - Bitcoin QT, Armory, Electrum, blockchain and MultiBit have the ability to import and export private keys.

The thing is if you make a mistake with private keys in Bitcoin you can lose your money permanently. If you are tired and in a hurry you are more likely to miss something.

If you are using an encrypted VM and reset the VM afterwards be careful of this gotcha.  You import a private key, send a transaction and miss that the change goes to a different address.  I have unfortunately had people delete a wallet when they thought they had a copy of the private keys but they missed the change address's private key. Money lost.


Yes, having the flexibility of combining wallets (importing multiple private keys), sharing them (exporting multiple private keys) and the ease of use is in conflict with the security. You must send change to primary public key when spending, or you can diverge the wallets and fragment your control over the coins.

Blockchain.info seems to have some of this functionality, but I'm not too sure I would trust it too much, and I'm not sure I can pick the originating address for sending bitcoin.

You can from the Web client.  You choose "custom" when sending.

Also, the Mycelium Bitcoin Wallet client (Android) provides an easy method for importing (scanning) a private key.  (It is new, beta software yet and was just recently made available so use care such as only dealing with paper keys with small amounts, for now.)

Yes, I managed to do this, I can send coins from received wallets using a specific send address which fits the purpose. Also the imported private key can be watch only, you need to provide the private key any time you want to spend, which is good.

There are three things bad in this scenario:
- blockchain.info is not immune to spoofing, and you might share your private key while online
- You can't remove the private keys once imported (everyone seems to think that public keys are some kind of pop and drop cans of hot burning lava, like they go bad after a while and you need fresh new containers...
- local security is a tight requirement as you could get your password and private keys logged

Biased input here, but, my Electrum for Android - Native Edition wallet will offer support for multiple wallets. To support what you want, I could implement a wallet-flavor where it is temporary / in memory only and can store the configuration that all change must go to the source address.

Example flow:

 * Tap wallet drop-down
 * Select temporary wallet (would need to come up w/ naming)
 * Wallet gets selected
 * Select option to scan key
 * Hold phone/device over paper key
 * Gets added
 * Electrum servers lookup transactions associated w/ the address and populate temporary wallet data
 * Use option to send coin, select address you want to send to either by scanning using camera, address-book, or manual entry (where you could paste if off web page)... input amount.. send

Then you can watch for the transaction to complete or immediately clear the temporary wallet.

.. another option for use-case could be to have that address as a watch-only address, then when you need to send from it, it would ask you to provide the private key source (ex: paper wallet)

Let me know if this sounds sane to you...

Will need to eventually document all the support flows / use-cases so that I know what kind of UI to design and develop...
Your first checklist is the same use scenario as a watch-only address, with the added benefit of being able to remove the key from tracking. Yes, I would like a lightweight secure and quick bitcoin wallet that can work like Chrome's incognito mode, where everything you do is not saved anywhere after you exit incognito. There is that point about preventing change return addresses and reusing the primary public key. Having this special mode work with QR private keys, pasting keys or a generally available brainwallet scheme would benefit users. I'll look into voting for it in your development kickstarter.

May I ask what are the known risks of accessing your wallets on a community binary download rooted Android ROM? Can you sandbox your application so other applications or system binaries can't readily access your wallets?
member
Activity: 63
Merit: 10
June 30, 2013, 10:26:37 PM
#4
Biased input here, but, my Electrum for Android - Native Edition wallet will offer support for multiple wallets. To support what you want, I could implement a wallet-flavor where it is temporary / in memory only and can store the configuration that all change must go to the source address.

Example flow:

 * Tap wallet drop-down
 * Select temporary wallet (would need to come up w/ naming)
 * Wallet gets selected
 * Select option to scan key
 * Hold phone/device over paper key
 * Gets added
 * Electrum servers lookup transactions associated w/ the address and populate temporary wallet data
 * Use option to send coin, select address you want to send to either by scanning using camera, address-book, or manual entry (where you could paste if off web page)... input amount.. send

Then you can watch for the transaction to complete or immediately clear the temporary wallet.

.. another option for use-case could be to have that address as a watch-only address, then when you need to send from it, it would ask you to provide the private key source (ex: paper wallet)

Let me know if this sounds sane to you...

Will need to eventually document all the support flows / use-cases so that I know what kind of UI to design and develop...
legendary
Activity: 2506
Merit: 1010
June 30, 2013, 08:01:49 PM
#3
Blockchain.info seems to have some of this functionality, but I'm not too sure I would trust it too much, and I'm not sure I can pick the originating address for sending bitcoin.

You can from the Web client.  You choose "custom" when sending.

Also, the Mycelium Bitcoin Wallet client (Android) provides an easy method for importing (scanning) a private key.  (It is new, beta software yet and was just recently made available so use care such as only dealing with paper keys with small amounts, for now.):
 - https://play.google.com/store/apps/details?id=com.mycelium.wallet
legendary
Activity: 1708
Merit: 1066
June 30, 2013, 05:59:26 PM
#2
All of the clients you mention - Bitcoin QT, Armory, Electrum, blockchain and MultiBit have the ability to import and export private keys.

The thing is if you make a mistake with private keys in Bitcoin you can lose your money permanently. If you are tired and in a hurry you are more likely to miss something.

If you are using an encrypted VM and reset the VM afterwards be careful of this gotcha.  You import a private key, send a transaction and miss that the change goes to a different address.  I have unfortunately had people delete a wallet when they thought they had a copy of the private keys but they missed the change address's private key. Money lost.

legendary
Activity: 1442
Merit: 1005
June 30, 2013, 05:00:07 PM
#1
Here we are in 2013, and I was happily making some bitcoin keys to store on paper, so I thought, just pop them one by one into one of those lightweight clients and I can manage the funds and check the transactions easily and quickly!

The full client takes ages to load and uses too much space in an encrypted VM. Once you add your private keys, you can't really remove it. You can't possibly suggest I will remove all the downloaded blockchain data and resync with a new wallet. You can't even specify what private key to use. I'm sure there are some cryptic commands and loops to go through to have this, I'm too tired now to read tons of documentation for achieving such a simple task: load key, spend, unload key. And even if I managed to do that, there is still the burden of the downloaded blockchain.

Armory started downloading the blockchain. Nope, no thanks, already have gigabytes of that stuff, don't do it again, bye.

Multibit has some "import/export" features but they are all proprietary formats, I can't seem to figure out how to load a private key into it.

Electrum... couldn't even get it running, I'm sure it is very good for some people's workflow but not for mine.

Blockchain.info seems to have some of this functionality, but I'm not too sure I would trust it too much, and I'm not sure I can pick the originating address for sending bitcoin.

What would you suggest I do if I'm in a hurry and need to load a paper wallet or a private key from a list and do some quick transactions? Again, I have a list of X private keys, I want to load one of them, check or execute some transactions, and remove it from the computer with no traces, under the guise of no malware present and no full blockchain checking requirements.
Jump to: