Merkle Tree

如果對區(qū)塊鏈有些基本的了解,那應(yīng)該經(jīng)常聽到一個詞叫merkle tree,那么merkle tree到底是做什么用的呢,這里來簡單的探討一下。

首先我們需要知道在區(qū)塊鏈網(wǎng)絡(luò)中有兩種類型的節(jié)點,一種節(jié)點叫full node,顧名思義,這種節(jié)點的特點就是它存儲著整個區(qū)塊鏈數(shù)據(jù)的完整備份,包括從區(qū)塊鏈創(chuàng)世之初到現(xiàn)在的所有交易,所以這些數(shù)據(jù)量是很龐大的,會占據(jù)驚人的磁盤空間。還有一種節(jié)點叫spv(simple payment node),有時候我們使用的是手機這類設(shè)備,存儲空間有限,那就只需要下載每個區(qū)塊的header信息(類似索引)就可以了,這樣就會大大節(jié)省存儲空間和帶寬。

這樣對spv節(jié)點就產(chǎn)生了一個問題,如果我發(fā)起了一筆交易,怎樣確認這筆交易已經(jīng)被包含在區(qū)塊鏈中了呢?(畢竟節(jié)點中沒有存儲所有的交易信息)

先不管merkle tree,有一個笨辦法,在區(qū)塊header中會存儲有一個hash值,這個hash值是這個區(qū)塊中所有交易的hash值的hash:hash in header = hash(交易1+交易2+交易3+......)。當我們想確認交易X是否存在于區(qū)塊M時,我們可以詢問附近的一個full node,這個full node是不可信任的,它可能會告知我們假信息,所以需要它把區(qū)塊M的所有交易的hash值都發(fā)給我們,然后我們來做比對,[hash in header of block M](這個值是存儲在我們本地區(qū)塊header中值得信賴的值)是否等于 hash(交易1+交易2+...+交易X+...),而這些交易的hash值是full node發(fā)給我們的。如果相等,表示交易X已經(jīng)被確認,否則表示這個節(jié)點給了我們假信息或者交易未被確認。

似乎很美好,但是這樣就又會產(chǎn)生一個問題,如果區(qū)塊M中包含了一千筆交易,為了確認一筆交易就需要傳輸這一千筆交易的信息,對速度帶寬等的消耗都是很大的。merkle tree就是為了解決這一個問題而產(chǎn)生的(學(xué)過算法的同學(xué)知道二叉樹的時間復(fù)雜度是logN)。

觀察下圖,就是一個典型的merkle tree:


Merkle Tree Example

L1,L2,L3,L4代表區(qū)塊中的所有的四筆交易,如果我們想確認L3是否被包含在區(qū)塊中,需要full node給我們哪些信息呢?觀察樹的結(jié)構(gòu)很容易知道,只需要給hash
1-1和hash 0就可以了,在spv本地block header中的hash值是top hash的值,這樣只需要傳輸2個hash值就可以了,這樣傳輸?shù)男畔⒘烤妥優(yōu)榱薼ogN。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 什么是merkle tree 假設(shè)你已經(jīng)知道了什么是哈希算法以及哈希是用來干啥的。 網(wǎng)絡(luò)傳輸數(shù)據(jù)的時候,A收到B的...
    Pony小馬閱讀 4,681評論 0 52
  • 其實有很多時候,看清一個人就在瞬間。 今晚情緒一度瀕臨崩潰,一個實驗安全知識競賽,本來可以全宿舍大家一起完成,一個...
    even_cc1e閱讀 328評論 1 0
  • 致同事 與她們走到一起, 習(xí)慣了相處, 然而剛剛熟悉, 還未來得及相識相知, 她們...
    四葉草_75c4閱讀 300評論 3 3
  • 小學(xué),我的成績還算過得去,馬馬虎虎,總歸和那些好生融不到一起。升初了,我的升學(xué)考分數(shù)史無前例的躍到班級第二。老師很...
    錢幣閱讀 244評論 0 1
  • 《可否這樣相愛》完整目錄 一簾幽思,濃抹茫茫。紅燭泣,情堪傷,醉依羅衾涼。夢覓寄客鄉(xiāng),何處枕黃梁。晨鐘悠,暮鼓揚,...
    晚成寄語閱讀 618評論 4 18

友情鏈接更多精彩內(nèi)容