- 區塊鏈應用開發指南:業務場景剖析與實戰
- 熊麗兵 董一凡等
- 500字
- 2022-07-28 20:18:04
2.6.1 比特幣中的哈希處理
加密Hash是一種將大量數據轉換為難以模仿的短數據的方法。哈希主要與數字簽名結合使用。這些功能可確保數據完整性,比特幣網絡中的哈希用于四個過程:
- 編碼錢包地址
- 錢包之間的編碼交易
- 核實和驗證錢包的賬戶余額;和共識機制
- 工作證明
比特幣網絡使用SHA(安全哈希算法),例如SHA-256。哈希的一個重要特性是,如果改變一位輸入數據,輸出會發生顯著變化,這使得大文本文件中的小變化很容易被檢測到。從接下來的示例中可以看出,當我們只更改一個字母時,會生成完全不同的哈希。這基于所謂的“雪崩效應”,對于驗證數據完整性非常有用。“雪崩效應”描述數學函數的行為,即使輸入字符串中的輕微變化也會導致生成的hash值發生劇烈變化。這意味著在一個廣告中,只要有一個單詞,甚至一個逗號發生了改變,整個哈希就會改變。因此,文檔的哈希值可以作為文檔的加密等價物——數字fingerprint。這就是為什么單向hash函數是公鑰加密的核心。在為文檔生成數字簽名時,我們不再需要使用發件人的私鑰加密整個文檔,這可能會花費大量時間,所以很有必要改為計算文檔的哈希值。
“如何買比特幣?”相應的SHA-256句子看起來像這樣:
49c04bf3580376f81232d27c88de48255191f2486335dfd91a0856d216d66caa
如果我們只刪除一個符號,例如問號“?”,哈希看起來則像這樣:
0ffb7929ea94150e3aa93f06b81daedbaa501c671598236e63a1db32585b4640