位元幣中的資料結構
看這一小節的時候Merkle Tree沒有太看懂,要回去再看看!以及老師在課上提出的兩個問題
這一講講解位元幣中用到的資料結構
hash pointers(哈希指標)
1. 區塊鏈
區塊鏈相當于一個鏈表,與傳統的鏈表不同的是,區塊鏈的指標是對前一個塊的整體取hash算出來的,如果改變了區塊鏈中某一個結點的值,后面所有的hash都對不上了,所以這是tamper-evident log(多米諾骨牌)
所以說只保存最后一個結點的hash,然后判斷這個hash是否修改,就可以判斷前面的鏈是否被修改了,
也就是比如可以只保存最近3個區塊,如果我需要更早的區塊(比如倒數第4個),我算一下這塊的hash值跟我保存的倒數第三塊能不能接的上,
2. Merkle tree(默克爾樹,可信樹)
比較像B+樹,非葉子結點不存值,只有葉子結點存的是區塊,上面的只起一個索引的作用,
只要檢測根結點的hash值是否變化,就可以檢測樹中任何地方的修改,跟上面的區塊鏈一樣,前面的修改了,后面的就會改變,
默克爾樹就是下面發生了修改,上面就會改變,也是牽一發而動全身,
輕結點內只有一個hash header,也就是只有默克爾樹的根結點的hash值,proof of membership如何向這個輕結點證明,我有一個交易是否存在于你的輕結點?(26min)
- 首先,我要給你一個merkle proof
(這玩意是什么啊,給出來的長什么樣子?)- 然后用Hash往上推,就可以用O(logn)的時間復雜度進行判斷
proof of non-membership向這個結點證明,某個交易不存在這個merkle樹中,
只要是無環的就可以表示,如果是有環的資料結構還用哈希指標的話就成回圈依賴了,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/305516.html
標籤:區塊鏈
上一篇:橙子錢包app是誰做的?
