Merkle-Tree

默克爾樹是如何順序傳播的,部分是否被定址?

  • January 5, 2014

下載 Merkle Tree 時,是否所有從根目錄開始的分支都是按順序下載的?

是否以這樣的方式對樹的各個部分進行編目,以便知道每個部分的位置?

簡而言之,一個人怎麼知道樹的哪一塊去哪裡?

Merkle 樹不包含在下載數據中。只有根雜湊包含在塊頭中。客戶端必須重建樹以驗證根雜湊。它通過檢查出現在塊數據中的交易列表來做到這一點。每個事務雜湊都是樹頂部的一個節點。因此,如果您有 6 個事務,則有 6 個節點(如果您有奇數個節點,則重複最後一個事務雜湊)。然後計算樹的下一層,其中每個節點是通過散列它上面的兩個節點來形成的(同樣,如果你有一個奇數,最後一個節點是重複的)。這個過程一直持續到你只有一個節點——根節點。它會根據標頭中的根進行檢查,以確保它匹配。如果是這樣,您就知道事務沒有被修改。

這是一個包含 6 個事務的範例(Tx1-Tx6)

Tx1    Tx2    Tx3    Tx4    Tx5    Tx6
   \   /        \    /        \   /
    L2A -      -  L2B          L2C -     - L2C (repeated)
         \    /                     \   /
           L3A  ---            ----  L3B
                   \          /
                        Root

引用自:https://bitcoin.stackexchange.com/questions/19890