Angular, Blockchain, Science とか

Angular, Blockchain, Science全般 の情報を主に書いていきます。

ビットコインの総発行量を求めるスクリプト

ビットコインの発行量は時間とともに少なくなっていきます。

新しいビットコインはマイニングの報酬という形で生成されます。

210000ブロックごと、およそ4年ごとに発行量は半減されていきます。

以下のスクリプト(Python2)で総発行量を求めてみます。

# マイニングの報酬 (BTC)
reward = 50

# 210000ブロックごとに報酬は半減
# 1*6*24*365*4=210240
# 上の計算から約4年とわかる
interval = 210000

def max_money():
    # 50 BTC = 50 * 10**8 satoshi
    current_reward = 50 * 10**8
    total = 0
    while current_reward > 0:
        total += interval * current_reward
        current_reward /= 2
    return total

# Python3の場合 print(" ")とします。    
# Python2 3 でおそらく結果が少し変わります。
print "ビットコインの総発行量は :", max_money(), " Satoshis です"

結果は、

ビットコインの総発行量は : 209999999769000 Satoshis です

となるはずです。

この計算により、ビットコインの総発行量はおよそ2100万bitcoin であることがわかります。

ビットコインは発行量が減少していくので、インフレは起こらず、デフレになるはずです。

ビットコインのデフレ的傾向について議論するには、マクロ経済の知識が必要になるので、暗号通貨に取り組むなら、経済の勉強も必須となります。