When Satoshi Nakamoto introduced the first version of Bitcoin, i.e., the Bitcoin 0.1 on January 9, 2009, little did he know that his white paper on peer to peer electronic cash system would be standing on the cusp of changing the way world dealt with money.
Bitcoin Core Background
In the paper what Satoshi wrote, he introduced the world free open source-source software which served as bitcoin node and also provided a wallet to store bitcoins. While Satoshi called it “Bitcoin” initially it now is known as Bitcoin Core so that it could be differentiated from the network. As the stature and size of Bitcoin grew since its inception, the Bitcoin Core has been continuously updated to meet the requirement of the world it would operate in.
Bitcoin Core, which is considered as bitcoin’s reference implementation, is a full client who is being used by BTC nodes that operate on the bitcoin’s network. It is the Bitcoin Core, to which the developers make changes, to bring modification to the underlying protocol of bitcoin.
Wladimir J. van der Laan, with a team of developers, currently maintains Bitcoin Core’s directories, while some of the development receives funding from MIT digital Currency Initiative, which also keeps a cryptographic library called as libsecp256k1.
Why One Needs Frequent Upgrades
While the Bitcoin core includes all the features which are required to successfully run a bitcoin network such as transaction verification engine, full node connectivity to Bitcoin main network, a wallet, QR code generator, a distributed ledger with a size of over 100 GB among others. As a result, it requires continuous updates to keep itself abreast with the world, fixes bugs and provides excellent performance to the users.
The frequent upgrades usually provide the Bitcoin Core with:-
- Better Security: Each update tries to find security glitches in the Core so that it can provide better security against bad actors who can fake them into accepting fictitious transactions or stolen blocks. The development team at the Bitcoin Core tries to provide the best protection against dishonest miners.
- Better Privacy Features: One of the reasons Bitcoin is still preferred and used by people is because the development team tries to ensure that each upgrade includes a better version of privacy features.
- Better User Interfaces and other powerful features: With every upgrade, they see that the user interface is power packed and deliver some good improved features. The developers try to give the bitcoin core inbuilt wallet features that most other wallets don’t have. But in case a user doesn’t need them, they can use several other wallets that are built on top of Bitcoin Core without losing Bitcoin Core’s improved security features and privacy benefits.
On October 03, 2018 the team working at the Bitcoin’s Core released the 17th generation of Bitcoin’s software client. Considered to be one of the most comprehensive updates of the Bitcoin Core, the latest update was developed by 135 contributing developers throughout over seven months.
The Bitcoin Core 0.17.0 is a result of over 700 merged pull requests and provides a wide range of power packed features and a few bug fixes. Here are some of the changes that are going to come in version 17 of Bitcoin core.
Upgraded Coin Selection
Amongst all major updates to Bitcoin Core is the introduction of the “Branch and Bound” algorithm which is designed by the BitGo Engineer Mark Erhardt.
But now with this new upgrade to the algorithm, the core receives two strong enhancements. First, the algorithm tries to match the different chucks to the exact amount needed for the transaction eliminating the need of change address wherever possible. The second enhancements were that the fee for each chuck is calculated before it is selected as part of a transaction thus avoiding new chunks needing to be added later on.
The algorithm also brings in a new privacy enhancement. With Bitcoin Core, 0.17.0 users now have the option to arrange the adding of chucks attached to the same address together in the transaction and also permits to leave any other chucks out of the transaction.
Simplified Way to Create and Use New Wallets
The 15th upgrade to Bitcoin Core allowed users to create multiple wallets and use them independently. All of these wallets had independent addresses and private keys allowing users to use these wallets for different purposes. However, new wallets could be created when a node was freshly started, and it was not available for Bitcoin Core Wallet (GUI) users. Both these shortcomings of version 15th have been eliminated in the 17th version allowing users to create wallets whenever they want and also offers this feature in GUI.
In addition to this, Bitcoin Core 0.17.0 has introduced a feature named as “Scantxoutset,” which allows users to verify their wallet quickly and whether it already includes coins by checking the unspent transaction output (UTXO) set in place of rechecking the entire transaction history.
Bitcoin Core has been supporting “Watch Only” addresses for a while now where private keys to these addresses are not stored in a wallet, but coins associated with them are still visible in the wallet. This allows users to accept payments and keep track of their funds in a hassle-free manner while keeping their private keys offline.
The 17th upgrade gives a level up to this feature, allowing users to create “Watch Only” wallets where every address is Watch Only making it easier to use Bitcoin Core to keep track of funds in a hardware wallet in the form of HD seed.
Non-HD to HD Wallets Upgrade
While all versions till the version 13.0 of Bitcoin Core required users to backup all their private keys, the newer versions post that offered users Hierarchical Deterministic (HD) wallets where users only needed to store one seed phase as a backup. The users who upgraded to the 13th version for lower versions of bitcoin core were not able to create new HD wallets as there was an incompatibility between HD and Non-HD wallets.
Now with Bitcoin Core 0.17.0, users can directly upgrade to HD wallets. Also, Bitcoin Core 0.17.0 grants users who already have HD wallets to generate and import a new HD seed.
Partially Signed Bitcoin Transactions
Bitcoin Core 0.17.0 introduces the BIP 174 Partially Signed Bitcoin Transaction (PSBT) framework designed by Andrew Chow, which now allows users to partially sign a transaction and also allows to add metadata to such partially signed transactions. This metadata can be put to use by anyone to settle transactions.
This feature is useful in cases of complex transactions like multi-signature (multisig) transactions and privacy-enhancing CoinJoin transactions. Currently, PSBT is only available to users that operate Bitcoin Core from the command line or through connected apps.
By storing all the on chain transactions, the bitcoin blockchain has swelled to over 180 GB and is continuously growing. Currently, new Bitcoin Core users have to download all the previous data and validate it.
But with Bitcoin Core 0.17.0, the user can now use “blockchain pruning” which allows the user not to store the complete data for the blockchain. In pruning mode, the nodes associated will neglect old transaction data and only keep the ones that are required to operate securely. Until now this was only possible through a command line.
The upgrade will first time allow the user to enable pruning from their wallet by offering them an easy to use GUI toggle, making it more compatible for casual and non-technical Bitcoin users who wish to run a full node for better security.
What is your take on the release of the 17th generation of Bitcoin’s original software client? Let us know your views in the comments section.