总硬币供应,其工作原理以及代码的含义

  • 本文关键字:代码 硬币 工作 bitcoin
  • 更新时间 :
  • 英文 :


我目前正在研究比特币和莱特币,以尝试更好地了解加密货币,而总体上是区块链 - 我已经在代码中发现了一些我有问题的东西。

在src/nose.h中 - 我看到以下代码...

/** No amount larger than this (in satoshi) is valid.
 *
 * Note that this constant is *not* the total money supply, which in Bitcoin
 * currently happens to be less than 21,000,000 BTC for various reasons, but
 * rather a sanity check. As this sanity check is used by consensus-critical
 * validation code, the exact value of the MAX_MONEY constant is consensus
 * critical; in unusual circumstances like a(nother) overflow bug that allowed
 * for the creation of coins out of thin air modification could lead to a fork.
 * */
static const CAmount MAX_MONEY = 84000000 * COIN;

现在,这里的评论似乎表明该代码实际上并未定义货币的总供应,即使实际上可用的litecoin数量实际上是84,000,000 ...

所以,我真正的问题:

真正的总供应是另一个代码中的吗?如果是这样,我缺少什么,我可以在哪里找到此代码,如果我要尝试编辑它(我不是 - 但是我想了解这里发生了什么) - 我需要在多个地方?

注意:即使这是问题中的莱特币,也标记了比特币,因为Litecoin似乎没有stackoverflow标签,而两个代码库无论如何都相似。

编辑:我还想补充说,我为" 84000000"执行了一个GREP,并且真正发现一行代码是相关的...所以我必须缺少某些内容...

编辑2:根据我所看过的git上的所有硬币,这是他们在调整总供应时会更改的数字 - 因此,评论是错误的 - 还是我误解了?

我意识到这是一个古老的问题,但是由于尚未更新,我会提供答案。

正如消息来源所建议的那样,max_money只是一项理智检查。如果有人试图创建一笔交易花费5亿比特币,并且以某种方式设法绕过所有其他理智检查,则该网络仍然会拒绝它,因为金额超过了max_money。因此,max_money与总供应没有直接相关,但是正如您所观察到的,许多Alts会将MAX_MONEY设置为硬币一生中预期的总供应。

对于具有一致奖励方案的纯工作证明硬币(例如每个X块减半),总供应可以预先计算,但未来的叉子可以改变。

对于典型的验证证明或混合验证证明和验证硬币,可以通过仿真来估算最大供应,但是确切的量会因网络活动而异。

(这假定该代码没有其他部分可以在达到限制后削减所有奖励。)

相关内容

最新更新