好處:通過這個hash指標,不僅可以找到這個結構體的位置,同時還可以檢測該結構體的內容是否被篡改。
1.區塊鏈
位元幣中乙個最基本的資料結構就是區塊鏈。
區塊鏈:乙個乙個區塊組成的鍊錶。
與普通鍊錶的區別:
用hash指標代替了普通的指標。(改變前面的任一區塊,都會影響到系統儲存的最後乙個區塊的hash值,從而可以檢測整個區塊鏈是否被篡改;有些結點就可以不必儲存所有區塊的資訊)
2.merkle tree
位元幣中的另乙個資料結構是merkle tree。
用hash指標代替了普通指標
只要記住root hash就可以檢測出對樹中任何部位的修改。
notes:
位元幣當中各個區塊之間用hash指標連線在一起,每個區塊所包含的交易組織成乙個merkle tree的形式。
每個塊分為兩部分,分為塊頭和塊身。這個區塊所包含的所有交易組成的merkle tree的root hash存在塊頭裡,但塊頭裡沒有交易的具體內容,塊身裡有交易列表。
提供merkle proof。
以下圖為例說明過程:
假設乙個輕結點想要知道黃色這個交易是否被包含在其merkle tree裡,這個輕結點向某個全結點發出請求,請求乙個能夠證明黃色這個交易被包含在merkle tree裡的merkle proof,全結點收到這個請求後,只需把標為紅色的三個hash值發給輕結點即可,有了這三個紅色的hash值,輕結點就可以在本地計算出綠色的hash值,最終可以算出root hash,與塊頭裡的root hash比較一下,就可以知道黃色交易是否包含在merkle tree裡。
(位元幣中的結點分為兩類:全結點:儲存整個區塊的內容;輕結點:只儲存塊頭)
區塊鏈技術與應用 學習筆記(一)
位元幣被稱為加密貨幣,但其實加密貨幣是不加密的。位元幣中主要用到了密碼學中的兩個功能 雜湊和簽名 1.雜湊 密碼學中用的雜湊函式被稱為cryptographic hash function 有兩個重要性質 人力很難找到y,使得h x h y 可以用來防篡改 雜湊函式的計算過程是單向不可逆的,即x h...
區塊鏈技術學習筆記
為了方便理解,先插個話題。做伺服器端開發的程式設計師,都對zookeeper不陌生,我們解決分布式acp問題時,尋找一致性解決方案時都會想到它。zookeeper實際使用了paxos的簡化版演算法 本文不展開,請參考我之前寫過的兩篇文章 paxos分布式一致性演算法 講述諸葛亮的反穿越 以及paxo...
區塊鏈技術學習筆記
本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...