哈嘍大家好,我是小K君。今天我們要講的內(nèi)容是:“區(qū)塊鏈中的密碼學(xué)(上)”。

我們之前講過,區(qū)塊鏈的四大核心技術(shù)分別是密碼學(xué)、分布式賬本、共識機制、以及智能合約。而密碼學(xué)又是其中最重要的一部分,因為密碼學(xué)保護區(qū)塊鏈體系的安全,它可以說是區(qū)塊鏈的基石,其它技術(shù)正是以此為基礎(chǔ),才搭建出區(qū)塊鏈這座高樓大廈。
區(qū)塊鏈主要應(yīng)用的密碼學(xué)有兩個部分,一個是哈希算法,另一個是非對稱加密。而這節(jié)課,小K君主要講一下,區(qū)塊鏈密碼學(xué)中的“哈希算法”是什么?

簡單來說,哈希算法就是一種特殊的函數(shù),不論我輸入多長的一串字符,只要通過這個函數(shù),都可以得到一個固定長度的輸出值。就好比我們的身份證號碼一樣,無論你是北京人、還是上海人,每個人的身份證號碼都是18位而且全國唯一。
同理,哈希實際也是一種壓縮映射,它可以把任意長度的輸入變換成固定長度的輸出。永遠都是固定256比特的長度。這個得到的輸出值就叫做哈希值。

哈希算法有三個特點,分別是單向性、抗篡改和抗碰撞,它們賦予了區(qū)塊鏈不可篡改、匿名等特性,并保障了整個區(qū)塊鏈體系的安全。
先說第一個特點,單向性。所謂的單向性,就是指在哈希函數(shù)中,由輸入可以得到輸出,但通過輸出卻幾乎不可能反推回輸入。比如,我們輸入已知字符串A,得到哈希值是F(A),但是我們通過這個哈希值F(A),卻沒有辦法反推回來得到我們輸入的數(shù)據(jù)。

區(qū)塊鏈在數(shù)據(jù)打包成區(qū)塊的過程中,數(shù)據(jù)都會通過哈希算法進行加工,正是基于哈希算法的單向性,區(qū)塊鏈才有效保護了我們信息的安全性。
哈希算法的第二個特點是抗篡改能力。所謂的抗篡改能力就是指,對于任意一個輸入,哪怕是很小的改動,比如一個標(biāo)點符號,其哈希值的變化也會非常大。

它的這個特性在區(qū)塊與區(qū)塊的連接中,就起到了關(guān)鍵性的作用。
區(qū)塊鏈的每一個區(qū)塊,都會以上一個區(qū)塊的哈希值作為標(biāo)識,通過哈希算法再進行加工,這樣后面區(qū)塊不僅可以查找到前面的所有區(qū)塊,也可以驗證前面區(qū)塊數(shù)據(jù)有沒有被更改,除非有人能破解整條鏈上的所有哈希值,否則,數(shù)據(jù)一旦記錄在鏈上,就不可能被篡改。
哈希算法的第三個特點是抗碰撞能力。所謂碰撞,就是輸入兩個不同的數(shù)據(jù),最后得到了一個相同的輸出結(jié)果,就跟我們逛街時候撞衫一樣。

而抗碰撞,就是對于大部分的輸入,都能得到一個獨一無二的輸出。注意,這里只能說出現(xiàn)碰撞的概率極低,但不意味著不存在碰撞,因為現(xiàn)存的任何一種哈希算法在概率學(xué)上都是無法證明不會發(fā)生碰撞的。
哈希算法的第三個特點主要應(yīng)用在區(qū)塊鏈的賬戶地址中,在區(qū)塊鏈的世界中,任何一筆交易或者賬戶的地址都是完全依托于哈希算法生成的,這樣做的目的就是保證交易或者賬戶地址在區(qū)塊鏈網(wǎng)絡(luò)中的唯一性,無論我這筆轉(zhuǎn)賬轉(zhuǎn)了多少錢或轉(zhuǎn)給了多少個人,在區(qū)塊鏈這個大賬本中都是唯一的存在。
總的來說,哈希算法在區(qū)塊鏈技術(shù)中是最基礎(chǔ)的存在,它就像是我們體內(nèi)的白細胞,不僅區(qū)塊鏈的每個部分都離不開它,而且它還賦予了區(qū)塊鏈種種特點,保護著整個區(qū)塊鏈體系的安全。

感謝熊越老師對本集內(nèi)容的幫助和指導(dǎo)。
系列科普動畫《OK區(qū)塊鏈60講》

《OK區(qū)塊鏈60講》是由OKEx&新浪科技聯(lián)合出品的區(qū)塊鏈科普動畫視頻,針對區(qū)塊鏈零基礎(chǔ)用戶,通過系列文章、科普動畫等形式,從概念、技術(shù)、應(yīng)用等角度,通過5大板塊,60個知識點,生動形象地科普區(qū)塊鏈概念。本集課程內(nèi)容由幣信合伙人熊越導(dǎo)師指導(dǎo)完成。