The Bitcoin Core team has finally integrated the Simple Bitcoin Improvement Proposal (BIP) 32 HD Wallet system, written by Pieter Wuille, into Bitcoin Core on June 15.
BIP 0032, entitled “Hierarchical Deterministic Wallets,” is a wallet type initially introduced by Wuille back in 2012, a protocol which has already been integrated by almost every wallet service provider over the past three years, with Trezor, Electrum, mSIGNA and Mycelium among the first.
Bitcoin-Core has now a very simple BIP32/HDWallet support, more HD features to come… https://t.co/r23voFZPFa
— Jonas Schnelli (@_jonasschnelli_) June 15, 2016
Deterministic and Hierarchical Deterministic Wallets
Deterministic wallet is a built-in system which derives keys from a single starting point. The starting point, more commonly referred to as a single seed, allows users to backup and restore wallets at ease, without requiring any additional information.
More importantly, in event of a server compromise or a hacking attack, hackers that obtain access to a master public key can observe the account’s balance and transaction history but cannot carry out a transaction or spend the account’s balance.
The logic behind a deterministic wallet is fairly straightforward. In the system of a deterministic wallet, users can derive a master public key from the wallet’s master private key or the single seed but they cannot derive a private key from a master public key, which eliminates the danger of wallet vulnerability and security flaws.
A Hierarchical deterministic wallet is a certain type of a deterministic wallet which features an important element — the ability to completely separate private and public key generation for enhanced security protocols.
HD wallets provide webservers and platforms with the choice to select certain public keys in this type of situation. For example, let’s assume that a merchant has three addresses that are being used to receive funds from buyers and there are four addresses possessed by the merchant that are being used with another client.
The webserver can select the three addresses that are actively being used by the merchant to receive transactions from the buyers and obtain public keys of those addresses only for efficiency and security purposes.
Eric Lombrozo, one of the developers who originally contributed to BIP32, noted that the key management in Bitcoin Core’s original wallet was extremely complicated.
“You had to continually back up your wallet as new addresses were issued, making it extremely tedious to have good security practices,” Lombrozo said to BTCMANAGER. “It also made it extremely difficult (basically impossible) to maintain multiple instances of the same wallet on different machines.”
Lombrozo’s own wallet, mSIGNA by Cyphrex, was among the first to use BIP32, making it very simple to backup keys and maintain multiple instances of the same wallet across multiple machines.
The integration of BIP32 into Bitcoin Core will result in more platforms and wallet service providers offering HD wallets for greater convenience and security.
“BIP32 offers a secure way of receiving payments on Internet-connected machines because the addresses can be generated on-the-fly without private keys,” Michael Perklin, president of Cryptocurrency Certification Consortium (C4), told BTCMANAGER.
“Deterministic wallets like those that implement the BIP32 standard are required for compliance with the CryptoCurrency Security Standard (CCSS). They allow a single secure backup to protect every key without human intervention instead of requiring regular backups that are more complex to manage and prone to human error.”
“I’m happy to see BIP32 support being added to Bitcoin Core’s wallet,” added Lombrozo, who has been advocating for more support and funding for Core developers and their work. “However, ideally I’d like to see the wallet split into a separate project with the Bitcoin Core project focusing mostly on implementing the backbone of the bitcoin protocol itself.”