主页 > imtoken唯一官网 > 比特币会在 2140 年用完?我用python计算了一个账户

比特币会在 2140 年用完?我用python计算了一个账户

imtoken唯一官网 2023-01-16 23:35:22

什么是比特币

想直接看计算过程的同学可以跳过本节

首先,比特币是一种直接进行点对点交易的虚拟货币。所有用比特币进行的交易都需要考虑在内。

比特币最重要的理念之一是去中心化。以前是银行记账。现在我们不需要银行了。我们动员网民参与记账。

用手机挖比特币

那么问题来了,会计占用了自己的电脑资源和电费,你怎么能激励人们帮助会计呢?方法是你留个账户一次,我会给你一定数量的比特币作为奖励。这样用手机挖比特币,每个人都会争相帮忙记账。如何解决“争记账”的问题?

众所周知,哈希函数是一个单项陷阱门函数,即可以从函数的输入快速计算输出,但是看到输出时无法计算输入。因此,给定一个 y 值,没有比暴力破解 x 更快的方法来找到 x。比特币的规则是要求你找到一个指定规则的y值对应的x值。所有想帮助簿记的人都使用暴力和详尽的方法来计算x值。谁先计算出正确的 x,谁就有资格记录它。帐户并获得比特币奖励。这种暴力而详尽的过程既耗时又耗电用手机挖比特币,所以我们称之为挖矿。这也是比特币的发行渠道。通过“挖矿”挖出比特币后,我们就可以用它来买东西了。

还有一个问题,就是用国家发行的纸币买东西,何必用比特币呢?例如,你知道暗网吗?简单来说,暗网是搜索引擎无法搜索到的网络。暗网上有一些黑市交易,这些交易都是使用比特币进行的,因为比特币点对点交易具有高度的匿名性。人们可以互相信任完成转账,而不会像传统银行转账那样留下交易痕迹。

为什么比特币会在 2140 年左右用完?

用手机挖比特币

比特币诞生之初,比特币的创造者,一个或几个匿名的中本聪,制定了以下规则:

1.比特币总量2100万

2.2008年使用比特币时,每记账50比特币。

3.每210,000个区块,收入将减半。

用手机挖比特币

4.每 10 分钟记一次帐。

根据这些规则,我们将初始总和设置为2100,000,然后设置一个周期,每10分钟消耗一次比特币,直到比特币总量下降到0.0001的数量级。

import matplotlib.pyplot as plt
sum = 21000000  #比特币初始数量revenue = 50 #每记账一次的初始收益(2008年时记账的收益)time = 0 #2008年第一枚比特币发放之前时间记为0block = 0 #初始时记账数为0begin = [2008,] #初始时间2008年year_revenue = [50,]
year_total = [21000000,]while sum<0.0001 :    if (block==210000) : #记账每到210000次,记账一次的收益减半
        revenue = revenue/2
        block = 0
    if( time%525600==0) : #记录每年的记账收益和剩余比特币数量,一年有525600分钟
        begin.append(begin[-1]+1)
        year_revenue.append(revenue)
        year_total.append(sum)    #每10分钟记账一次
    time = time+10 
    block = block + 1 
    sum -= revenue
print("result is ",time)#以下是画图过程plt.figure(figsize=(10,10))
plt.plot(begin,year_total,'-')
plt.xlabel("year")
plt.ylabel("remain bitcoins aumount")
plt.ticklabel_format(style='plain',axis='y')
plt.xticks(np.arange(min(begin), max(begin)+1, 10.0))
plt.yticks(np.arange(min(year_total), max(year_total)+1, 1000000))
plt.grid(True, linestyle = "-.",linewidth = "1")
plt.savefig('C:/Users/username/desktop/yearAmount.png',dpi=100)
plt.figure(figsize=(10,10))#plt.plot(begin,year_revenue,'-')plt.plot(begin,year_revenue,'-')
plt.xticks(np.arange(min(begin), max(begin)+1, 10.0))
plt.yticks(np.arange(min(year_revenue), max(year_revenue)+1, 1))
plt.xlabel("year")
plt.ylabel("current revenue")
plt.grid(True, linestyle = "-.",linewidth = "1")
plt.savefig('C:/Users/username/desktop/yearRevenue.png',dpi=100)

最终结果如下:

用手机挖比特币

700

每年剩余的比特币数量

从图中可以看出,到 2018 年,大约 80% 的比特币已经发行。根据我的程序计算,比特币数量下降到0.0001(公元2158年)需要150年,下降到0.001(公元2145年)需要137年,124年下降到 0.01(公元 2132 年)。因此,网络上广泛使用的比特币将在 2140 年用完的说法更为准确。

那么你现在每次挖矿可以赚取多少比特币?

用手机挖比特币

700

各年挖矿收益变化图

2018年,一次挖矿的收益从2008年的50比特币增长到12.5比特币。从图中可以看出,2038年后,每次挖矿的收益还不到一个比特币。

最后,有一个问题想和你讨论。比特币用完后,不会再发行新的比特币,市场上仍有比特币在流通,也就是仍有交易的需求。被计费,那么人们将如何被激励来保持账单呢?

欢迎在留言区讨论~