昨天我們聊了「區塊鏈是什麼」,知道區塊會存放交易、並透過 hash 串接成不可篡改的鏈。
但問題來了:一個區塊裡可能有上千筆交易,節點要怎麼快速驗證資料正確?
答案就是今天的主角 —— Merkle Tree(梅克爾樹)。
⸻
核心重點
1. 區塊鏈用 Merkle Tree 把一堆交易的 hash 壓縮成一個「Merkle Root」。
2. 節點只要比對這個 root,就能確定所有交易沒有被竄改。
3. 這讓區塊能處理大量交易,還支援「部分驗證」(輕量節點可驗證單筆交易)。
⸻
重點解說
什麼是 Merkle Tree?
• 想像有很多交易 tx1, tx2, tx3, tx4 ...。
• 每筆交易先做一次 hash。
• 再把兩兩交易的 hash 組合起來,再次做 hash。
• 重複這個「配對 + hash」的過程,直到只剩下一個最上層的值 —— Merkle Root。
為什麼要用它?
• 完整性驗證:只要 Merkle Root 沒變,就能確保底下交易沒被動過。
• 高效驗證:不用看全部交易,只要沿著「Merkle 路徑」就能驗證單筆交易是否存在。
• 支援輕量節點(SPV):手機錢包就用這種方式,只下載區塊頭 + Merkle 路徑即可驗證,不必存全鏈。
今天學到 Merkle Tree 的設計,原來它就是一種「把很多交易壓縮驗證」的方法。這個概念很優雅,既能保證完整性,也讓輕量節點能快速驗證交易存在與否。這讓我想到生活裡的「簽名章鏈條」:每一層都是上層的保障。理解了這個機制,能更清楚地看到區塊鏈為何既去中心化又能保持一致性。