Help spread awareness for build reproducibility
Please help us spread the word discussing transparency with Ballet Crypto via their Twitter!
Do your own research!
Try out searching for "lost bitcoins", "stole my money" or "scammers" together with the wallet's name, even if you think the wallet is generally trustworthy. For all the bigger wallets you will find accusations. Make sure you understand why they were made and if you are comfortable with the provider's reaction.
The Analysis ¶
Ballet Crypto is an app that acts as a companion to your Ballet product, allowing you to manage your cryptocurrencies, check their market value and add additional ones to your wallet.
The app does not store your wallet’s private keys. It also does not track, store or transmit your personal or financial data outside the app.
This app is the companion app to BIP38 encrypted private key “paper” wallets. The idea is that the company Ballet Global Inc. sells credit card sized tokens that carry an address, a private key and a password while the app itself doesn’t store the private keys.
We usually classify companion apps that do not store private keys as “not a wallet” but here the security aspects of the “hardware wallet” as they call it are so blatantly different that we have to consider the app a wallet anyway.
Yes, the provider claims that the private keys doesn’t get stored in the app but in contrast to actual hardware wallets that never expose the private keys to companion apps, this BIP38 wallet’s private keys get reconstructed in the app, supposedly to do a send but we are all about verification, so we would like to know if we could audit the app to see if it really doesn’t secretly send the private keys to some server.
The other obvious issue is that the private keys are all generated by the provider! The cards they sell are what protects the keys. There is no way of knowing if anybody in the supply chain is keeping copies. The founder of the company Bobby Lee, a well known figure in the Bitcoin space acknowledges that trust is needed but emphasizes that he is trustworthy. In the spirit of “Don’t trust - verify!” we would/will certainly file this “hardware wallet” also as not verifiable but the companion app given the lack of source code is also not verifiable.
Without public source of the reviewed release available, this product cannot be verified!
As part of our Methodology, we ask:Is the source code publicly available? If not, we tag it
A wallet that claims to not give the provider the means to steal the users’ funds might actually be lying. In the spirit of “Don’t trust - verify!” you don’t want to take the provider at his word, but trust that people hunting for fame and bug bounties could actually find flaws and back-doors in the wallet so the provider doesn’t dare to put these in.
Back-doors and flaws are frequently found in closed source products but some remain hidden for years. And even in open source security software there might be catastrophic flaws undiscovered for years.
An evil wallet provider would certainly prefer not to publish the code, as hiding it makes audits orders of magnitude harder.
For your security, you thus want the code to be available for review.
If the wallet provider doesn’t share up to date code, our analysis stops there as the wallet could steal your funds at any time, and there is no protection except the provider’s word.
“Up to date” strictly means that any instance of the product being updated without the source code being updated counts as closed source. This puts the burden on the provider to always first release the source code before releasing the product’s update. This paragraph is a clarification to our rules following a little poll.
We are not concerned about the license as long as it allows us to perform our analysis. For a security audit, it is not necessary that the provider allows others to use their code for a competing wallet.
Share onTwitter Facebook LinkedIn
Or embed a widget in your website
<iframe src="https://walletscrutiny.com/widget/#appId=iphone/com.balletcrypto&theme=auto&style=short" name="_ts" style="min-width:180px;border:0;border-radius:10px;max-width:280px;min-height:30px;"> </iframe>
<iframe src="https://walletscrutiny.com/widget/#appId=iphone/com.balletcrypto&theme=auto&style=long" style="max-width:100%;width:342px;border:0;border-radius:10px;min-height:290px;"> </iframe>