iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 7
1
Blockchain

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

Go to Blockchain: Day7 區塊鏈的共識獎勵機制 - 工作量證明

工作量證明(Proof-Of-Work - POW)

  • 工作量證明是比特幣的的共識機制,顧名思義,你要證明你有在做事(不要再混惹喔~

  • 這概念就好像是,我們在學校做打掃工作時,我們需要去做打掃工作,並且去找衛生股長去做確認來證明我們是完成工作的。

  • POW 的演算法需要;

    1. 工作困難

    2. 驗證簡易

      => 因此會利用 Hashcash 讓他們解題目xD

1. 為甚麼要工作量證明

  • 在比特幣區塊鏈上,每隔 10–15 分鐘就會把這期間的所有交易訊息打包成一個區塊並加到最長的區塊鏈上,而在這時候,我們必須進行這些工作來證明它是有效的,接著被網路上的其他參與者確認並接受,如此交易才算完成。

2. 甚麼是工作?

  • 在比特幣的系統中,所謂的工作就是解決複雜計算來獲取添加到鏈上的權限,也就是挖礦

3. Hashcash

  • Hashcash 原先是用來防止垃圾郵件的方法,原理如下:
    • 先想想為甚麼現實生活中不會有太多垃圾郵件出現在你家(也有可能很多w)
    • 重點在現實中寄郵件要錢,而 e-mail 不用花錢
    • 因此只要我們提高寄 e-mail 的花費,垃圾郵件就會減少了
    • 上述**"現實中寄郵件要錢"**就是 Hashcash
  • Hashcash 也是比特幣用來檢視工作量證明的算法,其步驟如下:
    1. 首先會有個題目(就是要叫你做一些特殊的事 ///ω/// )
    2. 拿取一些公開的數據(區塊的各資料)
    3. 在他後面加上一個 nonce
      • 會形成一串"區塊資料+nonce",我們把它稱作混合值
      • Nonce 有點像是 counter
    4. 把這個混合值經過 Hash 過後看有沒有滿足我們的題目
      • 如果滿足-你就答對這個題目惹w(就是成功證明惹)
      • 如果不滿足-把 nonce + 1 ,再試試吧~
    5. 如果成功惹
      • 如果是防止垃圾郵件情況:
        • 郵件才會被寄出
      • 如果是再比特幣 POW 的情況:
        • 解開的人就會馬上對全部人廣播打包好的區塊
        • 其他人就會進行驗證(對解開的人所廣播的字串進行 Hash,並滿足題目),只要驗證通過就會被加入區塊鏈中

參考資料:

  1. 區塊鏈共識機制 — POW 工作量證明 Proof Of Work
  2. 工作量證明
  3. hashcash 演算法:從你最熟悉的“驗證碼”來解釋區塊鏈的意義

上一篇
Go to Blockchain: Day6 區塊鏈的網路架構
下一篇
Go to Blockchain: Day8 區塊鏈的共識獎勵機制 - 挖礦
系列文
Go to Blockchain: 從區塊鏈基礎到用 Go 實作區塊鏈30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言