Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
Already on GitHub? Sign in to your account
Add Bither to wallets #724
Conversation
|
With all due respect, the XRANDOM "feature" sounds like a recipe for disaster. Please have a look at https://medium.com/@octskyward/type-safety-and-rngs-40e3ec71ab3a (last paragraph). |
|
@schildbach Thanks. I have read the article. However XRANOM mixes extra entropy with the data taken from Adding entropy is not "disaster". Downgrading entropy is. Some random number issues like last blockchain.info's problem, are because of the downgrading of entropy (using 8 bits entropy to generate random numbers). If adding entropy from user's environment is a "disaster", does that mean rolling a dice to generate a private key is also a "disaster"? Thanks for your article :) |
|
Not too put too fine a point on it, but I just opened an issue for what I think is a minor XRandom bug in the bither-android repo... bither/bither-android#14 I think the same issue exists in the desktop client too. (I didn't check the ios client.) I have no idea if the bug is actually exploitable (if I had to guess, I'd guess not, but I'm no cryptographer....) |
saivann
added
the
Wallets
label
Feb 1, 2015
bitwolaiye
commented
Feb 16, 2015
|
We just uploaded a demo video to youtube.com about "How to use Bither's HDM". Also I want to remind that:
|
|
@bitwolaiye thanks for the demo video! Wallet reviews are time consuming, and we currently have a backlog, but Bither will be reviewed just as soon as we have time. Thanks for being patient! |
harding
self-assigned this
Feb 20, 2015
harding
added
the
Help Needed
label
Feb 27, 2015
harding
removed their assignment
Feb 27, 2015
harding
self-assigned this
Apr 10, 2015
harding
removed
the
Help Needed
label
Apr 12, 2015
|
I have reviewed the Bither wallet based on the current wallet requirements criteria and my evaluation is below. The summary is that I can recommend this wallet for listing. I concur with the scoring in the pull request. BitherVersion 1.3.1 & 1.3.4Review version 2015050102NOTE Most of this review was performed on version 1.3.1. 1.3.4 passes additional criteria as tagged with (v1.3.4). WalletsThe wallet list is based on the personal evaluation of the maintainer(s) and regular contributors of this site, according to the criterias detailed below. These requirements are meant to be updated and strengthened over time. Innovative wallets are exciting and encouraged, so if your wallet has a good reason for not following some of the rules below, please submit it anyway and we'll consider updating the rules. NOTE Bither can (concurrently) work in four modes
NOTE This means that all of the requirements (except for hardware wallets and purely hosted wallets) apply to Bither. NOTE None of these modes are explained well. Even very experienced Bitcoin users may not be able to figure out how the different modes work without significant time and effort. Perhaps the Private mode is only still there for backward compatibility with existing wallets. NOTE Mobile UI is a bit confusing at times; a long press is sometimes required on an icon right next an icon that does not require long press. Some functions may not be discoverable. NOTE It is not clear what security the multisig server adds since the hot wallet automatically authenticates to the server with credentials established when the wallet is created and and the cold wallet authenticates using BitID with cold HD key 0. The multisig server does not seem to gate any operations. It’s not clear what purpose it serves. NOTE In HDM mode, it might be slightly misleading to have a device called a cold wallet because that may imply to some that stored funds are some how safer being associated with a cold wallet in some way. However, in HDM mode, the cold wallet makes funds available in case of a server failure, but does not make the funds any safer or more secure (when the server is available). NOTE Bither wallets have a “Check Private Keys” function which seems unnecessary. If there is a concern about corruption, the wallet should check automatically and not put the burden on the user. It is unlikely that most users will understand what this is for. Basic requirements:
PASS Developers are responsive in forums; no issues for concern found; no independent audit is available
PASS None noted in above sources
PASS None noted in above sources. One example was quickly addressed bither/bither-android#14
PASS No indications of any issues. Uses spongycastle v1.51.0.0, OpenSSL v1.0.110. NOTE There is slight controversy on the usage of Bither’s XRandom feature bitcoin#724 NOTE The Android app requires access to many unusual capabilities of the device, most likely for XRandom to work. Users should be hesitant to give a Bitcoin wallet access to all these capabilities.
PASS No indications not tested. Modules on github have reasonable test routines. Exact testing methodology unknown.
PASS Jul 2014 Original Android and iOS wallets Jan 2015 Desktop Feb 2015 HD/multisig support (HDM) Apr 2015 HD support (HD single signature)
PASS No concerning bugs found.
PASS HTTP redirects to HTTPS with a 301
PASS Overall rating: A+
PASS HSTS enabled with a max-age of 365 days
PASS https://bither.net/about/index.html
NOTE Private keys are stored online in Private mode NOTE HD seeds are stored online in HDM mode and (v1.3.4) HD mode
PASS (v1.3.4) Password are subject to a reasonable password strength meter and weak passwords are not accepted. NOTE (v1.3.4) It is possible to disable the password strength check in settings. NOTE Private keys are encrypted with AES from keys generated from passwords using Scrypt.
N/A
PASS Individual private keys can be backed up via QR code (tedious) from hot and cold wallets. PASS HDM hot wallets are backed up using a HDM cold wallets. Cold wallets can be cloned for backup. NOTE HDM HD seed can be backed up via QR code or BIP39 phrase from hot and cold wallets, but there is no way to restore Bither HDM wallets with the HD seed. See below for the method for restoring HDM wallets. PASS (v1.3.4) HD mode seed can be backed up via QR code or BIP39 phrase.
PASS Individual private keys can be restored to another hot wallet using encrypted QR code option NOTE There were many private key export options, but only the encrypted QR code option worked for recovery. The instructions should be more specific. PASS Used the Advanced “HDM Recovery” option on new hot wallet to create an “HDM Recovery” wallet by using the cold wallet (fairly complex). Instead of an “HDM Hot” wallet as on the new original device, this created an “HDM Recovery” wallet on the new device. PASS Used the Clone Cold Wallet option to create a new cold wallet. Either the new or the old cold wallet could co-sign multisig transactions. PASS (v1.3.4) HD mode wallet could be restored to desktop wallet using “Import” option. NOTE (v1.3.4) I could not find an option on mobile (iOS or Android) to restore an HD mode wallet (only desktop)
PASS Available on github https://github.com/bither/
NOTE This is HDM mode
NOTE Server does not provide 2FA. In HDM mode the server seems to be intended more for availability
PASS User requires password to unlock server API authentication token
PASS User can move funds out of multi-signature wallet without server access
N/A
Optional criterias (some could become requirements):
FAIL No, but have had some informal external code reviews.
FAIL (v1.3.4) In HDM mode, change is returned to sending multisig address PASS (v1.3.4) In HD mode, change is returned to a new change address for each transaction (m/44’/0’/0’/1/i) FAIL In private address mode, change is returned to the sending address.
PASS (v1.3.4) In HD mode a new receiving address is displayed for each transaction NOTE (v1.3.4) Note that in HD mode, a user should be able to manually request a new address so that an address that is not yet paid is not reused, or a new address should be displayed each time viewed (but the existing UI does not lend itself to that) FAIL In HDM mode and Private address mode new addresses must be manually requested by the user and manually selected for receiving
FAIL Received from addresses are shown in UI NOTE Receiving address should be shown
PASS Uses deterministic ECDSA k values. Verified by hand-generating a signature of a Bither transaction with pybitcointools (which implements RFC 6979) and verifying that the Bither signature matched.
PASS Provides support email: support@bither.net
N/A
PASS HDM mode supports BIP32 with BIP44 standard path m/44’/0’/0’/0/i. BIP39 phrase had dashes between words. When dashes were replaced with spaces, independent generation of a BIP32 tree and verification of the generated multisig addresses was possible. PASS (v1.3.4) HD mode supports BIP32 with BIP44 path m/44’/0’/0’/c/i. BIP39 phrase had dashes between words. When dashes were replaced with spaces, independent generation of the BIP32 tree and verification of the generated receive and change addresses was possible.
PASS in HDM mode: A cold HDM wallet is set up which can recover funds with the Bither server without the hot wallet PASS (v1.3.4) in HD mode: BIP39 phrase and QR code is available during setup NOTE in Private mode: No explicit step during new address generation for backup of keys. Note this is not a seed, but rather individual keys (i.e. not a one time operation)
PASS Uses Scrypt for password KDF
PASS
N/A
|
|
In the absence of critical feedback, this will be merged based on @crwatkins's reccomenation around 12:00 UTC Tuesday. Todo for the merger:
|
|
Thank you for all your work. I will rebase and squash soon. |
|
The PR is rebased on the current master. And the commits are all squashed together. Thank you again, @harding and @crwatkins . |
|
@songchenwen thank you for rebasing, and thank you especially for your patience and responsiveness! I've verified that 99b7c1d produces an identical merge to the reviewed commit d0d717a. |
bithernet commentedJan 29, 2015
This PR adds Bither to the wallet list.
On May 7th, 2014, we published the first fully functioning version of Bither wallet for Android v0.0.4. Since then, we had provided more solutions:
All the source codes of Bither can be found here
Bither has these special features:
Related discussions on bitcointalk: