前言:默克爾樹屬於二叉樹的一種,如果資料結構的基礎比較弱,沒關係,在閱讀文章的時候記錄下不懂的地方,然後有針對性的去搜尋學習。
本文會分三個部分來解釋和論證為什麼「默克爾樹」 能支撐位元幣的底層交易系統:
什麼是默克爾樹?
由乙個根節點,一組中間節點和一組葉子節點組成。根節點表示是最終的那個節點,且只有乙個。葉子節點可以有很多,但是不能再擴散也就是沒有子節點了。想象一棵樹,由樹根長出樹幹,樹幹上長出樹枝,樹枝長出葉子,好!收!葉子上不會再長出葉子。如果還是理解不了就看看下面這張圖:
**:這時候有的同學要喊了,老師!你剛交的「葉子節點不能再擴散了,但是圖中b0和data0是什麼關係」。這個問題很好,data0和是b0是對應的關係,也就是說b0的雜湊值對應的是data0這一條資料,唯一對應的。
現在重點來了,乙個簡單的默克爾樹就是像上圖中顯示的那樣,有以下三步:
這就是默克爾樹的執行原理,在圖中展現是:b0+b1 hash得出b4,b2+b3 hash得出b5,b4+b5 hash得出root根節點。由於每個節點上的內容都是雜湊值,所以也叫「雜湊樹」。
默克爾樹的特性:
敏感的同學馬上會思考「既然講默克爾樹,那麼它一定會有與眾不同的地方」,沒錯,它有三大特性:
在位元幣中的應用:
首先介紹乙個概念:默克爾路徑,上圖中root - > b4 - > b1 這就是一條路徑,表示從根節點到葉子節點所經過的節點組成的路徑。
位元幣中,默克爾樹被用作歸納乙個區塊中的所有交易,同時生成整個交易集合的數字簽名,且提供了一種校驗區塊是否存在某交易的高效途徑,就是默克爾路徑。生成默克爾樹需要遞迴地對各個子節點進行雜湊運算,將新生成的雜湊節點插入到默克爾樹中,直到只剩乙個雜湊節點,該節點就是默克爾樹的根節點。
假設乙個區塊中有16筆交易,根據上文提到的公式o(logn) 可以算出16的對數是4,也就是要找到這個區塊中的任意一筆交易,只需要4次就可以了,它的默克爾路徑會儲存4個雜湊值,可能同學們對這個高效率的查詢沒有感覺,我們來看乙個統計,刺激一下:
解釋一下,
總結:介紹了什麼是默克爾樹,以及它的三個特性和在位元幣中的應用。核心就是將大量資料進行雜湊運算後增加其分布式索引效能,通過維持乙個較小的高效索引(默克爾路徑)進而管理複雜的大量資料。
位元幣為什麼能風靡全球,原因在這
那麼什麼是位元幣呢?通俗來說,位元幣是一種建立在去中心化網路上 p2p網路 的數位化的虛擬貨幣。位元幣 bitcoin 的概念最初由中本聰在2009年提出,根據中本聰的思路設計發布的開源軟體以及建構其上的p2p網路。位元幣是一種p2p形式的數字貨幣。點對點的傳輸意味著乙個去中心化的支付系統。與大多數...
位元幣的礦工為什麼討厭開發組Core?
位元幣的礦工與開發組core因為擴容的事情一直不和,以至於在17年5月的紐約共識大會上,全球21個國家的56家區塊鏈初創公司和礦業集團共同將開發組core隔離在外,從而簽署了紐約共識。當然,這一共識沒有被開發組認同,所以才有了後來的硬分叉擴容出bch。那麼問題來了,為什麼位元幣的礦工與位元幣的開發人...
為什麼說位元幣是博弈論的傑作
在過去的十年裡,由於位元幣的日益普及,區塊鏈技術吸引了學術界和產業界的高度關注。一般來說,區塊鏈被認為是位元幣背後的技術。然而,位元幣區塊鏈不僅僅是技術。位元幣利用的三種主要技術 對等網路 非對稱加密技術和數字時間戳 已經存在多年。它們並不是位元幣與眾不同的原因。將位元幣僅僅定義為一種技術將是乙個錯...