回覆列表
  • 1 # AI進階之路

    首先說下概念:使用雜湊指標建立的有用的資料結構是二叉樹,而使用雜湊指標的二叉樹也叫作梅克爾樹(Merkle trees),是以其發明者拉爾夫·梅克爾(Ralph Merkle)的名字命名。如下圖所示,假設有很多包含資料的區塊,這些區塊就構成了樹的葉子(節點)。將這些資料區塊兩兩分組,然後為每一組建立一個有兩個雜湊指標的資料結構,每個指標對應一個區塊,這些資料結構就構成了樹的下一個層次。輪流將這些區塊組兩兩分組,為每一組建立一個包含每個區塊組雜湊指標的新的資料結構。以此類推,直到我們得到一個單一區塊,即樹根節點。

    在梅克爾樹的資料結構中,所有的資料區塊都被兩兩分組,指向這些資料區塊的指標被儲存在上一層的父節點(parent node)中,而這些父節點再次被兩兩分組,並且指向父節點的指標被儲存在上一層的父節點中,一直持續這個過程,直到最後到達樹的根節點。

    如上所述,只要記住樹最前面的雜湊指標。可以透過雜湊指標回溯到列表中的任何位置,這讓我們能保證資料確實未經篡改,如果有人篡改了樹底部的一些資料區塊,會導致上一層的雜湊指標不匹配,即使有人繼續篡改這個區塊,改動資料行為將最終傳遞到樹的頂端,而此時,他將不能篡改儲存的雜湊指標。因此,同樣地僅僅透過記住頂部的雜湊指標,任何企圖篡改任何資料的行為都會被檢測到。

    這樣,梅克爾樹就起到了保障區塊鏈資料不被篡改的作用。

  • 中秋節和大豐收的關聯?
  • 哪些道理是你玩戰爭遊戲想明白的?