Research by Independent Security Evaluators (ISE) managed to discover 732 private keys of active Ethereum addresses.
ISE says that there are currently about 345 million transactions on the Ethereum blockchain, generated by 47 million key pairs.
Each pair is composed of a secret private key and a public one with which the wallet addresses are generated.
The possibility to randomly generate new private keys already used by other addresses on the Ethereum blockchain is about 1 in 2^256. In theory, it would be possible, but it is such a remote hypothesis that it can easily be ignored.
Yet ISE managed to discover the existence of 732 pairs of private and public keys that correspond to addresses already used by others on the Ethereum blockchain in about 49,060 transactions. In addition, they identified 13,319 ETHs that were transferred to invalid destination addresses or wallets from weak keys, for a dollar equivalent of nearly 19 million.
The funds of these addresses linked to weak keys are often stolen and sent to a destination address belonging to an individual or group that is conducting active campaigns to collect the weak private keys and take possession of the relevant funds.
For example, on January 13th, 2018, this “blockchainbandit” owned 37,926 ETHs, worth over $54 million.
The discovery of these weak keys was presumably made possible by programming errors in the software that generated them. For example, the team assumes that in various software implementations that generate Ethereum wallets, randomly generated 256-bit keys may be truncated in output due to coding errors. Other similar bugs may be caused by the memory of the device used to generate the keys, or by other errors or failures.
In this way, the private keys generated would not be sufficiently random, so much so that it would be much easier to discover them by simply using the brute force of a computing device that could discover them simply by creating numerous random addresses and checking which are already in use by others on the blockchain, as the addresses generated and used are public.
Ted Harrington, Executive Partner of ISE, said:
“The bottom line is that a private key needs to be random, unique, and practically impossible to guess in a brute force attack”.
ISE also gives some tips to avoid such issues: don’t use untrusted software that could collect private encryption keys, use reliable software and hardware wallets to generate completely random private keys and don’t generate private keys based on passphrases.