密碼學系列 - 默克爾路徑

默克爾樹 (merkle tree)

默克爾樹,也稱爲哈希二叉樹,是一種用於有效地彙總和驗證大型數據集完整性的數據結構。

在這裏插入圖片描述

默克爾路徑

可用於證明在一個很大字節數的區塊中上千筆交易中的具體某一筆交易的存在.

爲了證明一個塊中包含了一個特定的交易,一個節點只要計算log2(N)32字節的哈希值,形成一條從特定交易到樹根的認證路徑或者默克爾路徑。

在這裏插入圖片描述

該路徑有4個哈希值 HL、HIJ、HMNOP和HABCDEFGH組成,通過這4個哈希值產生的認證路徑,任何節點都可以通過計算另外四對哈希值HKL、HIJKL、HIJKLMNOP和默克爾樹根,來證明HK包含在默克爾根中。

默克爾路徑的效率

爲了證明區塊中存在某交易而所需轉化爲默克爾路徑的數據量。

在這裏插入圖片描述

簡單支付驗證(SPV)

有了默克爾樹,一個節點能夠僅下載區塊頭(80字節/區塊),然後通過從一個全節點回溯一條小的默克爾路徑就能認證一筆交易的存在,而不需要存儲或者傳輸大量區塊鏈中大多數的內容,那些也許有幾個GB的大小。這種不需要維護一條完整的區塊鏈的節點,被稱作簡單支付驗證(SPV)節點,它通過默克爾路徑去驗證交易的存在,而不需要下載整個區塊。

一個SPV節點對它錢包中某個比特幣地址即將收到的付款感興趣。該節點會在節點間的通信鏈接上建立起bloom過濾器,限制只接受含有目標比特幣地址的交易。當節點探測到某交易符合bloom過濾器要求,它將以merkleblock消息的形式發送該區塊。merkleblock消息包含區塊頭以及將感興趣的交易鏈接到區塊中的根的默克爾路徑

SPV節點同時也使用區塊頭去關聯區塊和區塊鏈中的其餘區塊。這兩種關聯(交易與區塊、區塊和區塊鏈)可以證明交易存在於區塊鏈。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章