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





