What new changes will Bitcoin Core 0.21.0 release bring?
欧易情报局
2021-01-21 10:05
本文约3417字,阅读全文需要约14分钟
On January 14, Bitcoin Core 0.21.0 was officially released, the 21st major version of the original Bitcoin software client launched by Satoshi Nakamoto almost 12 years ago.

On January 14, Bitcoin Core 0.21.0 was officially released, the 21st major version of the original Bitcoin software client launched by Satoshi Nakamoto almost 12 years ago.

This latest major release was developed by more than 100 contributors over a period of approximately six months, under the supervision of Bitcoin Core lead maintainer Wladimir van der Laan. Bitcoin Core 0.21.0 is one of the largest Bitcoin Core releases in recent years, the result of over 600 merge requests, introducing various new features as well as privacy and performance improvements, while taking a big step towards the Schnorr/Taproot protocol upgrade step.

Here are some of the more notable changes.

1. Descriptor wallet

What actually happens when tokens are sent to a Bitcoin address is that they are "locked" in an unspent transaction output (UTXO), and will only be "unlocked" in a later transaction if the UTXO's hidden conditions are met. "(spend). A typical condition is the inclusion of a valid signature corresponding to a particular public key. But conditions can also include, for example, the inclusion of a password, the expiration of a timelock or a combination of signatures (multisig).

Until now, Bitcoin Core has been designed to manage UTXOs in its wallets around their corresponding private keys, even though private keys are only one of several potential ways to spend coins. Instead, Bitcoin Core 0.21.0 introduced "descriptor wallets". By using a descriptor wallet, users can categorize their UTXOs according to their condition type. (Example: one wallet for UTXOs that only require valid signatures, and one wallet for multi-signature UTXOs.)

Descriptor wallets are especially useful to application developers designing software on Bitcoin Core. It is now easy to design specific applications to only use specific types of UTXOs, such as multisig UTXOs, and ignore any non-multisig UTXOs.

Now, regular users may also notice the difference in descriptor wallets. Most notably, no default wallet is created when starting a new Bitcoin Core node. Instead, new wallets are only created when users explicitly choose to do so, allowing them to create only specific desired types of wallets. Descriptor wallets also better support "watch-only" wallets: this wallet can keep track of certain UTXOs even if nodes don't have the private keys needed to use them.

Bitcoin Core users who upgraded to Bitcoin Core 0.21.0 will now still be able to use their legacy wallets. (Legacy wallets will eventually be deprecated, meaning users will need to migrate their legacy wallets to descriptor wallets, but there is no absolute need until later Bitcoin Core releases.)

2. Provide compression filters on a peer-to-peer network

"Light clients" are Bitcoin wallets and applications that do not download and verify the entire Bitcoin blockchain, but only the subset of blocks and transactions that are particularly relevant to them. It's not the safest way, but it's much less resource intensive.

One popular approach is to use Bloom Filters. In a nutshell, Bloom Filters are cryptographic tricks that request relevant data from more or less random peers on the network. However, it's clear that Bloom Filters have been rather privacy-agnostic in recent years: they essentially reveal all addresses of a user to (more or less random) peer nodes, which can of course also be manipulated by privacy violators .

A newer and more privacy-preserving alternative to Bloom Filters is called "compressed client-side block filtering" (BIP 157/158). Compression client-side block filtering essentially changes the trick with Bloom Filters. Contrary to the original light wallet creating filters and sending them to full nodes, full nodes create filters for each block and send these filters to light clients upon request. Light clients then use these filters to determine whether transactions related to them may have been included in a block. If so, the light wallet will fetch the entire block and extract any relevant transaction data from it. (Note: there will be some false positives: even though the filter indicates that there are relevant transactions, there may not be blocks with relevant transaction data in them.)

Existing Bitcoin Core versions may have created filters locally and made them available via Remote Procedure Calls (RPC) to applications (such as wallets) running on top of nodes. Bitcoin Core 0.21.0 now also includes an option to provide these filters on request via Bitcoin's peer-to-peer network. This makes it possible for standalone light clients to operate with Bloom Filters now.

3. Fewer replays

In addition to Bloom Filters, snoops can also destroy the privacy of Bitcoin users through network analysis. If they can determine which node a particular transaction originated from, they can tie that node's bitcoin address to its IP address, which in turn can be linked to a real-world identity.

Until now, when Bitcoin Core nodes broadcast transactions to the Bitcoin network, they try to rebroadcast the transaction every fifteen minutes until the transaction is included in a block. This means that if these Bitcoin Core nodes are connected to a listening peer, it is obvious to the listening peer that the Bitcoin Core node that is trying to rebroadcast a certain transaction every 15 minutes is also the originating node of that transaction.

Bitcoin Core 0.21.0 drastically reduces how often it tries to rebroadcast transactions: only once every 12 to 36 hours. The less frequent the rebroadcast, the more likely the transaction will be confirmed after the first broadcast, so the node doesn't need to rebroadcast at all.

In a future version of Bitcoin Core, this privacy leak will be fully fixed. Bitcoin Core nodes will then only rebroadcast transactions that should have been confirmed based on their own mempool and fee calculations. Also, it will rebroadcast other transactions, not just its own.

4. Add support for Tor V3 address format in privacy browser

Due to a recent upgrade to the privacy-preserving Tor protocol, the new V3 (version 3) Tor addresses are longer than the previous V2 (version 2) addresses. Currently, V2 addresses are still in use, but will be deprecated in about a year.

For Bitcoin Core users who want to use Bitcoin on a private network, the deprecation of V2 addresses may cause problems. Bitcoin Core's nodes find peers by sharing with each other the Tor addresses of Bitcoin nodes known to use Tor. They share this information by sharing the same message that other nodes' regular IP addresses use. While Tor V2 addresses may be "hidden" in the regular IP address format (IPV6), Tor V3 addresses are too long; in other words, current information is too limited to be compatible with Tor upgrades.

Therefore, Bitcoin Core 0.21.0 introduces a new format for sharing IP/Tor addresses with peers. These messages may be large enough to share a Tor V3 address.

5. Schnorr/Taproot code and Signet/Regtest deployment

Schnorr/Taproot is expected to be Bitcoin’s first protocol upgrade since Segregated Witness (SegWit) in August 2017. After more than two years of development, the Schnorr signature algorithm is considered to be a comprehensive improvement on Bitcoin's current ECDSA signature algorithm. When combined with Taproot, a neat trick for hiding various conditions in a cryptographic hash tree to spend transactions, the upgrade promises to provide smarter contract flexibility in a scalable and privacy-preserving manner.

The Schnorr/Taproot code is now embedded in Bitcoin Core 0.21.0. It no longer has any changes barring unanticipated developments, which means app developers can start designing software around upgrades. Additionally, Schnorr/Taproot is now available on Signet (a newer and more reliable testnet used by developers to test new Bitcoin software), and possibly on Regtests (another local testnet variation). body).

However, Schnorr/Taproot will not be available on Bitcoin's mainnet for a while. To do this, the upgrade first needs to be activated, and this requires activation logic. The activation logic is not included in the current version of Bitcoin Core. The activation logic is expected to be included in the next Bitcoin Core release, likely in the next few months.

6. Other changes

In addition to the above changes, Bitcoin Core 0.21.0 also includes various bug fixes and performance improvements that are not obvious to the average user. For example, the Bitcoin Cor wallet will switch from using Berkeley DB to an SQLite database, which is better suited as an application data file and offers several guarantees in terms of compatibility, support, and testing.

Interestingly, Bitcoin Core 0.21.0 also includes an overhaul of transaction requests: the new messaging protocol that Bitcoin nodes use to learn about new transactions is better tested, better specified, and easier to maintain and review.

For a more extensive list of upgrades, seeBitcoin Core 0.21.0 Release Notesblog postblog postOriginal link:

Original link:https://bitcoinmagazine.com/articles/bitcoin-core-0-21-0-released-whats-new

By Aaron van Wirdum

欧易情报局
作者文库