墨克樹(Merkle Tree)
墨克樹又稱哈希樹(hash tree)、雜湊樹木,雜湊樹的概念由瑞夫·墨克(Ralph Charles Merkle)於 1979 年申請專利,故亦稱墨克樹(Merkle tree)。墨克樹為二元雜湊樹(Binary Hash Tree) 的一種資料結構,由一個根節點、一組中間節點和一組葉節點組成,但是這些樹通常是顛倒顯示的,根在頂部,葉子在底部,在下面的圖片中可以看到。
我們先回到區塊鏈到結構上來,區塊鏈是由一個又一個區塊合成的鏈,新產生的區塊會接在鏈的最尾端,而此區塊和上一個區塊也就是父區塊之間會有鏈將兩者連接,不斷往前回推到曾曾曾祖父區塊會回到最初的區塊-創世區塊(genesis)。
這就像是樹一樣由最初的樹根(Root)不斷生長出樹幹及無數樹枝、樹葉一樣,墨克樹的結構就是利用不斷遞回的方式,將二元樹的樹葉配對節點進行二次雜湊化(double-SHA256),直到雜湊值變成一個,最後留下的雜湊值便形成墨克根(Markle Root),並記錄在區塊內。 我們用下圖解釋墨克樹的生成的話,可以看到圖片左下角的D0雜湊化後會有一個雜湊值N0,之後又會連結相鄰樹葉的節點雜湊值N1進行雜湊化,得到雜湊值N4,在反覆進行這個步驟後會匯聚成一個單一節點,也就是最上方的雜湊值Root(Hash(N4+N5)),也就是所謂的墨克根。

為什需要用墨克樹?
在加密貨幣中,通常在一個區塊中有幾百到幾千個交易,這些交易的彙總方式完全相同,為了要檢驗特定的交易是在哪個區塊發生的,我們可以利用墨克樹簡潔並有效的檢驗大量資料的特性來解決問題。
為什麼墨克樹對於區塊鏈是必不可少的?
讓我們以比特幣為例,因為它對墨克樹的使用對加密貨幣至關重要,而且更容易掌握。
如果比特幣不包含墨克樹,那麼網路上的每個節點都必須保留每一筆比特幣交易的完整副本。你可以想像有多少信息。比特幣的任何身份驗證請求都需要通過網路傳輸大量數據:因此,您需要自己驗證數據。
為了確認沒有修改,一台用於驗證的計算機將需要大量的計算能力來比較分類賬。
墨克樹是這個問題的解決方案。它們在會計中散列記錄,從而將數據證明與數據本身分開。
證明在網路上提供少量的信息是有效交易所需要的全部。
此外,它使您能夠證明這兩個分類賬的變化在名義計算機能力和網路帶寬方面是相同的。
Merkle Tree在區塊鏈的好處
墨克樹提供了四個顯著的優勢
驗證數據的完整性:可以使用它有效地驗證數據的完整性。
佔用磁盤空間小:與其他數據結構相比,Merkle樹佔用的磁盤空間非常小。
跨網路的微信息驗證:Merkle樹可以分解成小塊的數據進行驗證。
高效驗證:數據格式是高效的,驗證數據的完整性只需要幾分鐘。
結論
Merkle Tree是區塊鏈技術的重要基礎,使其能夠在IT世界中成長。 RookiesTool的區塊鏈學習筆記是為那些想要破解圍繞區塊鏈、比特幣、加密貨幣和許多其他技術(如Merkle Tree)的全球熱潮的開發人員設計的。您將學習比特幣、以太坊、超賬本、狗幣和多鏈區塊鏈平台及其底層技術的核心結構和技術機制。
閱讀更多:【虛擬貨幣觀察筆記】千禧世代!前途無限的加密市場!