比特幣的產生----挖礦原理

買賣虛擬貨幣

2008年,由美國次貸危機引發的金融危機開始席捲全球,世界經濟開始全面衰退。

2008年11月1日,這個歷史性的時刻,一位自稱中本聰的人在網路上發表了《比特幣:一種點對點的電子現金系統》的白皮書,文中描述了一個全新的數字貨幣系統:比特幣。

satoshi nakamoto釋出了《bitcoin: a peer-to-peer electronic cash system》


比特幣產生方式

我們約定如此:每個區塊的第一筆交易進行特殊化處理,該交易產生一枚由該區塊創造者擁有的新的電子貨幣。

價值背書

這種將一定數量新貨幣持續增添到貨幣系統中的方法,非常類似於耗費資源去挖掘金礦並將黃金注入到流通領域。此時,cpu的時間和電力消耗就是消耗的資源。


挖礦原理 

工作量證明(proof-of-work,pow)

我們在區塊中補增一個隨機數(nonce),這個隨機數要使得該給定區塊的隨機雜湊值出現了所需的那麼多個0。


比特幣網路中任何一個節點,如果想生成一個新的區塊並寫入區塊鏈,必須解出比特幣網路出的工作量證明的迷題,俗稱比特幣挖礦。這道題關鍵的三個要素是工作量證明函式、區塊及難度值。


工作量證明函式(sha256())

雜湊函式(hash function),也稱為雜湊函式,給定一個輸入x,它會算出相應的輸出h(x)。
比特幣系統中使用的工作量證明函正是sha256。是由美國國家安全域性設計,到目前為止,還沒有出現對sha256演算法的有效攻擊。


難度值(difficulty)
比特幣的區塊大約每10分鐘生成一個,每2016個塊調整一次難度,調整公式:
新難度值 = 舊難度值 * ( 過去2016個區塊花費時長 / 20160 分鐘 )


目標值(target)

最大目標值:
0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
比特幣工作量證明的目標值的計算公式如下:
目標值 = 最大目標值 / 難度值


coinbase交易

每個區塊的第一筆交易叫做coinbase交易。coinbase交易是一筆特殊交易,因為它包含了挖礦獎勵。和普通交易不同,coinbase交易的輸入不包含utxo,而是輸入一個coinbase值,用於憑空創造比特幣。coinbase交易有一個輸出,向礦工的比特幣地址支付比特幣。


工作量證明的過程
可以把比特幣礦工解這道工作量證明迷題的步驟大致歸納如下:
1.生成coinbase交易,並與其他所有準備打包進區塊的交易組成交易列表,透過merkle tree演算法生成merkle root hash
2.把merkle root hash及其他相關欄位組裝成區塊頭,將區塊頭的80位元組資料(block header)作為工作量證明的輸入
3.不停的變更區塊頭中的隨機數即nonce的數值,並對每次變更後的的區塊頭做雙重sha256運算(即sha256(sha256(block_header))),將結果值與當前網路的目標值做對比,如果小於目標值,則解題成功,工作量證明完成。


pow計算公式如下:

即:sha256(sha256(block_header)) < target


注:
挖礦的本質
工作量證明方案解了一個比拜占庭將軍問題更難更挑戰的問題,就是在參與者集合未知的情況下,實現共識的一致性,支撐比特幣安全的去中心化的自發共識機制。比特幣只是對完成工作量證明節點的一種獎勵形式。


中本聰的主要發明就是這種去中心化的自發共識機制。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;