5行python程式碼講清楚如何在區塊鏈挖礦

李博Garvin發表於2018-03-28

之前發了好幾篇講區塊鏈的,還有同學說不懂,今天我就試試用最少的話講明白挖礦,背景知識可以參考下我之前發的內容。

  • 先說下雜湊是啥,雜湊就是每個東西的唯一標識,比如x的雜湊:hash(x)=ga8e9hea7h8ae89h78aeh9r
  • 區塊鏈就是一個一個區塊,每個區塊是一個雜湊
  • 挖礦就是已知上一個區塊鏈的雜湊值,找到與其匹配的下一個雜湊值,這個匹配關係可以自己定義,比如上一個區塊鏈的值和下一個區塊鏈的值的乘積的雜湊最後一位是0

ok,我們來看下程式碼,假設有一個區塊它的值是5,那麼它的雜湊值就是hash(5),我們定義一個規則:假設5的下一個區塊鏈的值為y,那麼y必須滿足hash(5*y)的最後一位是0,就定義y是5的下一個區塊鏈。要做的事情就是遍歷全部數值,知道找到符合條件的y,假設在比特幣的區塊鏈上,一旦找到y,就會有好幾個比特幣的獎勵。

程式碼在此python2.7環境:

from hashlib import sha256

x = 5

y = 0  

while sha256(str(x*y)).hexdigest()[-1] != "0":

    y += 1

print('The solution is y = '+str(y))

結果是y從0開始試,迴圈到21的時候滿足條件,也就是在這個規則下5的下一個區塊鏈就是21。

相關文章