BitGo Claims Its Software Not at Fault during Bitfinex Hack

BitGo has declared that its systems were not breached, and its software functioned correctly during the Bitfinex hack. Co-founder and CEO at BitGo, Mike Belshe, wrote on the company’s blog saying: Our job is to protect your Bitcoin and continue to improve the security of the service. BitGo systems were not breached in this attack and our software […]

The post BitGo Claims Its Software Not at Fault during Bitfinex Hack appeared first on CCN: Financial Bitcoin & Cryptocurrency News.

News – CCN: Financial Bitcoin & Cryptocurrency News

replicating in python what the electrum wallet does during (deterministic) wallet creation

I am trying to replicate in python what the Electrum wallet does during (deterministic) wallet creation. IMHO the docs are a bit sparse on this one bit maybe because its only performed once for most users, all the tutorials etc. seem to focus on the GUI, and I was unable to work out the python code from the spesmilo github for electrum.

From what I can see, Electrum generates a random Wallet Generation Seed

  1. a 13-word mnemonic(or 12 words plus checksum?)

  2. which is unencrypted This is also the Master Private Key?

  3. Then the user enters a password/passphrase(or not) that encrypts the seed so it can be saved as a wallet(file)

  4. The wallet file can only be decrypted with the password/passphrase

  5. Then a Master Public Key is generated from the wallet [Anybody have more detail on this?].

  6. Then the 25-byte binary Bitcoin Address = {[MPK>sha256>RIPEMD160]+[MPK>sha256>RIPEMD160>versionByteadd>sha256>sha256>first4bytes]}

  7. which in turn is Base58Check encoded to the Bitcoin Address format

Can someone please check if my assumptions (1 to 7) are okay/correct me? Also, below is how far I got with python(probably grossly incorrect!):

from electrum import mnemonic import ecdsa import hashlib import base58 import getpass  mnemonicInstance = mnemonic.Mnemonic(lang='en') randseed = mnemonicInstance.make_seed() print "this is my 13 word wallet gen seed" + randseed private_key = mnemonicInstance.mnemonic_to_seed(randseed , getpass.getpass()).encode('hex') print "this is my private key: " + private_key #the line of code below failed!: sk = ecdsa.SigningKey.from_string(private_key.decode("hex"), curve = ecdsa.SECP256k1) vk = sk.verifying_key public_key = ('' + vk.to_string()).encode("hex") print "this is my public key: " + public_key ripemd160 = hashlib.new('ripemd160') ripemd160.update(hashlib.sha256(public_key.decode('hex')).digest()) middle_man = '' + ripemd160.digest() checksum = hashlib.sha256(hashlib.sha256(middle_man).digest()).digest()[:4] binary_addr = middle_man + checksum addr = base58.b58encode(binary_addr) print "this is my BTC address: " + addr 

(some of the above lifted from Shultzi’s github) I also consulted Andreas’ Mastering Bitcoin but not had much joy with this bit.

Recent Questions – Bitcoin Stack Exchange

Restrict the Bitcoin usage only during a particular period

I would like to know if its possible to use a Bitcoin at present in the following scenario.

When I send a Bitcoin to an another user,I set certain parameters on the Bitcoin, like it can only be used from this particular date to an another particular date. And restrict the usage of Bitcoin if its being used some other time.

Can I use it like this ?

Recent Questions – Bitcoin Stack Exchange