Nice finding but I still don't catch the reason why people easily accept wallet generator from third-party while they can do that with Bitcoin Core or Electrum (creating wallet offline). After that, print or write private keys or mnemonic seeds on paper. It is safer and not too hard to do.
I can think of two logical reasons:
- They believe that it is the same as Bitcoin Core or Electrum security because it is open source and addresses can be generated offline.
- Attractive and elegant designs that are suitable for gifts, and are easy to print.
there's hundreds of independent users who check the changes and have enough skill and familiarity with the codebase to do so.
I agree with you, the relative security that many users feel that the wallet is open source or running it offline makes them trust them without reviewing the code.
Unfortunately, the random generation function can produce predictable private keys.
BTW: Here's a python code that generates such predictable addresses:
#!/usr/bin/env python3
# [repo] github.com/brianddk/reddit/blob/master/python/bad_address.py
# [req] pip3 install pycoin mnemonic
from mnemonic import Mnemonic
from pycoin.symbols.btc import network as btc
code = ("abandon abandon abandon abandon abandon abandon" +
" abandon abandon abandon abandon abandon about")
path = '44H/0H/0H/0/0'
mnemo = Mnemonic("english")
one_privkey = btc.parse.secret_exponent(1).address()
zero_hash = btc.address.for_p2pkh(bytes([0]*20))
zero_bip39 = btc.keys.bip32_seed(mnemo.to_seed(code)
).subkey_for_path(path).address()
print(one_privkey, zero_bip39, zero_hash)
This is not new I supposed, because it was reported last year already:
The above article talks about bitcoinpaperwallet[.]com and not WalletGeneratorDOTnet, although I think both sites are run by the same scammer.