雜湊值
區塊鏈網路是由多種加密技術建構而成,其中之一就是使用雜湊函數(Hash Function)。使用雜湊函數會針對輸入的值產生一個幾乎完全無關的數值。這個數值就稱之為雜湊值(Hash Value)。
雜湊函數的特徵:
- 相同輸入值就一定會產生相同的輸出值。
- 因為要從雜湊值(輸出值)反推輸入值相當困難,所以具備不可逆性值,因此也 稱為單向函數。
- 只要輸入值有所變化,雜湊值(輸出值)就會完全不同。
- 不論輸入值的長度長短,雜湊值(輸出值)都是相同長度。
- 「原則上」不會有不同輸入值卻產生相同輸出值的情形。(2017年在SHA-1雜 湊函數中曾經發生這樣的狀況)
SHA-256
雜湊函數有很多種類,SHA-256屬於「SHA-2」規格中的一種,是符合美國國家標準暨技術研究院所制定之聯邦資訊處理標準FIPS-184的雜湊函數家族。
SHA-256全名為「Secure Hash Algorithm 256-bit」,代表雜湊函數的輸出值為256bit (32Byte)。根據輸出值長度的不同,還有長度為224bit的SHA-224、長度為384bit的SHA-384等。
利用SHA-256分別將A、a、abcdefghijk雜湊化得到下列三圖。可以看到輸入值和輸出值完全無關,將大小寫a輸入將會得到完全不同的輸出值,而無論輸入值長短,輸出值一樣是固定長度(32 Byte)的雜湊值。雖然輸出了64個字元,但是因為是以16進位來呈現,所以長度是32Byte。



哇!又是一篇增加常識的好文,可見版主是相當認真的投入這方面的研究,謝謝版主的分享。
請問版主,既然雜湊函數會針對輸入的值產生幾乎無關的數值,那他在區塊鍊裡代表什麼樣的角色呢?
在區塊鏈裡,每個節點都會使用Hash function,來進行加密,以保證每筆交易的安全性,利用其輸入與輸出完全不同與其不可逆的特性,每一筆交易的產生,都會經過每個節點,每經過一次就加密一次,以實現區塊鏈交易的安全與不可串改性。