Bible Network Crypto DeFi Onchain RWA AI Agent Stablecoin Chain SAFU CryptoTax DeFAI AGI Claude Me Claude Skill Claude Design Claude Cowork
獨立知識媒體
與任何項目無關聯
最深入的加密貨幣知識庫
crypto-bible.com
最新
SpaceX 上市確認持有 18,712 枚比特幣:成本均價 $35,324,擠進企業持幣榜第八,實際規模遠超事前估計  ·  BlackRock BITA 第四次修訂 S-1:管理費 0.65% 削價對手、掩護性買權讓持有 BTC 也能領月配,7 月上線在即  ·  Solana 2026:DEX 交易量超越以太坊,TVL 卻只有十分之一——這個落差說明了什麼  ·  選加密交易所不能只看手續費:安全性、合規性、出入金的完整評估框架  ·  比特幣 vs 以太坊:同為加密龍頭,它們在最根本的設計問題上選了完全不同的答案  ·  以色列加密稅自願申報只有 58 人:一個失敗的政策實驗,揭示全球課稅困境
名詞解析 · blockchain-fundamentals

Merkle Tree

默克爾樹(Merkle Tree)
blockchain-fundamentals 進階

30 秒版 · 給沒耐心的人
默克爾樹(Merkle Tree,又譯梅克爾樹)是一種從密碼學雜湊函數衍生的樹狀數據結構,由電腦科學家 Ralph Merkle 在 1979 年提出。在區塊鏈中,它用來高效地匯總和驗證一個區塊內所有交易的完整性:每一筆交易被哈希,兩兩配對後再次哈希,逐層向上直到產生唯一的「根哈希(Merkle Root)」。這個根哈希被記錄在區塊頭(Block Header)中。任何一筆交易被篡改,其哈希值改變,連鎖帶動所有上層哈希改變,最終改變根哈希——讓竄改即時可被發現。
完整解說 +
01 · 這是什麼?

默克爾樹的計算步驟是什麼,為什麼它比「把所有交易哈希一次」更有效率?默克爾樹的計算過程可以用四筆交易(A、B、C、D)舉例說明。第一步,葉節點(Leaf Nodes):對每一筆交易分別計算哈希值,得到 Hash(A)、Hash(B)、Hash(C)、Hash(D)。第二步,中間節點:把相鄰的兩個哈希值配對並再次哈希,得到 Hash(AB) = Hash(Hash(A) + Hash(B))、Hash(CD) = Hash(Hash(C) + Hash(D))。第三步,根節點(Merkle Root):對最後一層的所有哈希值重複這個過程,直到只剩下一個哈希值,即默克爾根。為什麼比直接哈希所有交易更有效率:若你想驗證「交易 A 確實在這個區塊裡」,不需要知道所有其他交易的內容——你只需要 Hash(B)(與 Hash(A) 配對)和 Hash(CD)(和 Hash(AB) 配對),加上根哈希,就可以在三步以內驗證。即使一個區塊有 1,000 筆交易,驗證任何一筆也只需要約 10 個哈希值(log₂ 1000),而不是下載全部 1,000 筆的完整數據。

02 · 為什麼存在?

默克爾樹在比特幣和以太坊中各有哪些具體應用,兩者有什麼差別?在比特幣中:每個區塊的區塊頭包含一個「交易默克爾根」(Transaction Merkle Root),匯總了區塊內所有交易的完整性指紋。比特幣的輕節點(SPV 節點,Simplified Payment Verification)只需下載區塊頭(每個區塊約 80 字節)而不是完整的區塊(可能幾 MB),配合默克爾樹的「默克爾路徑(Merkle Proof)」驗證特定交易是否在鏈上——大幅降低了驗證的資源要求。在以太坊中:以太坊的結構更複雜,使用了三棵默克爾樹的變種——Merkle Patricia Trie(MPT):交易樹(Transaction Trie)、收據樹(Receipts Trie)和狀態樹(State Trie)。狀態樹最重要,它記錄了以太坊上每個地址的當前狀態(餘額、合約代碼、存儲數據),讓任何人可以在不重放整個歷史的情況下驗證當前的全局狀態。應用場景的延伸:Proof of Reserves(交易所儲備金證明)廣泛使用默克爾樹——交易所把所有用戶的帳戶餘額放進默克爾樹,讓用戶可以驗證自己的餘額被包含在總儲備金中,而不需要看到其他用戶的餘額(隱私保護)。

03 · 如何影響你的決策?

什麼是默克爾路徑(Merkle Proof),它是怎麼讓輕節點在不下載整個區塊的情況下驗證交易的?默克爾路徑(Merkle Proof,又稱默克爾包含證明)是一個讓你用最少的數據證明「某一筆交易確實存在於某個區塊中」的密碼學工具。以一個有 4 筆交易(A、B、C、D)的區塊為例,想驗證「交易 A 是否在這個區塊裡」的步驟:你持有 Hash(A) 和根哈希(Merkle Root)。你的節點向全節點請求「默克爾路徑」,全節點返回:Hash(B)(與 Hash(A) 配對需要的同伴)和 Hash(CD)(Hash(AB) 向上計算需要的同伴)。你用 Hash(A) 和 Hash(B) 計算 Hash(AB),再用 Hash(AB) 和 Hash(CD) 計算你自己的「重建根哈希」,若等於已知的 Merkle Root,則交易 A 確實在這個區塊裡。整個過程你只需要 2 個哈希值(而非下載整個區塊的所有交易),計算量極小。對於有 1000 萬筆交易的區塊,默克爾路徑的長度也只是 log₂(1000萬) ≈ 23 個哈希值。

04 · 你該怎麼辦?

為什麼默克爾樹在 ZK Rollup 和 Proof of Reserves 中都那麼重要?在 ZK Rollup 中:ZK Rollup 的有效性證明(Validity Proof),本質上是一個關於「一批交易執行正確性」的數學聲明。這個聲明的構建需要一個可驗證的「交易集合摘要」——這就是通過默克爾樹(具體是 Merkle Patricia Trie 或類似的結構)實現的。ZK Rollup 的 L1 合約在驗證有效性證明時,同時驗證「這些交易的狀態根(State Root)是正確的」,而狀態根正是默克爾樹的根哈希。在 Proof of Reserves 中:FTX 倒閉後,業界開始廣泛使用默克爾樹來做交易所的「儲備金透明度證明」——每個用戶的帳戶餘額作為葉節點,所有用戶的餘額默克爾根被公開,且任何用戶可以請求一個「默克爾包含證明」,在不透露其他用戶隱私的情況下,驗證自己的帳戶確實被包含在交易所公告的總儲備金中。兩個應用的共同點:默克爾樹讓「在不洩露完整數據的情況下驗證部分內容」成為可能,是隱私和可驗證性之間的橋梁。

實際例子 +

用比特幣的輕節點(SPV 錢包)說明默克爾樹在實際使用中的意義。你使用一個手機上的比特幣輕節點錢包(如某些比特幣錢包 App)。這個錢包不下載完整的比特幣區塊鏈(超過 600 GB 的數據),而只下載所有的區塊頭——每個區塊頭約 80 字節,整個比特幣歷史的區塊頭總共只有約 60 MB。當你想確認「某一筆交易(例如你收到的一筆轉帳)是否已被確認」時,你的輕節點錢包向網路中的全節點請求這筆交易的默克爾路徑。全節點返回約 30-40 個哈希值(即使比特幣的一個區塊有幾千筆交易,默克爾路徑的長度也只是 log₂(几千) ≈ 12-13 個哈希值)。你的手機用這些哈希值本地計算,驗證根哈希是否和你已知的區塊頭一致——若一致,這筆交易確實在那個區塊裡。整個過程只用了幾 KB 的數據和幾毫秒的計算,而不是下載幾百 GB 的完整區塊鏈。這就是默克爾樹讓「在資源受限的設備上也能可信地驗證比特幣交易」成為可能的核心機制。

圖解
Merkle Tree: Transaction Hashing Structure默克爾樹結構圖以樹狀圖形式呈現哈希計算過程:最底層(葉節點)為四筆交易(Transaction A、B、C、D,綠色方塊);第二層為兩個父節點(藍色方塊),分別是 Hash(A) 和 Hash(B) 合并後的 Hash(AB),以及 Hash(C) 和 Hash(D) 合并後的 Hash(CD);頂層(深藍色方塊)為默Merkle Tree: Transaction Hashing StructureRoot HashMerkle Root: AB12...XYHash(AB): 3d8f...2aHash(CD): 9f1b...7eHash(Tx A)Hash(Tx B)Hash(Tx C)Hash(Tx D)Transaction ATransaction BTransaction CTransaction DChange any single transaction → its hash changes → parent hash changes → Root changes. Tamper-evident.Crypto Bible · crypto-bible.com
歡迎截圖分享,轉載請註明來源
常見誤解 +
✕ 誤解1
× 誤解一:默克爾樹讓區塊鏈完全不可能被篡改。不完全對。默克爾樹讓「特定區塊內的交易被改動後立刻可被發現」(因為根哈希會改變),但它並不是讓整個區塊鏈不可篡改的唯一機制——還需要配合工作量證明(PoW)或權益證明(PoS)共識機制,讓修改歷史的成本極高。具體而言:若有人想修改比特幣歷史上的一筆交易,不只需要重新計算那個區塊的默克爾根,還需要重新計算那個區塊的 PoW(耗費大量算力),且那之後所有區塊都需要重新計算——這讓篡改的成本在數學和現實層面都極高,但不是「完全不可能」。
✕ 誤解2
× 誤解二:默克爾樹是區塊鏈獨有的發明。不對。Ralph Merkle 在 1979 年提出默克爾樹,比中本聰的比特幣白皮書(2008 年)早了將近 30 年。默克爾樹原本是一個通用的密碼學數據結構,廣泛應用在數字簽名、憑證撤銷(如 X.509 憑證)、版本控制系統(如 Git 的提交哈希)等領域,區塊鏈只是它眾多應用場景之一。
這件事跟你有什麼關係 +
直接影響

默克爾樹最核心的取捨,在「驗證效率」和「更新開銷」之間。讀取效率(驗證某筆交易是否存在)極高——無論樹中有多少數據,驗證都只需 log n 個哈希值。但寫入/更新的開銷並非為零:修改任何一個葉節點的數據,需要重新計算從該節點到根節點的整條路徑上的所有哈希值——修改深度為 k 的葉節點,需要重新計算 k 個父節點的哈希。這對比特幣的靜態區塊(一旦區塊被確認,裡面的交易就不再改變)來說不是問題;但以太坊的「狀態樹」需要頻繁更新(每一筆交易都可能修改某些帳戶的狀態),這讓以太坊採用了更複雜的 Merkle Patricia Trie(結合了 Merkle 樹和 Patricia Trie 的特性),在讀取效率和更新開銷之間取得更好的平衡。

提問
請至少輸入 10 個字