Sigh... you should know and I know that MAX_MONEY could equal "gesundheit" for all the difference that it really makes. If you are worried about redundant variables left in code you should avoid checking the code for just about every commercial program in captivity.
Completely wrong, the value of MAX_MONEY is very important, along with COIN. MAX_MONEY = 420,000,000 * COIN is absurd and way over shot for the supply this coin distributes. COIN = 10^8 or 100,000,000.
MAX_MONEY essentially the accepted amount allowed on your network within a transaction, you just are not accepting this fact for some reason.
Seems you too also would rather be lackadaisical about the allowed supply to exist with your investments in this coin.
This fix will require a hard fork and probably something to address before network hash rates get low enough to prevail a malicious attack, not just potentially here, but anywhere else you may have a "redundant variables".
It's a vulnerability clearly sitting in plain view.
Proof of stake is also something to consider discussing as BitcoinSanDiego has mentioned previously. Many coins have successfully mitigated this transfer with plenty of success without requiring a switch of blockchains.
-James
As a programmer that reads the source code of these various coins, I can say that MAX_MONEY is often defined as the maximum supply of the coin that will ever exist by the programmers. This doesn't mean that the value of MAX_MONEY actually is the maximum amount of a coin that will ever be created. With Bitcoin it is, but I have seen other coins that have a difference between the value of MAX_MONEY and the maximum amount of coins that can be generated once the block reward drops to a number close to zero coin.
The Value of MAX_MONEY is used within the source code as a sanity check on the on any amount of coins, whether it be a transaction value or individual transaction output or a transaction fee. The source code checks the validity of a value of a number of coins by making sure that the value is above zero (0) and less than the value of MAX_MONEY. Additionally MAX_MONEY is the transaction fee for a block that is larger than a maximum size. The value of MAX_MONEY is arbitrary and could be mistakenly set to a value that would modify the behavior of the coin. For instance, if MAX_MONEY was set to 100 coins, whether mistakenly or on purpose, then this will definitely limit the amount of coins that could be sent in a transaction, while having other side effects.
MAX_MONEY is hard coded into the source code and some calculations are required to make sure that it would agree with the actual maximum amount of coins that could be produced on the blockchain according to the GetBlockValue function. For CANN, my calculations show that GetBlockReward maxes out at around 20 halvings of the block reward at around 105,860,159.84. Therefore CANN uses a value of 420 million for MAX_MONEY, while the actual max money will be about 106 million.