Bitcoin Cash Upgrade - v25.0.0. and v26.0.0

The Bitcoin Cash Node (BCHN) project has announced two major release versions - v25.0.0. and v26.0.0 on the mainnet to be implemented jointly on May 15th, 2023.   

The v25.0.0 release version is marked as a major release that delivers new rules including four Cash Improvement Proposals (CHIP) as consensus changes together with other bugfixes and several enhancements including performance improvements. The v25.0.0 release version (referred to as the network upgrade) was announced on the 30th of November 2022 as a mandatory release as it implements the network upgrade and as such will not be backward compatible. 

Subsequently, the v26.0.0 release which was announced on 8th January 2023 is also considered to be a major release in line with the BCHN Project’s ‘Semantic Versioning’. However, this is not due to consensus changes, but due to configuration changes, including corrections and improvements and changes to an interface (the rpcbind / rpcallowip options) in a manner that is not completely backward compatible.  

The network upgrade (v25.0.0) is expected to take place once the median time past (MTP) [1] of the most recent 11 blocks is greater than or equal to UNIX timestamp 1684152000 (May 15th, 2023, at 12:00:00 UTC / 16:00:00 GST). 

 Bitcoin Cash Node users are encouraged to update to v25.0.0 or later prior to May 15th, 2023.

Announcement | Bitcoin Cash Node v25.0.0

Announcement | Bitcoin Cash Node v26.0.0

Bitcoin Cash Network Upgrade Specification

 

Evaluation Process  

 MidChains has:  

  • Evaluated what is changing? 

  • Analysed the impact of the changes. 

 

What is Changing?

 v25.0.0:

The proposed upgrade to the Bitcoin Cash peer-to-peer electronic cash system would enhance the enforcement of acceptable transaction version field values as a consensus rule. The current network relay rule would be replaced with a consensus rule to ensure compliance with the allowed transaction version field values. By including this in the consensus specification, it would be easier to track future Bitcoin Cash consensus specification upgrades. This would also facilitate future hard-fork upgrades that are non-breaking and backwards-compatible for non-node software. 

 

The proposed update to the rule for minimum transaction sizes aims to reduce the burden on library and mining software while ensuring that users of Simplified Payment Verification (SPV) nodes are protected from potential attacks. The current consensus minimum transaction size of 100 bytes would be lowered to a new minimum size of 65 bytes. This new minimum size (65-byte), which is similar to the previous 100-byte minimum size, would apply to both coinbase and non-coinbase transactions in a uniform manner.  

 

This proposal aims to enable the creation and use of tokenized assets on the Bitcoin Cash network. It proposes a set of new opcodes and transaction types that can be used to issue and transfer tokens on the network, such as creating loyalty points, digital art or other assets.  The introduction of the two new token primitives on Bitcoin Cash: fungible tokens and non-fungible tokens will be deployed to enhance the Bitcoin Cash contract system. This is expected to bring several improvements such as cross-contract interfacing, support Decentralized Apps on Bitcoin Cash by way of the Bitcoin Cash Virtual Machine (VM), as well as supporting the development of higher-level interoperable token standards e.g., Simple Ledger Protocol (SLP).  

 

This proposal aims to improve the security and functionality of Pay-to-Script-Hash (P2SH) transactions on the Bitcoin Cash network. It proposes changing the current P2SH address format from 20 bytes to a 32 byte variant to increase the number of possible address combinations, making the address scheme more secure and flexible. The 20-byte variant is known to have weakness against the birthday attack. This has prevented many decentralized applications from being created as they tend to be insecure and impractical to use. 

 

  • Support for New ‘Chipnet’ Test Network (For Pre-Upgrade Testing)

Ahead of the mainnet upgrade, a new ‘chipnet’ test network has been added to enable testing of all the new upgrade features (such as CashTokens, P2SH-32). The chipnet was activated on 15th November 2022. 

 

  •  Double Spend Proof Notifications in the GUI Wallet

This feature allows users of the graphical user interface (GUI) wallet to receive notifications when a double spend attempt is detected on a transaction they are attempting to make. 

 

  • BIP69 Input/Output Sorting in Bitcoin-tx Command Line Tool

This enhancement improves the functionality of the bitcoin-tx command line tool by implementing BIP69 input/output sorting, which can make transactions more efficient. 

 

  • Enhancement for UI Tests in Test Framework

This feature improves the user interface (UI) testing capabilities of the Bitcoin Cash Node software by adding enhancements to the test framework. 

 

v26.0.0:

  • RPC Related Bug Fixes and Output Improvements

The rpcallowip option functionality has been modified to not support automatic listening on all network interfaces. Instead, the rpcbind parameter must be used to specify the IP addresses to listen on. Listening for the Remote Procedure Call (RPC) commands over a public network connection is insecure and should be disabled, so a warning is now printed if a user selects such a configuration. Other fixes have been implemented in this update in relation to the RPC functionality, such as incorrect output for the ‘getmempoolinfo’ command and a bug that caused the ‘gettxout’ RPC to return incorrect data. It also improves the output of several RPC commands, including ‘getpeerinfo’ and ‘getblockstats’. 

 

  • Performance optimization for getblock

The 'getblock' command has been optimized to improve the speed and efficiency of retrieving a specified block from the blockchain. The update enhances the overall performance and speeds up block syncing. The team modified the getblock RPC command to include fee information per transaction in the block with verbosity level 2. Additionally, the getblock RPC command with verbosity level 0 now takes a faster path by skipping some sanity checks and assuming the block data read from the disk is valid, resulting in faster retrieval of raw block data. 

 

  • A New Benchmark Performance Bisection Script

This feature adds a new script to the software called ‘bench/bench_bitcoin’, which allows for benchmarking and performance analysis of various functions in the software, including block validation and network communication. 

 

  • Some Support Code for Future UTXO Commitments

This release includes some support code for future Unspent Transaction Output (UTXO) commitments, which are a proposed improvement to the Bitcoin Cash protocol that would allow for faster and more efficient validation of the blockchain. 

 

  • Minor Documentation Updates

This release includes some minor updates to the software documentation, such as improved descriptions of command line options and updates to the developer documentation.

 

Release instructions for v25.0.0 and v26.0.0 releases

 

Impact Analysis 

MidChains will support the Bitcoin Cash network upgrade. Node operators are required to upgrade their nodes to v25.0.0 or a newer version before 15th May 2023 as v24.x.0 software will expire on the same date. Users currently running v25.0.0 are not obliged to upgrade to v26.0.0, but it is advisable to do so.  No action is required by clients who hold BCH and clients’ funds will not be impacted by this upgrade. Deposit, withdrawal, and trading will remain uninterrupted for BCH and BCHUSD during the time of the upgrade.  

 The upgrade is not explicitly noted to be contentious, however, the Bitcoin Cash Node team has stated their close working relationship with other software and hardware developers to ensure compatibility with the upgraded protocol. Efforts will be made to minimize disruptions to network operations and exchange connectivity. This suggests that efforts are being made to avoid a contentious hard fork that could result in a split in the network. 

 

Impact on Client Funds: No impact to clients' funds post network upgrade. All transactions are expected to be processed without issue.  

Regulatory implications: None.  

Maturity / Market Capitalization: None.  

Security and Operations: Enhanced security and efficiency. 

Traceability / Monitoring: None. 

Exchange Connectivity and Demand: Potential increase in market participants  

Type of Distributed Ledger Technology (DLT): No impact. 

Innovation and /Efficiency: Improved network performance in relation to speed and scalability.  

All potential operational and market risks identified in relation to the Bitcoin Cash network upgrade including potential network stability, possible vulnerabilities posed by malicious actors on the network’s security due to protocol changes, disruption to the network, and possible fluctuation in the price of BCH  have been found not to have significant impact ,as the Bitcoin Cash Node team  have put measures in place to mitigate significant risks by giving priority  to network security, maintaining traceability of transactions, and fostering innovation on the network. Prior to the announcements of the Bitcoin Cash network upgrade version releases, extensive testing has been conducted and further improvements are tracked in the Bitcoin Cash Node Project Gitlab Repository.  

 

Upgrade Preparation 

Node operators are required to upgrade nodes before 15th May 2023 to v.25.0.0 or later, with upgrade to v26.0.0 also recommended. Node operators are cautioned to upgrade ahead of 15th May 2023 as the v24.X.0 software is scheduled to expire on the mainnet upgrade date (15th May 2023). Further caution is given to carefully follow the release notes of the versions when upgrading. No action is required by clients who hold BCH.