The developers of Bitcoin Core has presented a major update of the popular bitcoin client.

Bitcoin Core 0.17.0 Released

— Bitcoin Core Project (@bitcoincoreorg) 3 Zhovtnya 2018 R.

On the new version of the client worked for seven months under the leadership of Vladimir van der Laana and with the participation of 135 contributors. It is also the result of handling over 700 requests for the adoption of amendments. In the new version of Bitcoin Core contains a number of new features, improved performance, bug fixes.

Optimized selection of coins

The coins are stored in the wallet as separate fragments (the outputs of the transaction). Typically, each fragment corresponds to one of the received transaction. Thus, all these fragments represent different amounts.

When a user sends payment from your wallet, the various pieces are combined together to obtain the required amount with the Commission. It is often impossible to collect the exact amount with integer fragments. Then the transaction is added to the so-called “address for delivery”, which allows you to return the excess funds to the wallet of the sender.

Still Bitcoin Core brings together different fragments, and then calculates the Commission is required to transfer transaction. In some cases, the addition of this fee required included in the transaction is another initially for the missing fragment.

In Bitcoin Core 0.17.0 algorithm “branch and bound”, created by the developer BitGo mark Erhardt. He brings two important improvements. First, the Commission for each fragment is calculated before it becomes part of the transaction. This allows you to avoid adding new fragments to cover the fee. Second, the algorithm “tries” to match various pieces so to get the amount as close as possible to the requested by the sender. Thus, in some cases, eliminates the need to “address for delivery”.

This feature is particularly relevant for large purses, at the disposal of the bitcoin exchanges that can deal with multiple fragments. A new selection algorithm of the coins in Bitcoin Core 0.17.0 gives some improvement in privacy.

Easy creation and use of new wallets

Since version 0.15.0 Bitcoin Core users can create multiple wallets — for daily needs, business, exchange, etc. each of these wallets your address and private key, respectively, the remainder.

To date, a variety of wallets can be created only at the stage of launching new nodes, and not through interaction with a graphical interface. In Bitcoin Core 0.17.0 these restrictions were lifted: users can create purses at any time through the GUI.

Also in Core 0.17.0 presents a function of “Scantxoutset”. It allows you to quickly check whether a new wallet funds (for example, if it has been restored by importing the private key from another wallet). The test is performed through the analysis of the UTXO, and not by scanning the entire transaction history.

Compatible HD and non-HD wallets

In newer versions of Bitcoin Core uses hierarchical deterministic (HD) wallets. Users of these purses you need to backup to save only the seed-phrase.

The users who updated to 0.13.0 or above, could not create a new HD wallets. Bitcoin Core 0.17.0 fixes this problem by allowing the updated users to use wallets HD format.

Addresses in the format of watch-only

BTC wallets store the private keys that allow users to spend money. However, with a certain time Bitcoin Core supports the address format “for viewing only”. Private keys from those addresses stored in the wallet, but the coins associated with them, are still displayed in it. This enables users to easily accept payments and track balance. While storing private keys offline.

Bitcoin Core 0.17.0 further develops this idea by allowing you to create special wallets “for viewing only”. In them and every single address has the same status. This approach makes it convenient monitoring tools, stored in hardware or paper wallet using the seed phrases.

Partially signed transaction

The first cryptocurrency allows complex types of transactions. These include:

  • transaction multipages (multi-user);
  • transactions increased privacy (e.g., CoinJoin, where several users combine their transactions into one).

Bitcoin Core supports 0.17.0 framework partially signed bitcoin transactions (Bitcoin Transaction Partially Signed, PSBT) 174 BIP developed by Andrew Chow. It allows you to partially sign a transaction, adding the metadata, which then can use anyone else to complete her.

Also with the help of PSBT, the user can protect their assets, blocking their purse with multipoles. At the same time to unlock the necessary private key from the Bitcoin Core wallet, as well as signature hardware wallet.

Currently, the function of partially signed transactions is available only through the command line Bitcoin Core or the connected application.

The reduction of the blockchain

The size of the blockchain of bitcoin has already exceeded 180 GB and growing. However, there is a method called “reduction block”, thanks to which users do not have to store data about all the transactions since the advent of bitcoin.

In this mode, the reduce nodes automatically “forget” about old data transactions and keep only what is necessary for safe operation. In the new version of Bitcoin Core access the functions provided through the GUI and not via command line, as it was previously. This can motivate users wishing to run a full node.

The full version of the Bitcoin Core 0.17.0 changes can be found on GitHub.

Recall that in last month ForkLog published a review of the prerelease version of Bitcoin Core 0.17.0.