默克爾樹(Merkle Tree)介紹



什麼是默克爾樹(Merkle Tree)

默克爾樹(Merkle Tree),又叫做哈希樹(Hash Tree),是一種在密碼學和電腦科學中典型的二叉樹結構。默克爾樹由一個根節點、一組中間節點和一組子節點組成。默克爾樹通過零知識證明的方法,讓任意一個節點都可以驗證一個數據庫的所有數據是否正確,同時又能在一定程度上保障數據的隱私。


默克爾樹的概念最早由 Merkle Ralf 在 1979 年提出,且被用於分布式文件系統和P2P系統中,來驗證數據的完整性和正確性。



默克爾樹的原理

1.哈希算法

哈希算法是一種允許將任意長度的數據輸出為固定長度的算法。它的優勢是單向加密,即沒有辦法把計算出來的值反推出原始的數據。比如通過哈希算法對數據A加密輸出為B後,無法從B反向推出數據A的值,起到了保護的作用。哈希算法的一個經典應用就是在比特幣中,通過私鑰可以生成比特幣的地址,但無法從比特幣的地址反向推出私鑰。當需要加密的數據發生改變時,加密輸出生成的數據也自然會改變。


2.構建默克爾樹

構建默克爾樹需要從底部開始。

首先,通過用戶在某一個時間點的唯一ID和資產數據創建一個「葉子」,隨後將這個葉子里的數據,通過哈希算法計算出一個哈希值,以此類推⋯⋯每一個用戶都擁有了一個獨一無二的哈希值(如Hash1、Hash2、Hash3…),也就有了第一層的樹枝。


將第一層的樹枝兩兩組合,將用戶1和用戶2的哈希值計算為一個新的哈希值Hash12,用戶3和用戶4的哈希值計算為一個新的哈希值Hash34,依次類推。這樣就生成第二層的樹枝。


這一過程重複進行,直到所有的哈希值被匯總到一個單一的頂層哈希值,也就是根哈希,此時,一棵從葉子到根的完整的默克爾樹就已經構成。在根節點和子節點的樹狀數據結構中,所有的數據處理流程層級化,所有的節點劃分層級。而在自下而上傳輸數據結果的過程中,需要前後節點的不斷驗證,驗證失敗則無法繼續下一步,保證了在數據計算過程中不會發生錯漏或誤差。



資產證明中的默克爾樹

由於默克爾樹數據的完整性和統一性等特性,默克爾樹開始被應用於加密貨幣交易所的資產證明中。用戶通過自己的UID和餘額信息生成屬於該時刻的哈希值,並通過系統來匹配默克爾樹中是否存在一致的數據,若存在,則證明當前平台的帳目為精準可靠的。




免責聲明

本文無意提供

(i)投資建議或投資推薦;

(ii)購買、出售或持有數位資產的邀約或招攬;

(iii)財務、會計、法律或稅務建議。 持有的數位資產(包括穩定幣和NFTs)涉及高風險,可能會大幅波動。 您應該根據您的財務狀況仔細考慮交易或持有數位資產是否適合您。 有關您的具體情況,請諮詢您的法律/稅務/投資專業人士。 請您自行負責瞭解和遵守當地的有關適用法律和法規。