Bitcoin Core 0.17.0 Released: Everything You Need To Know About The Latest Release
The latest version of the Bitcoin Core client was released earlier today. Bitcoin Core 0.17.0 is the 17th generation of bitcoin’s original software client.
Launched by Satoshi Nakamoto almost ten years ago, Bitcoin Core remains the dominant bitcoin implementation on the bitcoin network. Today, development is overseen by Bitcoin Core lead maintainer Wladimir van der Laan. A total of 135 contributors worked on this latest release over the past seven months.
A total of 700 merged pull requests were added to Bitcoin Core 0.17.0. Overall, the upgrade contains a range of performance enhancements and bug fixes, among other expected changes.
Here are some of the most important changes and improvements you need to know about in Bitcoin Core 0.17.0:
Better Coin Selection And Output Handling
When you store bitcoin sin your wallet, these bitcoins are essentially stored as separate chunks called “transaction outputs.” Typically, you have one chunk for each received payment, which means the chunks represent different amounts. When you make a payment from a wallet, chunks are added together to make up an amount that’s large enough to make the payment, plus the miner fee.
You might have one chunk of 0.05 BTC and another chunk with 0.01 BTC. These chunks are added together to make a 0.055 BTC transaction, plus the miner’s fee.
Different chunks typically don’t add up to the exact amount required for the transactions. That’s when bitcoin generates a change address and adds it to the transaction. In the example above, 0.04 BTC might be leftover from the transaction. These funds are sent back to the same wallet after the transaction is complete.
Bitcoin Core 0.17.0 significantly changes the way chunks are handled in the bitcoin network. Up to this point, Bitcoin Core added different chunks together, then calculated and added the transaction fee. In some cases, however, the transaction fee would be higher than the sum of the added chunks. When this occurred, an additional chunk needed to be added to the transaction.
Now, with the new version of Bitcoin Core, we have a “Branch and Bound” algorithm. Created by BitGo engineer Mark Erhardt, the algorithm offers two key improvements to Bitcoin Core:
- First, the fee for each chunk is calculated before it’s selected to be added to the transaction; this prevents new chunks from being added later
- Second, the algorithm attempts to match different chunks so they add up to the exact amount needed for the transaction, theoretically avoiding the need for change addresses
In more straightforward terms, Bitcoin Core 0.17.0 is smarter about adding different transaction outputs together and managing the change output from those transactions.
It’s Easier To Create And Use New Wallets
Bitcoin Core 0.17.0 also makes it easier to create and use new wallets. The first major wallet creation improvements date back to Bitcoin Core 0.15.0, which is when the client added the ability to create wallets that operate independently of one another. These independent wallets have their own separate bitcoin addresses and private keys, which effectively makes them two totally different wallets.
Up until now, however, new wallets could only be created when starting up a new node. This feature was also not available to Bitcoin Core wallet (GUI) users.
Now, with Bitcoin Core 0.17.0, both of these issues have been resolved: Bitcoin Core users can now create new wallets whenever they like – not just when staring up a node. You can also create new wallets in the GUI version.
Scantxoutset Has Been Added
Bitcoin Core 0.17.0 ads a new feature called Scantxoutset, which lets users quickly verify whether a new wallet already includes coins.
This feature makes it easier to create independent wallets. With Scantxoutset, you can quickly determine if coins were transferred from another wallet by checking the unspent transaction output (UTXO) set. You don’t have to rescan the entire transaction history.
Non-HD To HD Wallet Upgrade
Bitcoin Core has supported Hierarchical Deterministic wallet backups since Bitcoin Core 0.13.0. Since then, users have been able to backup multiple HD wallets with a single seed phrase (a list of words) instead of individually backing up all their private keys.
There was a small problem, though: Bitcoin Core users who upgraded their system to Bitcoin Core 0.13.0 and newer were unable to create new HD wallets. Because non-HD and HD wallets were incompatible, it meant users were still required to back up all their private keys and were unable to use the seed phrase backup for their HD wallets.
Now, with Bitcoin Core 0.17.0, things have changed, and these users can now upgrade to the HD format. Meanwhile, if you already have an HD wallet and are using Bitcoin Core, you can now generate or import a new HD seed.
Watch-Only Wallets Where Every Address Is A Watch Only Address
Bitcoin Core 0.17.0 takes watch-only wallet addresses a step further than they’ve gone before. Under the old system, watch-only addresses could be used to display the balance of a wallet without actually holding the private keys. Users could easily accept payments and keep track of their funds while still storing private keys online.
Bitcoin Core 0.17.0 takes this a step further by allowing users to create watch only wallets where every address is a watch-only address.
The best way to use this system would be to keep track of funds in a hardware wallet or on a paper wallet in the form of an HD seed while using Bitcoin Core.
Blockchain Pruning Helps Users Avoid Storing All 180GB Of Blockchain Data
New Bitcoin Core users need to download and validate the 180GB bitcoin blockchain, which includes every transaction in bitcoin’s history.
There’s no getting around downloading the 180GB of the bitcoin blockchain. However, thanks to the new version of Bitcoin Core, you don’t necessarily have to store all that data permanently.
A new trick in Bitcoin Core 0.17.0 called blockchain pruning means users don’t actually have to store all this data. Blockchain pruning means nodes will automatically “forget” about older transaction data. They’ll only keep the data they need to operate securely.
Pruning mode isn’t new: it’s been available via the command line for several versions now. However, Bitcoin Core 0.17.0 has introduced a GUI blockchain pruning tool that makes it easier to access – particularly for more casual, non-technical Bitcoin Core users.
Partially Signed Bitcoin Transactions (PSBTs)
Finally, Bitcoin Core 0.17.0 introduces BIP 174, Partially Signed Bitcoin Transactions (PSBTs), to allow users to sign a transaction partially while also adding metadata to the partially signed transaction. This metadata can be used by someone else to complete the transaction.
A traditional blockchain transaction does not involve partial signatures: one user sends bitcoin to another user. The partial signature system, however, allows for more complex types of transactions, including multi-sig transactions where several users need to sign off on the transfer of funds. This partial signature system will also be used for privacy-focused CoinJoin transactions, where multiple users merge independent transactions into a single large transaction.
At this point, PSBT has limited usability until it’s adopted by other bitcoin wallets. In the future, however, this could open the possibility of more complex bitcoin transactions to all types of bitcoin users. For now, Bitcoin Core 0.17.0 only supports Partially Signed Bitcoin Transactions via the command line.