區(qū)塊間的連接正是通過,下一個(gè)區(qū)塊將上一個(gè)區(qū)塊的“區(qū)塊頭”的哈希值寫入自己的區(qū)塊中(一個(gè)區(qū)塊由記錄著區(qū)塊基礎(chǔ)信息的“區(qū)塊頭”以及記錄著所有具體交易信息的“區(qū)塊體”構(gòu)成),即將上一個(gè)區(qū)塊頭的“頭哈希”值填入新區(qū)塊的“父哈希”字段中,區(qū)塊與區(qū)塊之間通過“父哈希”建立起對(duì)應(yīng)的連接關(guān)系,進(jìn)而組成一條完整的區(qū)塊鏈。這就意味著,第一,我們可以通過索引當(dāng)前區(qū)塊的“父哈希”一直追溯到第一個(gè)創(chuàng)世區(qū)塊;第二,如果有人妄圖篡改其中一個(gè)區(qū)塊上任意一個(gè)數(shù)據(jù),則會(huì)引起一連串區(qū)塊哈希值的變化,其篡改行為則會(huì)立即被識(shí)別。
另外,每一個(gè)區(qū)塊上記錄的所有交易信息都保存在一個(gè)運(yùn)用哈希算法的二叉樹數(shù)據(jù)結(jié)構(gòu)中(Merkle樹)——將1到n筆交易數(shù)據(jù)看作是這個(gè)數(shù)據(jù)樹上最外層的n個(gè)葉子(末端節(jié)點(diǎn)), 然后將末端節(jié)點(diǎn)兩兩分組計(jì)算哈希值,一組組哈希值形成新的一層節(jié)點(diǎn)數(shù)量更少的數(shù)據(jù)層,以此類推,直到我們得到一個(gè)單一的樹根節(jié)點(diǎn),而只要記住“根哈希”,則任何企圖篡改交易數(shù)據(jù)的行為都會(huì)被檢測(cè)到。
僅把“根哈希”記錄在區(qū)塊的“區(qū)塊頭”部分,大大降低對(duì)“區(qū)塊頭”數(shù)據(jù)儲(chǔ)存的要求,比特幣區(qū)塊鏈上的每個(gè)節(jié)點(diǎn)得以儲(chǔ)存整個(gè)區(qū)塊鏈上完整的區(qū)塊頭數(shù)據(jù),實(shí)現(xiàn)了區(qū)塊鏈賬本在每個(gè)節(jié)點(diǎn)處的備份。并且,Merkle樹數(shù)據(jù)結(jié)構(gòu)下,通過驗(yàn)證一筆交易通往根哈希的路徑即可簡(jiǎn)潔快速的證明此筆交易是否存在在這個(gè)區(qū)塊上。
這就實(shí)現(xiàn)了交易記錄的可追溯和不可篡改!
附上一張區(qū)塊鏈結(jié)構(gòu)示意圖,可以直觀了解下~
補(bǔ)充說明一下,其實(shí)在區(qū)塊鏈技術(shù)之前,人們也曾試圖在互聯(lián)網(wǎng)上點(diǎn)對(duì)點(diǎn)傳輸數(shù)字貨幣(本質(zhì)上是數(shù)字信息)來實(shí)現(xiàn)無中介的價(jià)值轉(zhuǎn)移,但受限于數(shù)字信息的可復(fù)制性以及無法解決重復(fù)支付問題,很難真正實(shí)現(xiàn)。而比特幣區(qū)塊鏈系統(tǒng)中,最偉大的創(chuàng)新是,貨幣擁有者不再需要通過證明自己所持有數(shù)字貨幣的唯一有效性來爭(zhēng)取所有權(quán),而是取決于所有權(quán)轉(zhuǎn)移的過程被區(qū)塊鏈網(wǎng)絡(luò)上的其他節(jié)點(diǎn)們所認(rèn)可——即你所擁有的比特幣數(shù)量實(shí)際上是在那條最多的節(jié)點(diǎn)認(rèn)可的長(zhǎng)期共識(shí)的區(qū)塊鏈上,你可以有效支出的比特幣的數(shù)量。