{"id":17925,"date":"2021-01-14T14:23:34","date_gmt":"2021-01-14T14:23:34","guid":{"rendered":"http:\/\/ci027cfe6cd0022697"},"modified":"2025-10-02T15:07:24","modified_gmt":"2025-10-02T20:07:24","slug":"bitcoin-core-0-21-0-released-whats-new","status":"publish","type":"post","link":"https:\/\/bitcoinmagazine.com\/technical\/bitcoin-core-0-21-0-released-whats-new","title":{"rendered":"Bitcoin Core 0.21.0 Released: What\u2019s New"},"content":{"rendered":"<div id=\"bsf_rt_marker\"><\/div><figure><img decoding=\"async\" src=\"https:\/\/bitcoinmagazine.com\/wp-content\/uploads\/2024\/11\/bitcoin-core-0210-released-whats-new.png\" title=\"\"><\/figure>\n<p>Today marks the official release of <a href=\"https:\/\/bitcoincore.org\/bin\/bitcoin-core-0.21.0\/\" target=\"_blank\" rel=\"noopener\">Bitcoin Core 0.21.0<\/a>, the 21st major release of Bitcoin\u2019s original software client launched by Satoshi Nakamoto about 12 years ago.&nbsp;<\/p>\n<p>Overseen by <a href=\"https:\/\/bitcoincore.org\/\" target=\"_blank\" rel=\"noopener\">Bitcoin Core<\/a> lead maintainer Wladimir van der Laan, this latest major release was developed by well over a hundred contributors in a span of about six months. The result of over 600 merged pull requests, Bitcoin Core 0.21.0 is one of the biggest Bitcoin Core releases in recent years, introducing various new features as well as privacy and performance improvements, while taking a big step towards the <a href=\"https:\/\/bitcoinmagazine.com\/articles\/the-power-of-schnorr-the-signature-algorithm-to-increase-bitcoin-s-scale-and-privacy-1460642496\">Schnorr<\/a>\/<a href=\"https:\/\/bitcoinmagazine.com\/articles\/taproot-coming-what-it-and-how-it-will-benefit-bitcoin\">Taproot<\/a> protocol upgrade.<\/p>\n<p>Below are some of the more notable changes.<\/p>\n<h2>Descriptor Wallets<\/h2>\n<p>When coins are sent to a Bitcoin address, what actually happens under the hood is that they are \u201clocked up\u201d in an unspent transaction output (UTXO), to only be \u201cunlocked\u201d (spent) in a later transaction if the conditions hidden in the UTXO are met. A typical condition is the inclusion of a valid signature corresponding to a specific public key. But conditions can for example also consist of the inclusion of a secret code, the lapse of a timelock or a combination of signatures (multisig).<\/p>\n<p>Until now, Bitcoin Core was designed to manage the UTXOs in its wallet around their corresponding private keys \u2014 even though private keys are just one of several potential conditions for spending coins. Bitcoin Core 0.21.0 instead introduces \u201cdescriptor wallets.\u201d Descriptor wallets let users categorize their UTXOs based on the types of conditions that are required to spend them. (For example: one wallet for UTXOs that just require a valid signature, and one wallet for multisig UTXOs.)<\/p>\n<p>Descriptor wallets are especially useful for application developers who design software on top of Bitcoin Core. A particular application can now easily be designed to utilize only a specific type of UTXO, like multisig UTXOs, and ignore any non-multisig UTXOs.<\/p>\n<p>Regular users may also notice a difference now that descriptor wallets are implemented. Perhaps most notably, no default wallet will be created when a new Bitcoin Core node is started up. Instead, a new wallet is only created when a user specifically chooses to do so, allowing them to create only the specifically desired type of wallet. Descriptor wallets also better support Watch Only wallets: wallets that keep track of certain UTXOs even though the node doesn\u2019t have the private keys needed to spend them.<\/p>\n<p>Bitcoin Core users that upgrade to Bitcoin Core 0.21.0 will still be able to use their legacy wallet for now. (Legacy wallets will eventually be deprecated, meaning users will need to migrate their legacy wallet to a descriptor wallet, but this won\u2019t be strictly necessary until a future Bitcoin Core release.)<\/p>\n<h2>Serving Compact Block Filters Over The Peer-To-Peer Network<\/h2>\n<p>\u201cLight clients\u201d are Bitcoin wallets and applications that don\u2019t download and validate the entire Bitcoin blockchain, but instead only download and validate parts of blocks and transactions that concern them specifically. This is not optimally secure, but is much less resource intensive.<\/p>\n<p>One popular way to do this is with Bloom Filters. In short, Bloom Filters are a cryptographic trick to request relevant data from more or less random peer nodes on the network. Unfortunately, however, it has become clear over the years that Bloom Filters are rather privacy-unfriendly: they essentially reveal all of the user\u2019s addresses to the (more or less random) peer node, which could of course be operated by a privacy-invading snoop.<\/p>\n<p>A newer and much more privacy-preserving alternative to the Bloom Filter solution is called \u201ccompact client-side block filtering\u201d (BIP<a href=\"https:\/\/github.com\/bitcoin\/bips\/blob\/master\/bip-0157.mediawiki\" target=\"_blank\" rel=\"noopener\"> 157<\/a>\/<a href=\"https:\/\/github.com\/bitcoin\/bips\/blob\/master\/bip-0158.mediawiki\" target=\"_blank\" rel=\"noopener\">158<\/a>). Compact client-side block filtering essentially turns the Bloom Filter trick on its head. Instead of light wallets creating filters to send to full nodes, full nodes create filters for each block and send these to light clients on request. Light clients then use these filters to figure out if transactions relevant to them may have been included in a block. If so, the light wallet will fetch the whole block and pick any relevant transaction data out of it. (There will be some false positives; blocks that won\u2019t have relevant transaction data in them even though the filter suggested they might.)<\/p>\n<p>Existing Bitcoin Core releases could already create the filters locally, and make them available through a remote procedure call (RPC) for applications running on top of the node (like wallets). Bitcoin Core 0.21.0 now also includes the option to make these filters available over Bitcoin\u2019s peer-to-peer network on request. This makes it possible to now operate standalone light clients that use bloom filters.<\/p>\n<h2>Fewer Rebroadcast Attempts<\/h2>\n<p>Besides Bloom Filters, snoops can also break the privacy of Bitcoin users through network analysis. If they can figure out from which node a particular transaction originated, that node\u2019s Bitcoin address(es) can be tied to its IP address, which can in turn be associated with a real-world identity.<\/p>\n<p>Until now, when Bitcoin Core nodes broadcasted a transaction to the Bitcoin network, they\u2019d try to re-broadcast the transaction every fifteen minutes, until the transaction was included in a block. This meant that if these Bitcoin Core nodes were connected to a snooping peer, it would be obvious for the snoop that the Bitcoin Core node trying to re-broadcast a certain transaction every 15 minutes was also the node where that transaction originated.<\/p>\n<p>Bitcoin Core 0.21.0 greatly diminishes the frequency with which it tries to re-broadcast transactions: only once every 12 to 36 hours. Having to re-broadcast less frequently makes it much more likely that the transaction has been confirmed since the initial broadcast, so the node is less likely to have to re-broadcast at all.<\/p>\n<p>In future Bitcoin Core releases, this privacy leak will be fixed entirely. A Bitcoin Core node will then only re-broadcast transactions that should have been confirmed based on its own mempool and fee calculations. Furthermore, it will re-broadcast other transactions as well, not just its own.<\/p>\n<h2>Tor V3 Support<\/h2>\n<p>Due to a recent upgrade to the privacy-preserving Tor protocol, new V3 (version 3) Tor-addresses are longer than the V2 (version 2) addresses that came before them. V2 addresses are still in use, but will be deprecated in about a year from now.<\/p>\n<p>Deprecation of V2 addresses would have posed a problem for Bitcoin Core users who want to use Bitcoin over the privacy network. Bitcoin Core nodes find peers by sharing with each other Tor addresses of known Tor-using Bitcoin nodes. They shared this through the same message they use to share other nodes\u2019 regular IP addresses. While Tor V2 addresses could be \u201chidden\u201d in the regular IP address format (IPV6), Tor V3 addresses are too long for that; in other words, the current messages are too limited to be compatible with the Tor upgrade.<\/p>\n<p>Bitcoin Core 0.21.0 therefore introduces a new format to share IP\/Tor addresses with peers. These messages can be big enough to share the Tor V3 addresses.<\/p>\n<h2>Schnorr\/Taproot Code and Signet\/Regtest Deployment<\/h2>\n<p><a href=\"https:\/\/bitcoinmagazine.com\/articles\/the-power-of-schnorr-the-signature-algorithm-to-increase-bitcoin-s-scale-and-privacy-1460642496\">Schnorr<\/a>\/<a href=\"https:\/\/bitcoinmagazine.com\/articles\/taproot-coming-what-it-and-how-it-will-benefit-bitcoin\">Taproot<\/a> is poised to be Bitcoin\u2019s first protocol upgrade since Segregated Witness (SegWit) in August 2017. Having been in development for well over two years, the Schnorr signature algorithm is considered an all-round improvement over Bitcoin\u2019s current ECDSA signature algorithm. In combination with Taproot \u2014 a clever trick to hide various conditions to spend coins in a cryptographic hash tree \u2014 the upgrade promises to offer more smart contract flexibility in a scalable and privacy-preserving manner.<\/p>\n<p>The Schnorr\/Taproot code is now included in Bitcoin Core 0.21.0. Barring unexpected developments, this means it will not be subject to any more change, which for example means that application developers could start designing software around the upgrade. In addition, Schnorr\/Taproot is now available on Signet (a newer and more reliable variant of testnet, used by developers to test new Bitcoin software) and potentially also on Regtests (additional local testnet variants).<\/p>\n<p>Schnorr\/Taproot will not, however, be available on Bitcoin&#8217;s mainnet just yet. For this, the upgrade will first need to activate, which requires <a href=\"https:\/\/bitcoinmagazine.com\/articles\/bip-8-bip-9-or-modern-soft-fork-activation-how-bitcoin-could-upgrade-next\">activation logic<\/a> that isn\u2019t yet included in this Bitcoin Core release. Activation logic is expected to be included in a minor Bitcoin Core release, possibly somewhere in the next months.<\/p>\n<h2>Other\u2026<\/h2>\n<p>On top of the changes above, Bitcoin Core 0.21.0 includes various bug fixes and performance improvements that won\u2019t be as apparent for regular users. The Bitcoin Core wallet will for example switch from using the Berkeley DB to the SQLite database, which is better suited as an application data file and offers several guarantees in regards of compatibility, support and testing. Of interest is also that Bitcoin Core 0.21.0 includes a transaction request overhaul: the new message protocol that Bitcoin nodes use to learn about new transactions is better tested, better specified and easier to maintain and review.<\/p>\n<p><em>For a more extensive list of upgrades, also see the <\/em><a href=\"https:\/\/lists.linuxfoundation.org\/pipermail\/bitcoin-core-dev\/2021-January\/000097.html\" target=\"_blank\" rel=\"noopener\"><em>Bitcoin Core 0.21.0 release notes<\/em><\/a><em>, or see <\/em><a href=\"https:\/\/achow101.com\/2020\/10\/0.21-wallets\" target=\"_blank\" rel=\"noopener\"><em>this blog post<\/em><\/a><em> by Bitcoin Core contributor Andrew Chow for a more extensive explanation of descriptor wallets (as well as legacy wallets) and SQLite (as well as Berkeley DB).<\/em><\/p>\n<p><em>Thanks to John Newbery for information and feedback.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bitcoin Core 0.21.0 introduces new features, performance improvements and takes big steps toward the Schnorr and Taproot protocol upgrade.<\/p>\n","protected":false},"author":2509,"featured_media":17926,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[35],"tags":[227,3128,1075],"class_list":{"0":"post-17925","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-technical","8":"tag-bitcoin-core","9":"tag-bitcoin-core-0-21-0","10":"tag-taproot"},"author_data":{"id":2509,"name":"Aaron van Wirdum","nicename":"aaron-van-wirdum","avatar_url":"https:\/\/bitcoinmagazine.com\/wp-content\/uploads\/2024\/12\/aaron-van-wirdum-96x96.jpg"},"featured_image_url":"https:\/\/bitcoinmagazine.com\/wp-content\/uploads\/2024\/11\/bitcoin-core-0210-released-whats-new.png","_links":{"self":[{"href":"https:\/\/bitcoinmagazine.com\/wp-json\/wp\/v2\/posts\/17925","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bitcoinmagazine.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bitcoinmagazine.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bitcoinmagazine.com\/wp-json\/wp\/v2\/users\/2509"}],"replies":[{"embeddable":true,"href":"https:\/\/bitcoinmagazine.com\/wp-json\/wp\/v2\/comments?post=17925"}],"version-history":[{"count":0,"href":"https:\/\/bitcoinmagazine.com\/wp-json\/wp\/v2\/posts\/17925\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bitcoinmagazine.com\/wp-json\/wp\/v2\/media\/17926"}],"wp:attachment":[{"href":"https:\/\/bitcoinmagazine.com\/wp-json\/wp\/v2\/media?parent=17925"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bitcoinmagazine.com\/wp-json\/wp\/v2\/categories?post=17925"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bitcoinmagazine.com\/wp-json\/wp\/v2\/tags?post=17925"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}