Поскольку биткойны регулярно вознаграждаются майнерами , будет ли количество биткойнов продолжать расти бесконечно или будет существовать максимальное общее количество биткойнов? И если есть какое-то ограничение, то какое оно и как оно соблюдается?
Каждый блок вводит в систему 50 новых монет. Это количество (50) уменьшается вдвое каждые 210 000 блоков. Итак, получить лимит монет, которые можно сгенерировать, довольно просто: это сумма геометрического ряда.
Также обратите внимание, что это верхняя граница; фактическое количество, вероятно, будет немного меньше из-за проблем с округлением (BTC имеет конечное число знаков после запятой, 8).
Предварительно определенный график ограничивает общее количество биткойнов, так что они постепенно приближаются к 21 миллиону (игнорируя те, которые были потеряны из-за удаленных или неуместных файлов кошелька). Ограничение в 21 миллион биткойнов «зашито» в протокол , и никогда не будет больше биткойнов, чем это:
Как упоминалось в Artefact2, Биткойн использует математику с фиксированной точкой для расчета субсидий на блок. Таким образом, игнорируя блок генезиса, который нельзя потратить, различные потерянные монеты и невостребованные вознаграждения, максимальное количество биткойнов составляет 20999999,9769 BTC.
Я нашел этот номер с помощью следующей программы Python:
COIN = 100 * 1000 * 1000
nSubsidy = 50 * COIN
nHeight = 0
total = 0
while nSubsidy != 0:
nSubsidy = 50 * COIN
nSubsidy >>= nHeight / 210000
nHeight += 1
total += nSubsidy
print total / float(COIN)
Он предназначен для отражения этого кода из биткойн-клиента:
int64 static GetBlockValue(int nHeight, int64 nFees)
{
int64 nSubsidy = 50 * COIN;
// Subsidy is cut in half every 210000 blocks, which will occur approximately every 4 years
nSubsidy >>= (nHeight / 210000);
return nSubsidy + nFees;
}
Конечно, он отличается от 21 миллиона BTC всего на 3 битцента, так что разница несущественна.
В соответствии с BIP (предложением по улучшению биткойнов), который я нашел, этот код:
nSubsidy >>= (nHeight / 210000);
фактически вернет генерацию вознаграждения к 50 в какой-то момент в 2200 году или около того. Делаем запас биткойнов бесконечным. Приведенный выше код Python не имеет этого свойства. Код C++ делает. См. BIP https://github.com/bitcoin/bips/blob/master/bip-0042.mediawiki .
Согласно текущим правилам , будет максимум 21 миллион монет (объяснено в других ответах здесь). Однако я хотел бы добавить, что это по общему согласию, что означает, что это может быть изменено .
См. этот вопрос: Может ли быть гиперинфляция в биткойнах?
Глядя на историю денег, я скептически отношусь к тому, что когда-либо будет только 21 миллион монет. Я не знаю слишком много случаев в истории, когда деньги могли быть созданы из воздуха, но не были созданы. Было бы глупо игнорировать историю. Будет ли выпущено более 21 миллиона монет, зависит от того, будет ли это востребовано «народом», и опять же история является нашим проводником.
Ре. «Как это обеспечивается?»: ограничение в 21 миллион обеспечивается теорией игр. Теоретически 50% майнеров могли бы принять код, который увеличил бы скорость добычи, но это нарушило бы общественный договор, созданный Сатоши, безвозвратно повредил бы целостность биткойна и обрушил бы цену. Таким образом, любой человек или любая группа, которые могут изменить ограничение, заинтересованы в том, чтобы этого не делать.
Я написал подробный анализ предложения и инфляции в биткойнах для тех, кто интересуется математикой, стоящей за этим. Ниже приведена формула, выражающая предложение биткойнов в зависимости от высоты блока:
где S — предложение, h — высота блока, альфа = 1/2, бета = 210 000, R_0 = 50, а квадратные скобки без верха обозначают функцию пола.
Принимая его предел как h-> бесконечность, мы приходим к тому же результату, что и @Artefact2.
внутренний