加密貨幣的兩個密碼學基礎:哈希函數和數字簽名,今天介紹我對于哈希函數和哈希指針以及數據結構的理解和記錄理解哈希函數過程中的疑問以待日后解決。
哈希函數的特性
碰撞阻力
任何哈希函數在理論上都是碰撞的,但是由于實踐中對于一個哈希函數無法找到碰撞,就默認為其具有碰撞阻力,無法找到的原因是:①測試碰撞計算量要求太高,②無法確認識別碰撞的有效方法;
碰撞阻力的應用:信息摘要,其保證了文件的唯一性;
隱秘性
H(r ll x)= y
取至一個具備高階最小熵的分別中的值 r 與輸入值 x 進行連接構成新的輸入值 r ll x,這樣就是取至任意分布的 x 具有了隱秘性,也就是無法通過輸出值y計算出輸出值x;
隱秘性的應用是承諾,一個承諾協議如果成立需要兩個安全特性:隱秘性和約束性,對于約束性和碰撞阻力我的理解是:兩則是子母集關系,如圖:
謎題友好
H(id ll x)∈Y
謎題友好中id與Y共同決定了解決上述數學問題的難度,因為id和Y的范圍都可認為控制,這樣就可控制挖礦的難度。
哈希指針
哈希指針具有兩個特征:告訴使用者存儲的位置和告訴位置數據的哈希值
問題集結:
?1,約束性隱含在哈希函數的碰撞阻力特性中,但是結論反之不成立,就是說我們可以找到碰撞,但是都不是滿足H(nonce ll msg)= = H(nonce’ ll msg’)意義下的碰撞,例如,你可以對于同一個信息來產生滿足同一個承諾的隨機數,但這里的哈希函數不具備碰撞阻力特性。
?2,安全哈希算法中的SHA-256哈希函數簡化圖中的MD變換的解釋能夠看懂,但是簡化圖不理解什么意思
?3,在講到區塊鏈的結構的時候提到:區塊鏈的結構與我們上節見到的MD變換類似,這個很不理解。
以上是學習:區塊鏈 技術驅動金融 數字貨幣與智能合約技術 這個本書第一張第一小節和第二小節的總結,如果發現有任何理解錯誤之處歡迎交流。