民間常言:“說唱有嘻哈,算法有哈希?!痹诹私?u>比特幣投資和區(qū)塊鏈技術(shù)中,哈希算法作為“常客”時常出現(xiàn)。但大多數(shù)朋友對它知之甚少,為它晦澀難懂的內(nèi)涵所頭疼。那么今天我們就來簡單說說,什么是“哈希算法”?
哈希音譯自“Hash”,又名為“散列”。本質(zhì)上是一種計算機(jī)程序,可接收任意長度的信心輸入,然后通過哈希算法,創(chuàng)建小的數(shù)字“指紋”的方式。例如數(shù)字與字母的結(jié)合,輸出的就為“哈希值”。從數(shù)學(xué)術(shù)語上說,就是這個哈希函數(shù),是將任意長度的數(shù)據(jù),映射在有限長度的域上??傮w而言,哈希函數(shù)用于,將消息或數(shù)據(jù)壓縮,生成數(shù)據(jù)摘要,最終使數(shù)據(jù)量變小,并擁有固定格式。
那么哈希算法的作用又是什么呢?
(1) 在龐大的數(shù)據(jù)庫中,由于哈希值更為短小,被找到更為容易,因此,哈希使數(shù)據(jù)的存儲與查詢速度更快。
(2) 哈希能對信息進(jìn)行加密處理,使得數(shù)據(jù)傳播更為安全。
哈希算法解決了什么生活問題?
看似深奧的數(shù)學(xué)函數(shù),又或是計算機(jī)程序的哈希算法,其實(shí)跟我們的生活息息相關(guān)。就拿每年雙十一的快遞來說,實(shí)際上,哈希算法原理提高了快遞入庫出庫的速度。為什么呢?
雙十一一過,大家剁手后,一定收快遞收到手軟,手機(jī)短信抖個不停。這個時間段,雙十一快遞員可能沒時間挨家挨戶送上門,而是選擇往驛站一扔。當(dāng)驛站將快遞入庫后,你的手機(jī)會收到這樣一條信息——
【XX收快】您的XX快遞已到(原菜鳥驛站)65號店取貨嗎A10-8-9856,請9點(diǎn)至21點(diǎn)取貨,電話xxx-xxxxxxxx)
大家重點(diǎn)看看這個取貨碼:A10-8-9856。這可不是一堆亂碼。這串?dāng)?shù)值,就是驛站員能快速找到你快遞的關(guān)鍵。
A10指的是貨架編碼,8指的是第8層,9856指的是訂單后四位。因此每個驛站小哥只需要瞄一眼,就能瞬間知道你的快遞所在位了。
因此,哈希算法最核心的用處,就是高速存取。在區(qū)塊鏈技術(shù)中,它才真正大展身手。以下是它在區(qū)塊中的具體作用:
(1) 快速驗(yàn)證。只需要驗(yàn)證摘要,就能比較兩個數(shù)據(jù)是否相等。
(2) 防止篡改。只需要傳遞數(shù)據(jù)的摘要即可傳遞該數(shù)據(jù),并防止在傳遞過程中被篡改。
(3) 用于POW共識算法工作量證明。目前比特幣和以太坊,都使用POW共識機(jī)制。
哈希算法有千千萬萬種,其中,“安全哈希算法”(SHA 256)是保護(hù)數(shù)字信息,最安全的方式之一。它是由美國國安局設(shè)計、美國國家標(biāo)準(zhǔn)與技術(shù)研究院發(fā)布的一套哈希算法。其摘要長度是256bits,因此被稱為“SHA256”。它們都在網(wǎng)絡(luò)數(shù)據(jù)和區(qū)塊鏈技術(shù)應(yīng)用中,有著重大作用,也是理解區(qū)塊鏈的重要一環(huán)。