【學習筆記】merkle樹及設置意義

Merkle樹(默克爾樹)


默克爾樹是一類基于哈希值的二叉樹或多叉樹,其葉子節(jié)點上的值通常為數(shù)據(jù)塊的哈希值,而非葉子節(jié)點上的值,是將該節(jié)點的所有子節(jié)點的組合結果的哈希值。


圖片發(fā)自簡書App



默克爾樹一般用來進行完整性驗證處理,在處理完整性驗證的應用場景中,默克爾樹會大大減少數(shù)據(jù)的傳輸量及計算的復雜度。

通常,要確定一個數(shù)據(jù)塊是默克爾樹中的一員,只需要樹根及這個區(qū)塊和通向樹根沿途的中間哈希值,可以暫時忽略樹的其他部分,這些就已經(jīng)足以讓我們驗證了。

由此可見,哈希加密算法的驗證相比于正向求解要容易

1. 默克爾樹的意義:(節(jié)約硬盤空間,每個節(jié)點都可以存儲交易,每個節(jié)點都有權驗證交易)

為了同時確保不損害區(qū)塊的hash,交易被hash為一棵Merkle Tree,這個Merkel Tree只有root節(jié)點被包含進了這個區(qū)塊的hash。老的區(qū)塊能夠被壓縮通過將這個樹的分支進行拔除(stubbing off branches of thetree)。而內(nèi)部的hash是不必被保存的。個人并不需要這個區(qū)塊,只需要這個區(qū)塊的hash(索引)就可以,有ipfs,公共節(jié)點,高信任度節(jié)點幫忙存儲。

一個剔除交易的區(qū)塊頭大概會是80byte大小。如果我們假設區(qū)塊每10分鐘就生成一個,那么80bytes * 6 * 25 * 365 = 4.2MB 每年。2008 年PC系統(tǒng)通常的內(nèi)存容量為2GB,按照摩爾定理預言的每年增長1.2GB的大小,即使將全部的區(qū)塊頭存儲在內(nèi)存之中都不是問題。

2. 這里會有一個取舍,存儲空間與安全,假設因為默克爾數(shù),保留的節(jié)點(交易)太少,就可能造成安全問題,一個攻擊者擁有超過全網(wǎng)的算力的成本是相對較低的,當然這主要針對小區(qū)塊鏈系統(tǒng)。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容

  • 轉載于:風之舞555 Merkle Tree學習 /最近在看Ethereum,其中一個重要的概念是Merkle T...
    Venture_Mark閱讀 516評論 0 0
  • 一、快速術語檢索 比特幣地址:(例如:1DSrfJdB2AnWaFNgSbv3MZC2m74996JafV)由一串...
    不如假如閱讀 16,066評論 4 87
  • Merkle Tree概念 Merkle Tree,通常也被稱作Hash Tree,顧名思義,就是存儲hash值的...
    dtdh閱讀 1,054評論 2 3
  • 一、前言 這里先說一下使用vue-cli之前的事情。 由于剛剛接觸Vue不久,就接到了一個移動端項目,于是打算使用...
    wingsico閱讀 2,523評論 3 11
  • 雨言 文/春兒 是什么?觸碰了你的心 碎成點滴 隨秋一起沉淀 積攢半夏的熱度 儲存,等涼 暖...
    幸福依然春兒閱讀 111評論 2 1