區塊鏈學習筆記(四) Merkle樹

2021-08-21 08:35:05 字數 1159 閱讀 5378

一、字典樹

字典樹的三個基本特徵:

1、根節點不包含字元,為空,除根節點外每乙個節點只包含乙個字元

2、從根節點到某乙個節點,路徑上經過的字元連線起來,就是該節點對應的字串

3、每個節點包含的所有子節點的字元都不相同

優勢:相比較於雜湊表,使用字典樹在查詢共有字首key的資料時十分高效,當字首為空時,字典樹和雜湊表都需要遍歷整棵樹,此時效率相同。並且,字典樹不存在雜湊表的雜湊衝突問題。

缺點:直接查詢的效率低,字典樹查詢效率為o(m),m為查詢節點的key長度,雜湊表查詢效率為o(1)。

當沒有相同字首的分支時,儲存key內容很長的字串會十分浪費空間。

下面是乙個and、as、at、cn、com構造的字典樹的例子

二、patricia樹

是一種更加節省空間的字典樹,對於每乙個節點,如果該節點只有乙個子節點,將當前節點和子節點融合,例子如下

三、merkle樹

位元幣使用的交易儲存結構。也稱為hash樹,其葉子結點是資料塊(檔案/檔案集合)的hash值,非葉子結點是其對應子節點串聯字串的hash值。

merkle樹可以看成是hash list的泛化。不同點在於,merkle樹將相鄰的兩個hash合併成乙個字串,然後運算生成乙個新的hash,從下至上,直到生成乙個root hash,如果hash的總數的單數無法配對,那麼最後乙個單數hash值可以直接進行hash運算或者複製自身組成字串在進行hash運算。

優點:當樹的節點內容發生變化時,可以快速的對被修改節點進行hash重計算,從而生成乙個新的根雜湊來代表整棵樹的狀態

在位元幣中,輕節點只需要儲存區塊頭資料,即根雜湊的值,而不需要儲存整個交易列表,使得區塊鏈可以執行在pc和手機等終端上。

缺點:儲存整個資料的空間開銷很大。

區塊鏈資料結構之Merkle樹

merkle樹是一種雜湊二叉樹,它是一種用作快速歸納和校驗大規模資料完整性的資料結構。這種二叉樹包含加密雜湊 值。術語 樹 在計算機學科中常被用來描述一種具有分支的資料結構,但是樹常常被倒置顯示,根 在圖的上部同時 葉 子 在圖的下部。來一張圖直觀體驗下 其中ha 是資料塊a的hash,hp資料塊p...

區塊鏈學習筆記

關於區塊鏈的概念早在2012年就聽說過了,但是當時並未引起重視,當下雖然很流行,但是仍無法看到應用在何方,粗略了解,先學習一點咯,只做一些筆記用來學習下吧 先過概念 區塊鏈是 分布式資料儲存 點對點傳輸 共識機制 加密演算法等計算機技術的新型應用模式。所謂 共識機制是區塊鏈系統中實現不同節點之間建立...

區塊鏈讀書筆記四

區塊鏈對大規模協作產生的影響 對區塊鏈未來的前景的興奮點在於,極高的生產力會將這個星球上所有的人和機器都連入乙個全新的網路,也許到了21世紀下半夜,資本主義走向沒落,區塊鏈去中心化協同共享將取而代之,每個人都有自己的個性資產以及榮譽。區塊鏈作為新興協同的共享模式的最佳技術手段,將培養和鼓勵個人參與到...