Top
image credit: Unsplash

Bitcoin Core 24.0: Innovation, Controversy, and the Changes You Should Know About

December 9, 2022

Category:

Bitcoin Core 24.0, the latest version of the original Bitcoin software launched by Satoshi Nakamoto in 2009, has been released. The long-awaited upgrade was activated in November and brought with it a few exciting changes, some of which are considered fairly controversial by users and the Bitcoin community. Although the discussions surrounding the Replace-By-Fee (RBF) feature tend to overshadow the innovations brought by Bitcoin Core 24.0, specific updates that bring improvements to Bitcoin Core’s wallet, peer-to-peer (P2P) communications, and graphical user interface (GUI) are definitely worth paying attention to.

This article delves into the essential changes brought by the Bitcoin Core 24.0 software and what they entail for users and the industry.

Initial Support for Miniscript

One of the most promising features of Bitcoin Core 24.0 is the implementation of Miniscript, a framework for Bitcoin Script, the digital currency’s native programming language. Miniscript simplifies and structures the previously complex and potentially unsafe process of “programming” Bitcoin transactions through scripts, by introducing descriptors that map them. Among other features, it enables analysis, composition, and generic signing, so that advanced scripts can be written more securely by developers. Thus, Miniscript “contains” some functionality of pre-set Bitcoin Scripts in an expected pattern of behavior, limiting potential risks by mitigating unexpected behavior.

However, the initial implementation of Miniscript, introduced for Bitcoin 24.0, is still very rudimentary. Currently, the feature is only intended for enthusiastic developers. There is still a long way to go before it is fully implemented in user practice. For now, users can only establish a wallet with Miniscript descriptors, create addresses, and fund them with Bitcoin. Still, spending from these addresses is not yet supported. Nevertheless, the first step toward more extensive Miniscript support has been taken with Bitcoin Core 24.0.

Sendall and Changeless Transactions

An important upgrade that will strengthen user privacy is the introduction of sendall. This remote procedure call (RPC) allows users to spend every unspent transaction output (UTXO) in their wallet. The sendall call sends the amount contained in the specified UTXOs to one or more recipients without generating change. 

This feature can be useful in a variety of situations. The most obvious is when users want to empty their wallets—sendall’s default configurations can do just that. But most importantly, sendall helps improve privacy, since no changes are made during the process. According to Bitcoin Magazine, changing addresses can pose a privacy issue because users often lose track of where they originated from, increasing the likelihood that they will mix them with other UTXOs as inputs in a future transaction. Through changeless transactions, sendall combats this problem by creating a transaction that spends the entirety of the selected UTXOs—since no change occurs, the user can’t make the aforementioned mistake.

Replace-By-Fee Updates

Bitcoin Core 24.0 introduced two updates to the Replace-By-Fee (RBF) functionality: The first one consists of allowing users to configure their nodes to forward replaceable transactions without enforcing the RBF flag. This can be done using the new mempoolfullrbf function. The feature is disabled by default, but those who want to enable it can easily turn it on. The second update makes RBF a standard in the Bitcoin Core’s wallet—transactions now choose RBF and the -walletrbf startup option is set to true by default. Users can disable RBF by modifying a specific transaction in its building process or setting the -walletrbf startup option to false.

These two features have been the subject of lively and controversial debates in recent months. Most critics believe that the new update encourages double-spending attacks and makes zero-confirmation transactions obsolete. Zero confirmation loosely translates to the blockchain accepting a Bitcoin transaction before it is validated by the miners, making these transactions not only secure but also useful. The RBF update is believed to have a negative impact on zero-confirmation transactions, as miners can now easily replace them with higher-fee transactions. In fact, this has led some critics to suggest that increasing transaction fees is actually the main goal of the RBF mechanism.

P2P Communications

Prior to the release of Bitcoin Core 24.0, a new peer joining Bitcoin would search for other peers to download block headers from. The peer wouldn’t initially download whole blocks because it was incentivized to verify whether the right chain was being followed. Otherwise, the risk of downloading blocks for the wrong chain and wasting resources would arise. To reduce the potential threat of a resource exhaustion attack when downloading the headers, Bitcoin Core introduced the concept of checkpoints, which determine which blocks must be present in a chain for it to be valid. But this solution poses a problem, as checkpoints could be exploited to roll back the longest chain.

With Bitcoin Core 24.0, peers now download block headers twice. First, the headers are downloaded and discarded (i.e., not stored on disk) until a sufficient amount of work is found to indicate that the chain the peer followed is valid. If this is the case, the peer restarts the process, but this time also saves the block headers to disk. By not saving the block headers to disk until being sure that they are part of a chain with significant proof of work, the peer avoids using large amounts of disk space. This also eliminates the need for checkpoints and is a more feasible solution, since it doesn’t rely on human input to determine the validity of the chain.

Graphical User Interface (GUI)

Until the release of the latest version of Bitcoin Core, its graphical user interface (GUI) was known for not providing the same level of functionality as RPCs and command line tools. Bitcoin Core 24.0 changes that by bringing a new menu item on the GUI, which allows users to restore a wallet from a backup. Previously, this option was only available on the command line.

Another shortcoming of the GUI compared to the RPC interface was related to the Bitcoin Core client settings. Until recently, even the well-known bitcoin.conf file could only be modified through the command line. Although there was an option to change the settings in the GUI, bitcoin.conf would have taken precedence over the GUI when both attempted to set data for the same configuration. Bitcoin Core 24.0 takes some steps to change that—the new update merges the GUI settings page with the bitcoin.conf file. Now, when a user opens the client’s settings on the GUI, the settings displayed are taken from the configuration file. Likewise, configuration changes made in the GUI are now reflected in the bitcoin.conf file.

Conclusion

Bitcoin Core 24.0 comes with exciting changes that increase both security and functionality for users and developers. New features and important updates to some key functionalities will enable safer transactions in the blockchain and improve user experience. Even though there was significant controversy surrounding the two updates to the RBF feature, it remains to be seen whether Bitcoin Core 24.0 will prove beneficial to all stakeholders in the long run.