二、共識(shí)算法
1、工作量證明(Proof of? Work,PoW)
(1)概念:工作量證明算法是應(yīng)用SHA-256算法——因輸入不同而輸出不同的特性,不斷地計(jì)算區(qū)塊頭的SHA-256哈希值殊鞭,然后再不斷地修改Nonce值,直到這個(gè)哈希值遠(yuǎn)小于目標(biāo)難度值尼桶。
(2)過程:
比特幣PoW的過程操灿,可以簡單理解成就是將不同的nonce值作為輸入,嘗試進(jìn)行SHA256哈希運(yùn)算泵督,找出滿足給定數(shù)量前導(dǎo)0的哈希值的過程趾盐。而要求的前導(dǎo)0的個(gè)數(shù)越多,代表難度越大小腊。
①生成鑄幣交易谤碳,并與其他所有準(zhǔn)備打包進(jìn)區(qū)塊的交易組成交易列表,通過Merkle樹算法生成Merkle根哈希溢豆。
②把Merkle根哈希及其他相關(guān)字段組裝成區(qū)塊頭蜒简,將區(qū)塊頭的80字節(jié)數(shù)據(jù)作為工作量證明的輸入。
③不停地變更區(qū)塊頭中的隨機(jī)數(shù)漩仙,即nonce的數(shù)值搓茬,并對(duì)每次變更后的區(qū)塊頭做雙重SHA256運(yùn)算(即SHA256,將結(jié)果值與當(dāng)前網(wǎng)絡(luò)的目標(biāo)值做對(duì)比队他,如果小于目標(biāo)值卷仑,則解題成功,工作量證明完成)麸折。