In what would be a significant step towards becoming a cash-alternative, a major update is scheduled for bitcoin soon; Core developers are working on a way to improve the coin selection algorithm to deliver efficiency gains.
During a bitcoin (BTC) transaction, the system needs to identify how much BTC would the user receive after a payment/transfer is done. Simply put, if your cab fare today was $6.50, and you gave out a $10 note, the driver is obligated to give you the remaining change.
Digital currencies work differently, as every BTC you own is actually made of a lot of smaller fragments of BTC. Holding one “whole bitcoin” is rare. This is due to the digital nature of the currency, which stores data and hundreds of lines of code, instead of being made of a tangible asset such as gold. Thus, an average bitcoin wallet consists of many such data fragments to make up the total value. That prized 1 BTC in your wallet could actually be a 0.2 + 0.3 + 0.5 BTC.
These data “fragments” are called as unspent transaction outputs, or UTXOs, by the Bitcoin developers. The amount of UTXO depends on the prior transactions which the network handled.
To understand this better. Let’s say today your cab driver suddenly accepted BTC and your fare came to 0.2 BTC. Based on the amount you have in your wallet, Bitcoin’s algorithm divides your bitcoins into two parts:
- The amount to be paid (called input),
- The change you would receive (called change output).
So, if your 0.5 BTC were used, the system would effectively use data from 0.5 BTC to facilitate a transfer of 0.2 BTC. But developers say, and you might have guessed this by now, that such a method is not good to execute transactions.
UTXOs Slow The Network
Due to many change outputs being created on the network every second, developers think that they aren’t necessary, and importantly, they waste space. And to scale the Bitcoin network up to a daily use level, such slowdowns in time ought to be eliminated.
In an interview with a cryptocurrency news website, Bitcoin developer Andrew Chow said, “Bitcoin Core’s original coin selection algorithm actually needs a lot of reworking, especially with regards to transaction fees. It’s inefficient, and it ends up doing a weird loop to try to guess the number of transaction fees that are needed.”
Using the cab driver example, perhaps a better method would be for the algorithm to search for two 0.1 BTC data sets, thus, eliminating the need for a “change output.”
Update Set To Make Coin Selection A Thing Of The Past
After months in the making, the Branch and bound (BnB) update, or BnB, is the Bitcoin developers answer to making the old coin selection algorithm obsolete. By using the data in a much-streamlined manner, the update could make transactions faster and substantially lower fees.
Chow was the first developer to begin work on the code, and according to the GitHub page, it is only some more time before the update is implemented into the codebase.
Speaking of the benefits of the changes, Chow said, “This will let us tidy up the coin selection code a lot and actually make it possible for one person to understand exactly what the coin selection algorithm is doing.”
Here’s How The Bnb Update Works
In non-specialist terms, BnB simply searches for the exact number of bitcoins a user wants to send in a transaction. This process eliminates any change output calculations. Thus, in order to pay 0.2, the algorithm would first search for 0.2 BTC, and if unsuccessful, search for other small units that add up to 0.2 BTC.
The process was tested with a 40 percent success rate in simulations, effectively ignoring unnecessary UTXOs. And while this update would create a much better experience for bitcoin’s average daily user, developers have much to rejoice as well – the BnB algorithm is much easier to implement and understand.