iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 8
0
Blockchain

Go to Blockchain: 從區塊鏈基礎到用 Go 實作區塊鏈系列 第 8

Go to Blockchain: Day8 區塊鏈的共識獎勵機制 - 挖礦

算力

  • 算力意思就是挖礦機器的運算能力,是挖礦效率的關鍵,更精確地來說就是每秒鐘能夠計算的 Hash 數
  • 算力的單位是 H/s

挖礦

  • 在比特幣的概念中,挖礦就是一種暴力破解 SHA-256 的過程,或者說就是前述的 hashcash +獎勵機制(就是像,古代利用珍貴金屬交易,所以需要挖礦來當貨幣w

  • 挖礦的人就稱為礦工(辛苦 QQ

  • 再挖礦中我們的題目就是要連續 N 個 bit 為 0 為開頭出現在 Hash(SHA-256)的輸出中

    • 例如現在要求 N=24,一組可能解就是00000041662c5fc2883535dc19ba8a33ac993b535da9899e593ff98e1eda56a1

      • 註:一個 16 進位的 0 代表 4 bit 的 0
    • N 越大,代表這個題目的難度越高,而 N 越大也代表了這個數字越小,還句話說,難度越大,目標的數值越小,而我們也就是判斷得出值是否小於這個目標值()

      SHA256 ( Block_data + Nonce) < Difficulty

    • 每產生 2016 個區塊(大約 14 天),難度就會調整一次,而這調整方法就是利用實際產生 2016 區塊的時間和理論產生 2016 區塊的時間的比值調整的,也因此當時全網算力越高(產生2016區塊的時間的時間會越快),難度會越高。

      新難度值 = 當前(舊)難度值 * [實際 2016 個區塊生成花費時間 / 理論上 2016 個區塊生成花費時間 (2周)]

  • 挖礦的獎勵分為兩部分:

    • 這兩部分也就是製造比特幣的方式,而為了避免通貨膨脹,中本聰限制其最多只會發行 2,100 萬個比特幣
    1. 挖出來的礦-造幣:
      • 每挖掘一個新區塊就會獲得一定的獎勵,在 2009 年時,獎勵為 50 比特幣,而每產出 21 萬個比特幣,獎勵就會減半一次
      • 若獎勵小於比特幣的最小單位 0.00000001 (預計在 2140 年),則就不會有比特幣由此生成
    2. 交易的手續費:
      • 如果一個區塊被成功連接鏈上,成功連上去的那個人就會獲得手續費的獎勵

最長鏈機制

  • 全世界的礦工有很多人,那有兩的人同時算出正確答案時該怎麼辦呢?
  • 這時區塊鏈應該就會有出現分岔,而這兩個分岔就都會有人在繼續挖礦
  • 由於兩條被延長後就會有算力的差別,也就是兩條鏈的工作量不同
  • 由於工作量越大也就代表越多人在這上面工作,而"大多數人"可以決定這條鏈被最多人相信
  • 因此這條最長鏈也就會成為主鏈,也就保證了區塊鏈的唯一性以及安全性

51 %攻擊

  • 只要單一單位可以控制大部分的運算能力,就可以修改區塊鏈的資料
  • 換句話說,只要單一單位掌握了超過 51 % 的算力就可以故意排除或篡改交易順序
  • 一旦區塊鏈網絡變得愈來愈龐大,更改已確認的區塊會變得越來越困難,而進行 51 %攻擊的成本也會越來越高,因此要更改也會變得更不可能

參考資料

  1. 區塊鏈共識機制 — POW 工作量證明 Proof Of Work
  2. 比特幣系統是如何調整挖礦難度的?
  3. 比特幣系統激勵機制知多少?

上一篇
Go to Blockchain: Day7 區塊鏈的共識獎勵機制 - 工作量證明
下一篇
Go to Blockchain: Day9 比特幣運作模式總結
系列文
Go to Blockchain: 從區塊鏈基礎到用 Go 實作區塊鏈30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言