Merkle-Tree
默克爾樹是如何順序傳播的,部分是否被定址?
下載 Merkle Tree 時,是否所有從根目錄開始的分支都是按順序下載的?
是否以這樣的方式對樹的各個部分進行編目,以便知道每個部分的位置?
簡而言之,一個人怎麼知道樹的哪一塊去哪裡?
Merkle 樹不包含在下載數據中。只有根雜湊包含在塊頭中。客戶端必須重建樹以驗證根雜湊。它通過檢查出現在塊數據中的交易列表來做到這一點。每個事務雜湊都是樹頂部的一個節點。因此,如果您有 6 個事務,則有 6 個節點(如果您有奇數個節點,則重複最後一個事務雜湊)。然後計算樹的下一層,其中每個節點是通過散列它上面的兩個節點來形成的(同樣,如果你有一個奇數,最後一個節點是重複的)。這個過程一直持續到你只有一個節點——根節點。它會根據標頭中的根進行檢查,以確保它匹配。如果是這樣,您就知道事務沒有被修改。
這是一個包含 6 個事務的範例(Tx1-Tx6)
Tx1 Tx2 Tx3 Tx4 Tx5 Tx6 \ / \ / \ / L2A - - L2B L2C - - L2C (repeated) \ / \ / L3A --- ---- L3B \ / Root