<p>It is pretty much impossible to verify 100% if an implementation is correct. </p>

<p>See for example <a href="https://backdoorhiding.appspot.com/" rel="nofollow">https://backdoorhiding.appspot.com/</a> or "The Underhanded C Contest" at <a href="http://underhanded.xcott.com/" rel="nofollow">http://underhanded.xcott.com/</a> - in both of these, people compete to write code that looks secure, but isn't.</p>

<p>Similarly, there are theories that the NSA has put back doors in various random number generators, even open-source ones. It is, however, very difficult to test this theory. </p>

CC BY-SA 3.0
2014-02-18T20:59:51.827Z
Thanks.  I understand the difficulty with 100% verification, but it seems an expert group's best effort at verification would be worth something. A combination of code (source code, byte code, and/or machine code) analysis, plus an execution test suite, would go a long way towards fighting mischief.
obelia
CC BY-SA 3.0
2014-02-18T21:43:34.883Z
Third party audits cost a lot of money, especially if done right. I am sure that, if you wanted to pay, bitcoind would *LOVE* an audit.
AMADANON Inc.
CC BY-SA 3.0
2014-02-18T20:46:36.250Z
2014-02-18T20:46:36.250Z
AMADANON Inc.
<p>Short answer: no. Imagine this scenario: a developer writes a closed-source Android wallet that becomes extremely popular. At some point the combined worth of the user wallets is $100M. The developer could have purposely left an open vulnerability, and claimed that a hacker exploited it. There would be no way to know if he was telling the truth.</p>

<p>Rule of thumb: keep the bulk of your BTC in cold storage. Online wallets should be treated like the wallet in your pocket. How much cash are you comfortable carrying around, knowing that you could lose your wallet and it's gone? That's how much you should have in an online wallet.</p>

CC BY-SA 3.0
2014-02-18T18:41:29.093Z
Thanks.  I don't use online wallets, like to keep things local.  I elaborated on my original question.
obelia
CC BY-SA 3.0
2014-02-18T20:21:18.850Z
I think, in this case, "online" means "on a computer with an internet connection", not "a website".
AMADANON Inc.
CC BY-SA 3.0
2014-02-18T21:15:20.687Z
Yes, that's what I meant by online. Presumably your phone is online most of the time, and as such it's vulnerable to a wide array of exploits.
Diego Basch
CC BY-SA 3.0
2014-02-18T21:41:04.250Z
obelia: google "air gap" for a great way to keep your bitcoin safer. It is a hassle though.
AMADANON Inc.
CC BY-SA 3.0
2014-02-18T21:49:58.227Z
@AMADANONInc. re: air gap - I wonder if there's an easy to do that, like keep wallet.dat on a flash drive and only plug it in to transact.
obelia
CC BY-SA 3.0
2014-02-18T21:51:26.403Z
My wallet is encrypted/pass-phrase-protected.  I was under the impression that that is fairly secure as long as my pass phrase is kept secret.
obelia
CC BY-SA 3.0
2014-02-18T22:32:18.423Z
The main threat are keyloggers in viruses / trojans. Cryptocurrency has made hard drive contents potentially valuable to malware authors. Before this, the best they could do was turn your computer into a bot to click on ads or crack passwords. Now they can directly steal significant money. If you have a significant amount of money in bitcoins, cold storage is the way to go. Why risk it?
Diego Basch
CC BY-SA 3.0
2014-02-18T18:22:15.560Z
2014-02-18T18:22:15.560Z
Diego Basch
<p>Is there any validation service that tests/validates/vets wallet implementations?</p>

<p>I use bitcoin-qt on the desktop and I'm not worried about that wallet, I assume it's been well vetted, but if I were to get a wallet for my (Android) phone, is there a way I can be assured the implementation is correct, secure, and not malevolent?</p>

<p>Added elaboration: It seems feasible for a trusted 3rd party to be in the business of validating wallet implementations. Wallet implementers would submit their implementation to the service, the service would run the wallet through a test suite, examine the code, etc. and if the implementation passed the service would publish a hash of the wallet. When you get a copy of the wallet implementation you could check its hash and against the published hash so you'd know it hasn't been tampered with.</p>

<p>Likewise an online wallet service (Mt. Gox) could submit its implementation for 3rd party validation to increase its trust factor.</p>

<wallet><security>
bitcoin wallet validation/vetting
obelia
# bitcoin wallet validation/vetting

(Asked by: username_0 on 2014-02-18)

Is there any validation service that tests/validates/vets wallet implementations?

I use bitcoin-qt on the desktop and I'm not worried about that wallet, I assume it's been well vetted, but if I were to get a wallet for my (Android) phone, is there a way I can be assured the implementation is correct, secure, and not malevolent?

Added elaboration: It seems feasible for a trusted 3rd party to be in the business of validating wallet implementations. Wallet implementers would submit their implementation to the service, the service would run the wallet through a test suite, examine the code, etc. and if the implementation passed the service would publish a hash of the wallet. When you get a copy of the wallet implementation you could check its hash and against the published hash so you'd know it hasn't been tampered with.

Likewise an online wallet service (Mt. Gox) could submit its implementation for 3rd party validation to increase its trust factor.

**Tags:** wallet, security


---

## 2 answers

### Answer by username_1 on 2014-02-18. Score: 1 | Accepted answer

It is pretty much impossible to verify 100% if an implementation is correct.

See for example <https://backdoorhiding.appspot.com/> or "The Underhanded C Contest" at <http://underhanded.xcott.com/> - in both of these, people compete to write code that looks secure, but isn't.

Similarly, there are theories that the NSA has put back doors in various random number generators, even open-source ones. It is, however, very difficult to test this theory.

> **Comments:**
> **username_0**: Thanks.  I understand the difficulty with 100% verification, but it seems an expert group's best effort at verification would be worth something. A combination of code (source code, byte code, and/or machine code) analysis, plus an execution test suite, would go a long way towards fighting mischief.  
> **username_1**: Third party audits cost a lot of money, especially if done right. I am sure that, if you wanted to pay, bitcoind would *LOVE* an audit.  

---

### Answer by username_2 on 2014-02-18. Score: 1

Short answer: no. Imagine this scenario: a developer writes a closed-source Android wallet that becomes extremely popular. At some point the combined worth of the user wallets is $100M. The developer could have purposely left an open vulnerability, and claimed that a hacker exploited it. There would be no way to know if he was telling the truth.

Rule of thumb: keep the bulk of your BTC in cold storage. Online wallets should be treated like the wallet in your pocket. How much cash are you comfortable carrying around, knowing that you could lose your wallet and it's gone? That's how much you should have in an online wallet.

> **Comments:**
> **username_0**: Thanks.  I don't use online wallets, like to keep things local.  I elaborated on my original question.  
> **username_1**: I think, in this case, "online" means "on a computer with an internet connection", not "a website".  
> **username_2**: Yes, that's what I meant by online. Presumably your phone is online most of the time, and as such it's vulnerable to a wide array of exploits.  
> **username_1**: username_0: google "air gap" for a great way to keep your bitcoin safer. It is a hassle though.  
> **username_0**: @AMADANONInc. re: air gap - I wonder if there's an easy to do that, like keep wallet.dat on a flash drive and only plug it in to transact.  
> **username_0**: My wallet is encrypted/pass-phrase-protected.  I was under the impression that that is fairly secure as long as my pass phrase is kept secret.  
> **username_2**: The main threat are keyloggers in viruses / trojans. Cryptocurrency has made hard drive contents potentially valuable to malware authors. Before this, the best they could do was turn your computer into a bot to click on ads or crack passwords. Now they can directly steal significant money. If you have a significant amount of money in bitcoins, cold storage is the way to go. Why risk it?  

---

