默克爾根係點樣建立嘅?
先取得區塊內每筆交易嘅 ID。每個 ID 本身都係雙重 SHA-256 雜湊值。按順序排列,Coinbase 交易放最前。將相鄰嘅雜湊值兩兩配對,再為每對計算雜湊值。咁樣雜湊值數量就會減半。重複以上步驟,直到只剩一個雜湊值。呢個就係默克爾根。
如果某一層有奇數個雜湊值,最後一個就會同自己配對。只要改動任何一筆交易,即使只改一聰,佢通往頂層路徑上嘅每個雜湊值都會改變,當中亦包括默克爾根。可以試下上面嘅示範。
點解要用樹狀結構,而唔係一個大型雜湊值?
證明。要證明某筆交易喺區塊入面,只需要佢所在分支上嘅雜湊值,唔使成個區塊。一個有大約 4,000 筆交易嘅區塊,只需要其中 12 個雜湊值,總共幾百 bytes。Satoshi 嘅白皮書提到,輕型錢包可以用呢個方法核實付款,只保留區塊標頭。
呢點對挖礦亦好重要。礦工更改 Coinbase 交易入面嘅額外 nonce 時,默克爾根就會改變,區塊標頭亦會有一組新 nonce 可以嘗試。
來源
- 比特幣:點對點電子現金系統 · Satoshi Nakamoto,2008
- 區塊鏈參考資料:區塊標頭、Merkle 樹、目標 · 比特幣開發者文件
- 默克爾樹 · Bitcoin Wiki
本頁嘅即時數據來自 CloudMineCrypto API 同公開鏈上數據,並會定期更新,亦會喺數據旁標示。內容只供教育用途,並非財務建議。