學院專業術語詳情
Hash(哈希)
什麼是雜湊?
雜湊是由稱為雜湊函數的數學函數生成的獨特字母和數字字串。它就像任何數據的數字指紋——無論是密碼、文件還是區塊鏈交易。例如,使用SHA-256演算法對" 區塊鏈 "一詞進行雜湊處理會產生一個固定長度的字串,如12a8f...71b3(為清晰起見而縮短)。即使更改一個字母(例如,"blockchain"),也會產生完全不同的雜湊值。
雜湊對於驗證數據完整性和保護密碼學、區塊鏈和軟件開發中的系統至關重要。
它是如何運作的?
雜湊包括三個核心步驟:
- 輸入: 任何數據(文本、數字、文件)被輸入到雜湊函數中。
- 處理: 該函數使用複雜的數學運算對數據進行混淆,創建獨特的輸出。
- 輸出: 無論輸入大小如何,都會生成固定長度的雜湊值。
雜湊的關鍵特性:
- 單向過程: 你無法從雜湊值反向推導出原始數據。
- 速度: 函數快速處理輸入(例如,SHA-256只需微秒級時間)。
- 雪崩效應: 輸入的微小變化(例如,添加一個句點)會創建完全不同的雜湊值。
現實世界的例子:
比特幣礦工競相尋找以多個零(例如,0000000000...)開頭的雜湊值,方法是調整區塊中的隨機數(nonce)。第一個解決這個難題的礦工將獲得比特幣獎勵。這個過程被稱為工作量證明,用於保護網絡安全。
雜湊函數解釋
雜湊函數專門設計用於創建有助於驗證數據完整性的雜湊值。區塊鏈中此類函數的要求包括:
- 確定性: 這意味著相同的輸入將始終產生相同的輸出。除非輸入數據發生變化,否則雜湊結果不應有任何變化。
- 快速計算: 雜湊函數必須能夠快速返回輸入數據的雜湊值,這提高了處理速度。
- 原像抵抗性: 在計算上應該不可能逆轉該函數,這意味著你不應該能夠從雜湊值重建輸入數據。
- 輸入的微小變化會大幅改變雜湊值: 即使是輸入的微小修改也應導致完全不同的雜湊輸出,這被稱為雪崩效應。
- 抗碰撞性: 兩個不同的輸入不應產生相同的雜湊輸出。
加密貨幣中常見的雜湊函數:
- SHA-256: 被比特幣和傳統系統(例如,TLS/SSL證書)使用。
- Keccak-256: 以太坊選擇用於智能合約和錢包地址。
- Scrypt: 由萊特幣設計,旨在阻止ASIC礦機主導。
實際用例:
當你發送加密貨幣時,你的交易詳情會被雜湊並添加到區塊中。每個區塊都引用前一個區塊的雜湊值,創建一個不可破壞的鏈條。如果有人更改過去的交易,所有後續的雜湊值都會改變,立即提醒網絡有篡改行為。