需要了解區(qū)塊鏈的共識機(jī)制與驗(yàn)證機(jī)制有什么區(qū)別
共識機(jī)制
完全去中心化的區(qū)塊鏈系統(tǒng)中,如何保證各節(jié)點(diǎn)維持區(qū)塊鏈數(shù)據(jù)的一致性和不可篡改性,是一個(gè)關(guān)鍵問題。區(qū)塊鏈系統(tǒng)中的區(qū)塊鏈技術(shù)采用了基于PoW的共識機(jī)制,通過在區(qū)塊計(jì)算中加入算力競爭,使分布式的節(jié)點(diǎn)可以高效地達(dá)成共識。
具體做法是在區(qū)塊計(jì)算的最后一步要求解一個(gè)隨機(jī)數(shù),使區(qū)塊的哈希函數(shù)值小于或等于某一目標(biāo)哈希值,由于哈希運(yùn)算結(jié)果的隨機(jī)性和不可逆性,找到隨機(jī)數(shù)的難度會(huì)很大。通常目標(biāo)哈希值由多個(gè)前導(dǎo)零的數(shù)串構(gòu)成。設(shè)定的前導(dǎo)零越多,目標(biāo)哈希值設(shè)定得越小,找到符合條件隨機(jī)數(shù)的難度就越大。區(qū)塊鏈系統(tǒng)通過調(diào)整目標(biāo)哈希值,通常將區(qū)塊的生成時(shí)間動(dòng)態(tài)地控制在10分鐘左右。
驗(yàn)證機(jī)制
數(shù)據(jù)驗(yàn)證是區(qū)塊鏈技術(shù)極為重要的一環(huán)。所有的區(qū)塊鏈網(wǎng)絡(luò)中的參與者都要隨時(shí)監(jiān)聽新的交易與新的區(qū)塊。一旦接收到新的交易或者新的區(qū)塊均需首先驗(yàn)證它們的正確性,如果正確后再向自己的臨近節(jié)點(diǎn)進(jìn)行傳播。如果接收到的新交易無效,則需立即拋棄,不再將它們轉(zhuǎn)給臨近節(jié)點(diǎn),以免浪費(fèi)計(jì)算資源。對于新交易的驗(yàn)證,根據(jù)基于區(qū)塊鏈應(yīng)用事先達(dá)成的各種驗(yàn)證協(xié)議來進(jìn)行,比如交易的格式、交易的數(shù)據(jù)結(jié)構(gòu)、格式的語法結(jié)構(gòu)、輸入輸出、數(shù)字簽名的正確性等。
所有的新交易數(shù)據(jù)一旦驗(yàn)證通過后,節(jié)點(diǎn)會(huì)將這些交易數(shù)據(jù)放在一個(gè)交易池中。當(dāng)節(jié)點(diǎn)確認(rèn)了上一個(gè)區(qū)塊以后,節(jié)點(diǎn)將按一定優(yōu)先級次序從交易池中選出交易計(jì)算Merkle根。節(jié)點(diǎn)通過自己強(qiáng)大的算力(工作量證明)找到符合難度目標(biāo)的隨機(jī)數(shù)后,并在第一時(shí)間將新挖出的區(qū)塊廣播給其他節(jié)點(diǎn),以便其他節(jié)點(diǎn)確認(rèn)該區(qū)塊,并將獲得驗(yàn)證的新區(qū)塊加入到原有的區(qū)塊鏈中。





