大自然的啓示
Banyan樹的啓示:印度banyan樹,最大的一顆可以長到1萬平方米以上。其如此巨大的祕密就在於其枝幹也會產生根,起到支撐,從而作爲附屬樹幹,繼續生成分支。大自然給人太多啓示……
Merkle Tree
Merkle Tree,通常也被稱作Hash Tree,顧名思義,就是存儲hash值的一棵樹。Merkle樹是一種數據結構,Merkle樹的葉子是數據塊(例如,文件或者文件的集合)的hash值。非葉節點是其對應子節點串聯字符串的hash。
Merkle樹是使區塊鏈發揮作用的基本組成部分。雖然理論上可以在沒有Merkle樹的情況下製作區塊鏈,但只需創建直接包含每個事務的巨型塊頭,這樣做會帶來巨大的可擴展性挑戰,可以說無可置疑地使用區塊鏈的能力超出了所有範圍,從長遠來看,功能強大的電腦。感謝Merkle樹,可以構建在所有計算機和大小筆記本電腦上運行的以太網節點,智能手機,甚至是物聯網設備
比特幣中默克爾樹的構建過程:
1 | 第一筆hash: |
go語言實現上面的驗證過程
參考資料
[csdn 默克爾樹解釋]https://blog.csdn.net/wo541075754/article/details/54632929
https://github.com/ZtesoftCS/go-ethereum-code-analysis/blob/master/trie源碼分析.md
本文鏈接: https://dreamerjonson.com/2018/12/10/golang-41-blockchain-merkletree/
版權聲明: 本博客所有文章除特別聲明外,均採用 CC BY 4.0 CN協議 許可協議。轉載請註明出處!