詞彙表 · 網絡

Merkle root

由 CloudMineCrypto 團隊撰寫更新於

定義

默克爾根係一個雜湊值,概括 Bitcoin 區塊內嘅所有交易。建立方法係將交易兩兩配對並計算雜湊值,再將所得嘅雜湊值兩兩配對,直至只剩一個。佢會儲存在區塊標頭入面。

屬於 Bitcoin 挖礦術語表,用淺白英文解釋 88 個術語。

建立 Merkle 根

區塊標頭內嘅 Merkle root

17b1344a79d1

雜湊 0+1

de80192c

雜湊 2+3

b87d4f25

交易 0

94e5fe9e

交易 1

c752a4cd

交易 2

934d1415

交易 3

3f172c5d

撳任何一筆交易嘅「編輯」。該筆交易嘅雜湊、配對雜湊同 Merkle root 都會改變。

喺瀏覽器運行嘅真實 double SHA-256,為方便顯示而縮短。真實區塊會雜湊交易資料,而唔係句子。

默克爾根係點樣建立嘅?

先取得區塊內每筆交易嘅 ID。每個 ID 本身都係雙重 SHA-256 雜湊值。按順序排列,Coinbase 交易放最前。將相鄰嘅雜湊值兩兩配對,再為每對計算雜湊值。咁樣雜湊值數量就會減半。重複以上步驟,直到只剩一個雜湊值。呢個就係默克爾根。

如果某一層有奇數個雜湊值,最後一個就會同自己配對。只要改動任何一筆交易,即使只改一聰,佢通往頂層路徑上嘅每個雜湊值都會改變,當中亦包括默克爾根。可以試下上面嘅示範。

點解要用樹狀結構,而唔係一個大型雜湊值?

證明。要證明某筆交易喺區塊入面,只需要佢所在分支上嘅雜湊值,唔使成個區塊。一個有大約 4,000 筆交易嘅區塊,只需要其中 12 個雜湊值,總共幾百 bytes。Satoshi 嘅白皮書提到,輕型錢包可以用呢個方法核實付款,只保留區塊標頭。

呢點對挖礦亦好重要。礦工更改 Coinbase 交易入面嘅額外 nonce 時,默克爾根就會改變,區塊標頭亦會有一組新 nonce 可以嘗試。

來源

  1. 比特幣:點對點電子現金系統 · Satoshi Nakamoto,2008
  2. 區塊鏈參考資料:區塊標頭、Merkle 樹、目標 · 比特幣開發者文件
  3. 默克爾樹 · Bitcoin Wiki

本頁嘅即時數據來自 CloudMineCrypto API 同公開鏈上數據,並會定期更新,亦會喺數據旁標示。內容只供教育用途,並非財務建議。

而家睇吓挖礦點樣運作。

Claim a free 8-hour mining plan in the CloudMineCrypto app and watch your estimated BTC tick up from live network data. Withdraw to your own wallet, Lightning included. Rewards are estimates.