Bitcoin Forum

Bitcoin => Armory => Topic started by: Colba17 on May 26, 2017, 08:20:16 AM



Title: Can I create a deterministic wallet and export/disclose individual keys?
Post by: Colba17 on May 26, 2017, 08:20:16 AM
If one private key of a deterministic wallet gets compromised, are the other keys (and the seed) still secure?

Example: create an armory offline wallet with seed. In this case armory 0.90-beta installed in ubuntu 12.04 offline computer.

I want to transfer some BTC from one address in the offline armory wallet by importing the private key for one of the addresses in the offline wallet to a Bitcoin Core online wallet for whatever reason. If the private key is somehow compromised, are the remaining BTC on different addresses in the same armory offline wallet still secure (same seed)? Thanks!!


Title: Re: Can I create a deterministic wallet and export/disclose individual keys?
Post by: goatpig on May 26, 2017, 09:53:51 AM
If a private key on an Armory address chain gets compromised, consider the whole wallet compromised.


Title: Re: Can I create a deterministic wallet and export/disclose individual keys?
Post by: clemdementhe on May 26, 2017, 02:57:59 PM
If a private key on an Armory address chain gets compromised, consider the whole wallet compromised.

If you have the time, would you mind explaining why? Or point us to an explanation? Is there even a way to know that an address has been generated from a seed? Thanks.


Title: Re: Can I create a deterministic wallet and export/disclose individual keys?
Post by: goatpig on May 29, 2017, 10:28:21 AM
https://github.com/goatpig/BitcoinArmory/blob/master/cppForSwig/EncryptionUtils.cpp#L825

Code is self explanatory. Public key N+1 is derived from (public key N) x Chaincode. The chaincode is a public member. If you want an ELI5, search this forum, there are a few written.


Title: Re: Can I create a deterministic wallet and export/disclose individual keys?
Post by: clemdementhe on May 29, 2017, 08:41:16 PM
Thanks. I thought the chaincode was wallet-specific. I'll have to do more reading...


Title: Re: Can I create a deterministic wallet and export/disclose individual keys?
Post by: goatpig on May 30, 2017, 06:57:33 AM
The chaincode is wallet specific. Public member means it is treated as publicly exposed data in the wallet. It is never encrypted and carried around in WO wallets. To put this in a realistic scenario, an attacker with your WO wallet and a single private key on the derivation chain can reveal the entire private chain.


Title: Re: Can I create a deterministic wallet and export/disclose individual keys?
Post by: clemdementhe on May 30, 2017, 11:24:00 AM
Ah, of course, that makes sense now. Thanks for taking the time. That was a potential vulnerability I'd missed but will now take into account.