第八章 聊聊區塊鏈的幾個數字

1、概述

在學習區塊鏈過程中,會發現一些數字,心裏不斷問自己,爲什麼會有這些奇妙的數字,它們是如何被定義出來的:

  • 比特幣總數量爲2100W個
  • 挖礦獎勵每4年遞減1次
  • 每個區塊10分鐘
  • 6次確認後交易永久生效
  • 51%攻擊

本章的目的就是揭示這些數字背後的深層的原理。

這一章,可以說即快樂,又痛苦。
本身解謎就是一種很有樂趣的事情,痛苦的是這幾個問題都沒有標準答案。就算是自己的一種思考吧。

2、2100W

首先看看區塊鏈爲什麼設置一個總量?目的是爲了控制通脹,也就是貨幣貶值。

那爲什麼設置總量爲2100W比特幣,這個沒有明確答案,我覺得可以從以下幾個方面考慮:

  • 總量需要滿足一個條件:能支撐全球的經濟總量要求。2019年全球的GDP總量約爲86.6萬億美元,2100W能支撐全球經濟總量的長期發展。
  • 不能超過編程語言的對於整數的限制:比特幣的最小單位是“聰”,1比特=1億聰。所以比特幣的總量等價於2100W億,也就是2的50.899次方。這個數字比java中的整數2的64次方減1要小的多,但是在某些編程語言中,比如js,精確整數的最大範圍就是2的52次方。
  • 爲什麼要設置比“比特幣”更小的單位“聰”:貨幣的一個特性是可拆分,比如人民幣有100、50、20、10、5、1的面額,可以支持小額交易。

3、每個區塊10分鐘

爲什麼生成每個區塊大概間隔10分鐘,這個問題,也沒有標準答案,可以試着從以下幾個方面分析:

  • 交易效率的考慮:每產生一個區塊,區塊中的交易就得到了確認。設置爲10分鐘,意味着每10分鐘,新交易就可以確認一次。如果太長的話,就會降低交易效率。
  • 降低分叉的概率:間隔時間是通過目標值的難度係數控制的,難度係數越低,則時間越短。由於難度係數降低,礦工同時成功的機率會大大增加,這就增大了分叉的概率。
  • 網絡延遲:網絡中的新交易廣播到全網,以及礦工挖礦成功後把區塊廣播到全網,需要一定的延遲時間,如果時間太短,不能保證大部分節點都能收到。

上面的分析,只證明了每個區塊的生成需要一定的時間,但是爲什麼是10分鐘,可能是進行了一些模擬測試,從衆多的數字中得到的一個結果。

4、挖礦獎勵4年遞減1次

結合第二節我們知道,比特幣的總數量應該有一個限制,但是就算有限制,那爲麼什麼獎勵要遞減,不遞減也可以達到這個總量呀,爲什麼是4年,不是2年,也不是8年呢?

因爲每個區塊大概爲10分鐘,每21W個區塊後獎勵減半,所以問題可以轉換爲:爲什麼是21W個區塊後減半?

這個問題實在是難以解答,有一個黃金論,試着解釋一下吧。太牽強了。

世界上的黃金儲量是有限的,總計大概爲21W噸,目前大部分已經開採完畢,剩餘儲量很少,每年的開採量都是有計劃的,正是由於黃金是稀有的金屬,纔會在人類社會幾千年的歷史中,始終作爲價值的代表。

比特幣,如果想跟黃金一樣成爲一種持續有價值的貨幣,發行數量需要在一個相對較短的時間,追趕上已經發布的黃金數量。如下圖所示,在2020年,比特幣的發行量將達到總量的87.5%。另外,在初期設置較高的獎勵,也有助於促進礦工積極參與挖礦。
隨着時間流逝,社會對比特幣的認知越來越深,比特幣的網絡也已經比較網絡,慢慢的把獎勵取消也不會造成礦工的積極性減退。
在這裏插入圖片描述

5、區塊確認6次永久生效

6次永久生效,只是一種模糊的描述,不可能永久生效,只是造假的概率足夠低而已。

在中本聰的《比特幣:一種點對點的電子現金系統》一文中,對攻擊者的成功概率進行了模擬計算,詳情可以參考這篇文章。

q表示攻擊者算力所佔的比例,z代表區塊的數量,意思是當在當前算力下,需要至少多少個塊,才能使造假概率低於0.1%。

q=0.10 z=5
q=0.15 z=8
q=0.20 z=11
q=0.25 z=15
q=0.30 z=24
q=0.35 z=41
q=0.40 z=89
q=0.45 z=340

6、51%算力攻擊

假設小黑轉給小白100BTC,小黑控制了全網51%的算力。則會推斷出小黑在競爭最新區塊時獲勝的概率非常大,甚至在可以完全掌控後面區塊的生成。
攻擊的過程是:小黑重新創建第N個塊,把轉給小白的記錄從中刪除,然後重建之後所有的區塊,使新創建的鏈成爲最長鏈。
這樣的結果就是小黑轉給小白100BTC的交易失效。

在這裏插入圖片描述
綜上發現,小黑只能把自己轉給其它人的比特幣取消而已,不能憑空創建比特幣,也不能把其它人的比特幣佔爲己有。網絡節點不會把一筆無效交易當作支付,而誠實節點也永遠不會接受一個包含這種支付的區塊。攻擊者最多隻能修改屬於他自己的交易,進而試圖取回他已經花出去的錢。

況且,如果小黑已經擁有了51%的算力,爲什麼不通過挖礦、手續費等方式合理獲取收益,而是要通過這種破壞比特幣規則的方式來獲取呢?

所以,51%攻擊從理論上看可能,但是從經濟學角度上看,並不可行。

6.1 幣安黑客事件

幣安交易所用戶被盜比特幣7000餘枚。

經分析,黑客是通過釣魚、木馬等方式,獲取了大量幣安註冊用戶 API 密鑰(身份驗證,控制訪問)、谷歌驗證 2FA 碼以及其他相關信息,從而進行提款操作。

所以在比特幣上,如何保護私鑰、保護密碼、驗證碼可能是每一個用戶更重要的課題,而不用去擔心51%攻擊的問題。

參考資料

比特幣的總量爲什麼只有2100萬,不能更多嗎?
爲什麼比特幣設定的是 2100 萬枚的上限?
比特幣轉賬爲什麼一定要等6個確認才能到賬?| 白話區塊鏈入門129

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章