區(qū)塊鏈怎么保證資金安全?密碼學(xué)告訴你

引言:密碼學(xué)是區(qū)塊鏈技術(shù)的核心

我們從專業(yè)的技術(shù)知識(shí)角度來理解區(qū)塊鏈的定義,應(yīng)當(dāng)是:區(qū)塊鏈?zhǔn)且环N按照時(shí)間順序?qū)?shù)據(jù)進(jìn)行分布式存儲(chǔ)的塊鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu),它利用共識(shí)機(jī)制進(jìn)行數(shù)據(jù)驗(yàn)證,利用密碼學(xué)進(jìn)行數(shù)據(jù)保護(hù)和用戶安全訪問,利用智能合約來操作數(shù)據(jù),從而成為不可篡改和不可偽造的分布式賬本。所以,分布式存儲(chǔ)、共識(shí)機(jī)制、密碼學(xué)原理和智能合約構(gòu)成區(qū)塊鏈的核心技術(shù)內(nèi)容。

提到密碼學(xué),我們并不感到陌生,比如許多戰(zhàn)爭(zhēng)電影中,很多人戴著耳機(jī)圍繞著機(jī)器根據(jù)“嘀嘀嘀”的聲音截獲密文,再進(jìn)行解密獲得軍事情報(bào),這就是密碼學(xué)的早期應(yīng)用。在 1970 年之前,密碼學(xué)還基本是由國家權(quán)力機(jī)構(gòu)壟斷,而后隨著技術(shù)不斷進(jìn)步,才漸漸進(jìn)入公眾領(lǐng)域。

目前密碼學(xué)作為區(qū)塊鏈的核心內(nèi)容之一,在區(qū)塊鏈網(wǎng)絡(luò)的安全交易、隱私保護(hù)還有安全訪問中起到不可忽視的作用,是支撐區(qū)塊鏈不可缺少的核心技術(shù)。所以今天,我們就用通俗易懂的語言跟大家介紹一下“區(qū)塊鏈中的密碼學(xué)”。

區(qū)塊鏈密碼學(xué)發(fā)展史

首先,要從它的發(fā)展史說起,這就不得不提到凱撒大帝(Caesar)—— 第一個(gè)把“替換密碼”用于軍事用途、并且記錄下來的人。他用替換字母的方法創(chuàng)造了最早的“密文”:將每個(gè)字母,用字母表中這個(gè)字母之后三位的字母替代。這是一種替換加密的技術(shù),明文中的所有字母都在字母表上向后(或向前)按照一個(gè)固定數(shù)目進(jìn)行偏移后被替換成密文。

在這個(gè)過程中,人人都認(rèn)識(shí)的文本是“明文”,加密的規(guī)則是“密鑰”,通過密鑰,原本大家都認(rèn)識(shí)的明文就變成了看不懂的“密文”。這種加密方法用我們現(xiàn)在的眼光看會(huì)稍顯幼稚,但在當(dāng)時(shí),用這種方法形成的“密文”非常難以被破譯,而這種用明文加密的思路也被沿用了上千年。

隨著科學(xué)進(jìn)步,這種代換方法慢慢被人找到了破解方法,比如:學(xué)習(xí)過英語的我們知道,e是最常見的字母,其次是字母t和a,如果按照凱撒密碼加密,一個(gè)密碼字母對(duì)應(yīng)明碼字母,那么密碼字母中出現(xiàn)次數(shù)最多的很有可能就應(yīng)該對(duì)應(yīng)明碼字母E,以此類推,很容易就可以排除掉大量的密鑰,從而快速地找到正確的破譯方法。

于是在1467年左右,佛羅倫薩的建筑師 Alberti 發(fā)明了多表代換密碼,也就是在一個(gè)多表替換密碼的密文中,會(huì)使用多個(gè)字母作為密碼。多字母替換密碼比單字母更難破解,因?yàn)槠涮鎿Q可能性多。以此為開端,衍生出了非常多設(shè)計(jì)精良的多表代換密碼。而直到二十世紀(jì)二十年代,人們才終于可以開始使用各種機(jī)械加密設(shè)備進(jìn)行自動(dòng)加密處理。

計(jì)算機(jī)的誕生幫助密碼學(xué)躍升至新高度。1984 年 10 月香農(nóng)(信息論之父)的信息論出現(xiàn),標(biāo)志著現(xiàn)代密碼學(xué)的形成,這時(shí)出現(xiàn)了極具代表性的“對(duì)稱加密算法”,即:當(dāng)傳遞信息時(shí),信息先要通過密鑰進(jìn)行加密,加密后的明文以二進(jìn)制的方式轉(zhuǎn)播,再通過相同的密鑰解密獲得信息。

值得一提的是:

“對(duì)稱加密”,密鑰只有一把,如果你想讓一個(gè)人看到你用密鑰加密的信息,就必須把密鑰傳遞給對(duì)方,對(duì)方才能進(jìn)行解密。但這種加密的方式有一個(gè)問題,一旦密鑰在傳輸過程被黑客截取,那么自己加密的信息則會(huì)面臨被破譯的風(fēng)險(xiǎn),所以密鑰的保存與安全傳輸就成了關(guān)鍵問題。

直到1876年,“非對(duì)稱加密”現(xiàn)世后,人們才攻克這一難關(guān),同時(shí)也標(biāo)志著公鑰密碼學(xué)的成型。它相較之前的“對(duì)稱加密”,最大的區(qū)別就是:“非對(duì)稱加密”的加密和解密過程分別使用了“公鑰”和“私鑰”,密鑰不再只有一個(gè),而是以一對(duì)的方式出現(xiàn)。

1976 年,Whitfield Diffie 和 Martin Hellman 提出“公鑰密碼”這一概念,希望能實(shí)現(xiàn)在不直接傳遞密鑰的情況下就能完成密文的解密,1978 年,隨著 RSA 公鑰密碼機(jī)制的完善,開啟了“非對(duì)稱加密算法”的時(shí)代。

由簡(jiǎn)單到復(fù)雜,由實(shí)體到數(shù)字化,密碼學(xué)成為了信息安全的保衛(wèi)者,在以不可篡改、不可偽造著稱的區(qū)塊鏈?zhǔn)澜缰?,它發(fā)揮著巨大的作用。

區(qū)塊鏈中的密碼學(xué)

介紹完區(qū)塊鏈密碼學(xué)的“前世今生”,我們具體看看,在區(qū)塊鏈的整個(gè)體系中密碼學(xué)原理所起到的作用,在這里我們主要介紹哈希算法和非對(duì)稱加密技術(shù)。

1、哈希算法

哈希算法又稱為哈希函數(shù),是一個(gè)密碼學(xué)工具,可以用在數(shù)字簽名中,還可以用于證明密碼安全體制、作為安全組件設(shè)計(jì)多種密碼體制和安全通信協(xié)議。作為比特幣和區(qū)塊鏈的核心技術(shù)。簡(jiǎn)單來說啊,它跟我們中學(xué)時(shí)期學(xué)到的函數(shù)是相同性質(zhì)的東西,只要代入一個(gè) x,就能得出一個(gè) y,只不過它的計(jì)算特別復(fù)雜而已。代入一個(gè)數(shù)據(jù)后生成的加密結(jié)果被稱為這一數(shù)據(jù)的哈希值,它可以被看作是這個(gè)消息的指紋,是世上獨(dú)一無二的表示。

相比較一般的函數(shù)而言,哈希函數(shù)有兩個(gè)特別厲害的地方:

1)對(duì)于普通的函數(shù),我們平時(shí)代入的 x 只限于數(shù)字,得出的 y 數(shù)據(jù)也長短不一。而對(duì)于哈希函數(shù),不管你代入什么,比如:數(shù)字、英文字母、漢字或者幾者組合等等,并且不管這個(gè)數(shù)據(jù)長度如何,都只能被生成一個(gè)固定長度的加密結(jié)果(常見為 256 位);

2)在我們課本中學(xué)到的函數(shù)往往既可以通過 x 解答出 y 的值,也可以通過 y 解答出 x 的值,可是對(duì)于哈希函數(shù),代入 x 后能夠生成數(shù)據(jù)為 y 的加密結(jié)果,卻不能夠由 y 再計(jì)算回到 x,并且每一個(gè) x 都只會(huì)對(duì)應(yīng)一個(gè) y,在到目前為止能力范圍內(nèi)無法找到與之重復(fù)的結(jié)果。也就是說,哈希函數(shù)具有絕對(duì)的單向性。

舉例:我們?cè)诰W(wǎng)上找了一個(gè)哈希( Hash )算法工具給“OKBS”加密,形成哈希值如下所示:


如圖中,初始信息“OKBS”,經(jīng)過哈希算法計(jì)算器的加密,就變成了 256 位的加密結(jié)果了。注意,哈希算法具有絕對(duì)的單向性和敏感性,任何輸入數(shù)據(jù)發(fā)生改變(哪怕只有極細(xì)微的差別)都會(huì)輸出一個(gè)不一樣的輸出結(jié)果,這就是它的厲害之處了!

2、非對(duì)稱加密算法

非對(duì)稱加密算法的完成需要公鑰、私鑰和加/解密算法三個(gè)結(jié)構(gòu)。

首先,密碼學(xué)中的“安全偽隨機(jī)數(shù)生成器”能夠產(chǎn)生一對(duì)密鑰(即:公鑰和私鑰),這兩者是成對(duì)的,公鑰是可以公開的,而私鑰則由用戶自己保留。

用私鑰加密的數(shù)據(jù)只有用公鑰才可以解密,反過來,用公鑰加密的數(shù)據(jù)也只有用私鑰才可以解密。公鑰和私鑰之間的這種數(shù)學(xué)關(guān)系,使得私鑰可以用于生成特定消息的簽名。而這個(gè)簽名可以在不暴露私鑰的前提下通過公鑰進(jìn)行驗(yàn)證。

也就是說我把一段信息用私鑰進(jìn)行簽名(加密過程),然后把這個(gè)數(shù)據(jù)連同簽名和我的公鑰發(fā)送給對(duì)方,對(duì)方就可以通過公鑰對(duì)簽名進(jìn)行驗(yàn)證(解密過程)對(duì)比數(shù)據(jù)從而驗(yàn)證數(shù)據(jù)的有效性。

對(duì)應(yīng)到比特幣的交易系統(tǒng)中,就是:公鑰生成的錢包地址用于接收比特幣,而私鑰則用于比特幣支付時(shí)的交易簽名。

在支付比特幣時(shí),比特幣的所有者需要在交易中提交自己的公鑰和該交易的簽名。而比特幣網(wǎng)絡(luò)中所有節(jié)點(diǎn)可以通過所提交的公鑰和簽名進(jìn)行驗(yàn)證,從而確認(rèn)支付者對(duì)交易的比特幣的所有權(quán)。這樣就實(shí)現(xiàn)了既不暴露自己的私鑰又能讓所有的節(jié)點(diǎn)有效地驗(yàn)證交易。

了解哈希算法和非對(duì)稱加密技術(shù)后,我們來具體看一看交易過程中如何進(jìn)行簽名和驗(yàn)證:

發(fā)送者想要在區(qū)塊鏈網(wǎng)絡(luò)中發(fā)起一個(gè)交易(在此理解為打包傳送一條名為 x 的原文)時(shí),先要通過哈希函數(shù)將原文 x 形成一個(gè)信息摘要 x,再用自己的私鑰對(duì)其進(jìn)行加密形成數(shù)字簽名 x,即加密過程:

接著,發(fā)送者會(huì)把原文 x 和數(shù)字簽名 x 合在一起發(fā)送給接受者:? ??

接收者接收完畢后,會(huì)將原文 x 用相同的哈希算法提取信息摘要 y,再對(duì)發(fā)送者發(fā)送來的數(shù)字簽名 x 用對(duì)應(yīng)的公鑰進(jìn)行解密得到信息摘要 z,通過比較 y 與 z 是否一致來確認(rèn)接受到的信息是否有效(完整且在傳輸過程中未被修改)。

以上簡(jiǎn)單介紹了密碼學(xué)在區(qū)塊鏈體系中起到的作用,密碼學(xué)可以為一切虛擬網(wǎng)絡(luò)的安全性提供保證,安全性是一切交易的基礎(chǔ),區(qū)塊鏈網(wǎng)絡(luò)離不開加密算法這塊基石。而且,隨著科技發(fā)展日新月異,我們的加密算法也還會(huì)不斷改進(jìn),讓我們拭目以待吧。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容