時(shí)間:2023-07-09|瀏覽:254
我們知道,在比特幣網(wǎng)絡(luò)中,有很多挖礦節(jié)點(diǎn)和礦工參與創(chuàng)建比特幣新區(qū)塊。如果多個(gè)挖礦節(jié)點(diǎn)都創(chuàng)建了同一個(gè)高度的區(qū)塊,該判定誰(shuí)的區(qū)塊更合法呢?比特幣引入了PoW(ProofofWork)共識(shí)機(jī)制,通過(guò)挖礦的方式,來(lái)競(jìng)爭(zhēng)新區(qū)塊的記賬權(quán)。挖礦的目的就是贏取記賬權(quán),確認(rèn)新區(qū)塊和交易。
礦工破解挖礦任務(wù):挖礦節(jié)點(diǎn)創(chuàng)建好預(yù)備區(qū)塊后,將預(yù)備區(qū)塊的區(qū)塊頭數(shù)據(jù)發(fā)送給礦工。礦工收到挖礦任務(wù)后,會(huì)遞增區(qū)塊頭中的隨機(jī)數(shù),直到區(qū)塊頭的哈希值小于或者等于目標(biāo)哈希為止。如果發(fā)現(xiàn)其他節(jié)點(diǎn)已經(jīng)挖到新區(qū)塊,礦工就會(huì)放棄原來(lái)的挖礦任務(wù),構(gòu)造新的預(yù)備區(qū)塊,當(dāng)?shù)V工找到符合要求的隨機(jī)數(shù)后,會(huì)向挖礦節(jié)點(diǎn)上報(bào)挖礦結(jié)果。挖礦節(jié)點(diǎn)會(huì)接收并驗(yàn)證這個(gè)區(qū)塊是否合法,并將新區(qū)塊保存到節(jié)點(diǎn)本地?cái)?shù)據(jù)庫(kù),添加到節(jié)點(diǎn)本地區(qū)塊鏈上。
向全網(wǎng)廣播新區(qū)塊:挖礦節(jié)點(diǎn)將新區(qū)塊廣播給其他節(jié)點(diǎn)。其他節(jié)點(diǎn)在接收到新區(qū)塊后,先驗(yàn)證區(qū)塊頭信息,驗(yàn)證通過(guò)后,節(jié)點(diǎn)會(huì)在本地區(qū)塊索引庫(kù)中創(chuàng)建新區(qū)塊的索引。接收到全部信息后,節(jié)點(diǎn)驗(yàn)證交易信息和區(qū)塊頭的MerkleRoot哈希,驗(yàn)證通過(guò)后,節(jié)點(diǎn)將這些交易信息錄入新區(qū)塊,并延長(zhǎng)本地區(qū)塊鏈。至此,新區(qū)塊的廣播和驗(yàn)證完畢,挖礦節(jié)點(diǎn)開(kāi)始下一個(gè)區(qū)塊的挖礦工作。
挖礦特點(diǎn)集群挖礦-礦池:比特幣的挖礦難度很高,普通礦工單獨(dú)挖礦的經(jīng)濟(jì)效益太低。因此,大量礦工將自己的礦機(jī)接入礦池,從礦池的挖礦節(jié)點(diǎn)獲取挖礦任務(wù),集體挖礦。礦池根據(jù)礦工的貢獻(xiàn)情況,分配挖礦收益,礦工可以實(shí)時(shí)獲取挖礦收益。礦池給礦機(jī)下發(fā)的挖礦任務(wù)中,設(shè)定了一個(gè)初始挖礦難度,讓礦機(jī)能在較短時(shí)間內(nèi)找到符合要求的隨機(jī)數(shù)。
礦機(jī)實(shí)際收到的挖礦任務(wù)中,TargetHash遠(yuǎn)大于比特幣網(wǎng)絡(luò)要求的TargetHash:礦池給礦機(jī)下發(fā)的挖礦任務(wù)中,設(shè)定了一個(gè)遠(yuǎn)低于全網(wǎng)挖礦難