加密哈希函數
什麼是加密哈希函數?
加密雜湊函數是一種演算法,即特定操作的可重複序列,可用於將可變長度的任意資料字串轉換為固定長度和格式之一,稱為雜湊。
雜湊函數最簡單的範例之一是將數字中的數字相加,直到留下一位數字的輸出。例如,如果輸入是 49,則將 4 和 9 相加得到 13,然後將其數字 1 和 3 再次相加,得到輸出 4。
然而,這不是一個好的演算法,因為為了很好地執行其功能,雜湊函數需要具備以下幾個特徵:
- 計算任何給定輸入的輸出應該很容易,但幾乎不可能反轉該過程併計算已知輸出的輸入;
- 確定性-將特定的輸入輸入到演算法中應該總是產生相同的輸出;
- 抗碰撞性-兩個不同的輸入不太可能產生相同的輸出;
- 雪崩效應-即使改變輸入中的單一資料位元也會導致截然不同的輸出。
雜湊函數應用於許多用例,例如,作為校驗和來驗證電腦檔案在長時間儲存傳輸後的完整性,或用於隨機化函數。
它們也是工作量證明加密貨幣挖礦的關鍵組成部分,例如使用 SHA-256 哈希函數的比特幣 (BTC)。為了在區塊鏈中添加新區塊並領取新開採的比特幣獎勵,礦工首先需要產生低於特定閾值(稱為目標)的哈希值。
事實上,哈希是偽隨機的,並且在透過哈希函數實際運行之前不可能預測任何輸入的輸出,這確保了礦工無法憑空列印新的比特幣,並且需要證明他們所執行的工作。