
Did Satoshi Nakamoto make a mistake in the Halving code?
How does Bitcoin’s block halving work on an engineering level? We explain with help from Andreas Antonopoulos.
In a recent video, Antonopoulos explained the Bitcoin Core code that controls the halving of the Bitcoin (BTC) block reward in detail.

Bitcoin halving code. Source: Bitcoin Core Software.
Line by line explanation
Every time a Bitcoin block is evaluated or a new block is mined, the function GetBlockSubsidy gets called. Its purpose is to calculate the appropriate size of the block reward. Line 1240 evaluates the halving cycle and divides the current block height by 210,000; the interval between the halving. At the time of this writing, the block height is 629369, if we divide it by 210,000, we get 2.99. Since the variable that stores this value is an integer type, the decimals get discarded. Using this information, the code “knows” that we have had two halvings. This is why the next halving will happen at block 630000.
Satoshi stands corrected
Lines 1242 and 1243 correct a mistake that Satoshi made in the original code. This error originally kept on halving the block reward past 64 halvings; the total number of halvings embedded in the Bitcoin protocol.
Line 1245 multiplies the original block reward of 50 by a constant COIN, which is equal to 100,000,000 Satoshis. Ironically, there are no Bitcoins in the Bitcoin code, only Satoshis.
Line 1247 calculates the appropriate block reward for the current block height. It uses a bitwise operation which is more efficient than regular math operations. The block reward that was calculated in Line 1245 is then adjusted according to the present block reward. Currently, this would look like this:
50 * 100,000.000 / 22= 1,250,000,000 Satoshis or 12.5 Bitcoins.
Finally, Line 1248 returns the appropriate block reward when called by another function or procedure in the Bitcoin code.
When the halving finally arrives in about 4 days, or 631 blocks, we can all take a sigh of relief and appreciate the beauty of Bitcoin’s code.
Source: , CoinTelegraph

Articles listed with Cash Tech News as the author are either general information, or may have been imported from another website, to bring our readers a rich media experience that encompasses articles that we find interesting, as well as those curated by others.
The views and opinions expressed here are for informational purposes only, and should not be confused with professional financial advice. These opinions are solely those of the author and do not necessarily reflect the views of CashTechNews.com. Every investment and trade involves risk. You should conduct your own research, and contact your professional financial advisor before making any investment.
Corrections, feedback, and ideas should be submitted through the website contact form.
