1.什么是PoW
PoW,全稱Proof of Work,即工作量證明,又稱挖礦,礦工利用挖礦設備做一定難度的計算得出一個哈希數,而驗證方能比較輕易地驗證這個結果是否是正確,而最先算出這個哈希數的礦工將獲得該區塊的記賬權,並可以獲得一定數量的手續費,即礦工費。因此PoW挖礦即不斷打包計算出新的區塊Block,進而延續生成Block Chain的過程。驗證的過程就好比因數分解,有一個數是由多個值相乘所得,給出這個值,讓計算出這個值是哪幾個數相乘所得,CPU就要進行相應的計算核對,找出相應的計算方式的過程有一定難度,而核對就簡單的多了。當然,pow的計算過程要比因數分解的難度要大的多。
2.怎樣才算挖礦成功
當某個節點提供出一個合理的Block Hash值,驗證方能簡單證明該節點確實經過了大量的嘗試計算。一個符合要求的Block Hash由N個前導零構成,零的個數取決於網絡的難度值。Block Hash值的計算是使用“blockchain”,在字符串后面加上nonce的整數值串。nonce是隨機數,不停地更換嘗試,才能計算得到N個0開頭的hash值。在“blockchain”+nonce進行SHA256哈希運算,如果得到哈希結果(以十六進制表示)是以若干個0開頭,則驗證通過,即可獲得一定量的礦工費,即挖礦成功。0 的個數越多,計算難度越大,也就是挖礦的難度越大。尋找nonce(隨機數)的過程就是PoW中的難題,找到了nonce解題完畢,可以向全網提交信息了!而這個過程就是挖礦。每次創建區塊,都要去驗證。新創建一個對象,專門處理挖礦驗證。創建新的工作量證明,設置難度值原理:如果隨機生成的Hash(二進制)小於難度值則挖礦成功。
3.算力與挖礦關系
算力即指挖礦設備每秒可以計算哈希函數的次數。在PoW中,區塊鏈的記賬權與節點的算力成正比,即算力越強,挖到礦的概率就越大。隨着礦工人數的增加,挖礦的難度也越來越大。以比特幣為例,在中本聰創下第一個創世區塊並獲得五十個比特幣的獎勵時,挖礦的人數比較少,一台電腦的CPU算力占全網的算力(全網算力即指一個數字貨幣鏈中所有挖礦設備算力總和)的比率比較大,僅僅用一台電腦挖到礦的概率就比較大。后來挖礦的人數越來越大,全網算力也不斷增加,以大約十分鍾打包一個區塊的速度,只有提高打包區塊的難度系數(nonce)。為了提高挖礦的收益,因此后續出現的礦機,礦池,礦場,而礦工收益也根據礦工的貢獻值來分配,最大程度上保證了挖礦收益。
4.PoW的優缺點
優點:1.完全去中心化,節點自由進出;
2.就比特幣而言,全網算力較強,保證安全性。
缺點:1.目前bitcoin已經吸引全球大部分的算力,其它再用PoW共識機制的區塊鏈應用很難獲得相同的算力來保障自身的安全;
2.挖礦造成大量的資源浪費;共識達成的周期較長,不適合商業應用