Da Bitcoins regelmäßig an Bergleute belohnt werden , wird die Anzahl der Bitcoins auf unbestimmte Zeit weiter wachsen oder wird es eine maximale Gesamtzahl von Bitcoins geben? Und wenn es eine Art Limit gibt, was ist das und wie wird es durchgesetzt?
Jeder Block führt 50 neue Münzen in das System ein. Diese Menge (50) halbiert sich alle 210.000 Blöcke. Es ist also ziemlich einfach, das Limit der Münzen zu ermitteln, die generiert werden können: Es ist die Summe einer geometrischen Reihe.
Beachten Sie auch, dass dies eine Obergrenze ist; die tatsächliche Menge wird aufgrund von Rundungsproblemen wahrscheinlich etwas niedriger sein (BTC hat eine endliche Anzahl von Dezimalstellen, 8).
Ein vordefinierter Zeitplan begrenzt die Gesamtzahl der Bitcoins, sodass sie sich allmählich einer Gesamtzahl von 21 Millionen nähern (wobei diejenigen ignoriert werden, die durch gelöschte oder verlegte Wallet-Dateien verloren gegangen sind). Die Grenze von 21 Millionen Bitcoins ist im Protokoll „fest verdrahtet“ , und es wird nie mehr Bitcoins als diese geben:
Wie Artefact2 erwähnt, verwendet Bitcoin Festkomma-Mathematik, um die Blocksubventionen zu berechnen. Wenn man also den nicht auszugebenden Genesis-Block, die verschiedenen verlorenen Münzen und nicht beanspruchten Belohnungen ignoriert, beträgt die maximale Anzahl an Bitcoins 20999999,9769 BTC.
Ich habe diese Nummer durch das folgende Python-Programm gefunden:
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)
Es ist beabsichtigt, diesen Code vom Bitcoin-Client zu spiegeln:
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;
}
Natürlich unterscheidet es sich nur um 3 Bitcent von 21 Millionen BTC, also ist der Unterschied nicht signifikant.
Laut einem BIP (Bitcoin Improvement Proposal), den ich gefunden habe, dieser Code:
nSubsidy >>= (nHeight / 210000);
wird die Belohnungsgeneration irgendwann im Jahr 2200 oder so tatsächlich auf 50 zurückführen. Den Vorrat an Bitcoins unendlich machen. Der obige Python-Code hat diese Eigenschaft nicht. Der C++-Code tut es. Siehe BIP https://github.com/bitcoin/bips/blob/master/bip-0042.mediawiki
Nach den aktuellen Regeln wird es höchstens 21 Millionen Münzen geben (hier in anderen Antworten erklärt). Ich möchte jedoch hinzufügen, dass dies eine allgemeine Vereinbarung ist, was bedeutet, dass es geändert werden kann .
Siehe diese Frage: Könnte es bei Bitcoin eine Hyperinflation geben?
Wenn ich mir die Geschichte des Geldes anschaue, bin ich skeptisch, dass es jemals nur 21 Millionen Coins geben wird. Ich kenne nicht allzu viele Fälle in der Geschichte, in denen Geld aus dem Nichts erschaffen werden konnte und es nicht war. Es wäre töricht, die Geschichte zu ignorieren. Ob es mehr als 21 Millionen Münzen geben wird oder nicht, hängt davon ab, ob "das Volk" es verlangt oder nicht, und wieder einmal ist die Geschichte unser Leitfaden.
Betreff. 'Wie wird es durchgesetzt?': Die 21-Millionen-Grenze wird durch die Spieltheorie durchgesetzt. Theoretisch könnten 50 % der Bergleute einen Code übernehmen, der die Produktionsrate erhöhen würde, aber dies würde den von Satoshi geschaffenen Gesellschaftsvertrag brechen, die Integrität von Bitcoin unwiderruflich schädigen und den Preis zum Einsturz bringen. Daher wird jeder oder jede Gruppe, die das Limit ändern könnte, dazu animiert, dies nicht zu tun.
Ich habe eine detaillierte Analyse des Angebots und der Inflation in Bitcoin geschrieben, für diejenigen, die sich für die Mathematik dahinter interessieren. Unten ist eine Formel, die das Bitcoin-Angebot als Funktion der Blockhöhe ausdrückt:
wobei S das Angebot, h die Blockhöhe, Alpha = 1/2, Beta = 210.000, R_0 = 50 und oben ohne eckige Klammern die Floor-Funktion bezeichnen.
Wenn wir seine Grenze als h-> unendlich nehmen, kommen wir zu demselben Ergebnis, das von @Artefact2 geliefert wird.
intmain