程 瑤,高麗芬,胡全貴
(1.中國礦業大學(北京),北京 100000;2.北京國網信通埃森哲信息技術有限公司,北京 100000)
POW是區塊鏈主流共識算法:工作量證明POW、權益POS、股份授權證明DPOS中一種,是由算力決定區塊的記賬權歸屬那個節點所有,那個節點先算出哈希函數的下一個隨機數數值,得到收益,即俗稱的“挖礦”。
例如以下的區塊鏈中一個區塊的基本結構:

以上區塊信息中“Nonce”就是這個隨機數,各個節點通過算力計算出下一個區塊的Nonce,即擁有該區塊記賬打包的權利,并獲得Block Reward。
POW采用SHA256對區塊頭做雙重運算,而SHA256是單向函數,所以結果很難計算出來。節點在挖礦過程中,當隨機生成的Hash值小于難度值則挖礦成功,例如以下節點挖礦的函數:

在以上函數中,當hashInt小于Block里面的target,則跳出循環,輸出計算得出的nonce數值,即挖礦成功,得到挖礦的收益。
區塊作為區塊鏈存儲結構中的數據元素,收尾相接促成單向鏈式存儲結構,第一個元素為創始區塊,包塊共識機制的設置,出塊時間,礦工收益等初始參數設置。例如以下為一個區塊的創始區塊:


注釋:coinbaseTx 新建一鑄幣交易對象。
采用SHA256對區塊頭做雙重運算,當節點計算出的隨機數小于小于設置的難度值時,則挖礦成功。