0
I have recently been going through the python source code for electrum and encountered the following lines of code at the mneumonic.py file starting from line 130:
def mnemonic_to_seed(self, mnemonic, passphrase):
PBKDF2_ROUNDS = 2048
mnemonic = normalize_text(mnemonic)
passphrase = normalize_text(passphrase)
return pbkdf2.PBKDF2(mnemonic, 'electrum' + passphrase, iterations =
PBKDF2_ROUNDS, macmodule = hmac, digestmodule =
hashlib.sha512).read(64)
We see clearly that it returns a 64 bytes or 512 bit seed instead of what we all know a bitcoin priv key should be - 256 bits. Is this the final function to be called for priv key generation or are there steps or functions that I missed?
The seed phrase created by Electrum has 132 bits of entropy. This means that it provides the same level of security as a Bitcoin private key (of length 256 bits). Indeed, an elliptic curve key of length n provides n/2 bits of security. – Adam – 2018-02-06T10:04:56.733