書名: 區塊鏈浪潮:連接技術與應用作者名: 賈英昊 江澤武等編著本章字數: 376字更新時間: 2019-09-16 15:06:45
5.2 用途一:交易信息的壓縮和驗證
由于區塊鏈要處理的交易信息內容龐大,將每個塊內的所有數據直接以序列的方式存儲將會非常低效且耗時,但是利用哈希函數可以對信息進行壓縮和驗證。在 Merkle樹(一種二叉樹結構,可理解為存儲數據的一種拓撲結構)結構中,結合哈希函數技術,可以快速驗證某筆交易是否屬于某個區塊(圖5-1)。對于打包到一個區塊的所有交易,首先將它們劃分為交易信息1、交易信息2等部分,并計算出對應的哈希值1、哈希值2,之后兩兩結合進行哈希運算,最終得到這個Merkle樹的根哈希值。如果某一筆交易信息記錄的數據有變化,那么最終算出來的Merkle根哈希值也會不一樣。

圖5-1 比特幣中的Merkle樹
那么為什么要使用這樣的算法,而不是直接將所有的交易信息串成一個大塊并且算出它的哈希值呢?原因在于這樣的二叉樹結構可以允許僅僅進行少量數據的驗證,同時如果交易的數據信息有誤,也可以快速定位至出錯的位置。