---
# System prepended metadata

title: Merkle Tree

---

# Merkle Tree
![](https://hackmd.io/_uploads/Hy24mr-2F.png)


驗證交易方式(Hash(ABCD)就是這個區塊的Merkle Root)
假設要確認Tx D是否存在這個區塊中，只需要下載Hash(C)、Hash(AB)、Hash(ABCD)三個值，驗證步驟如下：

1. 計算Tx D的哈希值Hash(D)
1. 計算Hash(D)與Hash(C)的哈希值Hash(CD)
1. 計算Hash(AB)與Hash(CD)的哈希值Hash(ABCD)
1. 確認我們計算出來的Hah(ABCD)跟區塊裡的Merkle Root或Hash(ABCD)有沒有一致，如果一致，則該筆交易的確存在這個區塊

優點:
假設這個區塊中有512筆交易(最下面交易node有512個點、再上一層有256個點、再上一層有128個點....)，那麼透過Merkle Tree，我們只需要取得Merkle Root跟另外8個Hash值便可以驗證該筆交易是否為真，但bitcoin實際上一個區塊平均會有3-500筆交易，因此透過Merkle Tree驗證交易，需要的資料大幅減少，且交易的大小也會大於Hash大小，因此可以節省更多空間。