哈希和電子簽名是什么?
哈希的意思就是引入隨機(jī)數(shù)量的輸入數(shù)據(jù),將其加密,然后得出一個(gè)固定輸出數(shù)據(jù),就叫做哈希。輸入可以是任何數(shù)據(jù),只要能代表單個(gè)字節(jié),一個(gè)MP3文件,整本小說(shuō),你的銀行賬單,甚至是整個(gè)互聯(lián)網(wǎng)。關(guān)鍵在于輸入可以無(wú)限大。哈希算法可以根據(jù)你的需求來(lái)進(jìn)行選擇,現(xiàn)在公開(kāi)的也有很多種算法。關(guān)鍵點(diǎn)在于,這些算法會(huì)將無(wú)限的輸入,轉(zhuǎn)換成固定數(shù)量的字節(jié)。例如,256字節(jié)。
那么這個(gè)哈希有什么用呢?現(xiàn)在哈希通常的用處就在于指紋識(shí)別,同時(shí)也被稱為檢測(cè)區(qū)域。這意味著一個(gè)哈希被用來(lái)驗(yàn)證一個(gè)文件沒(méi)有被任何人更改。假設(shè)WikiLeaks發(fā)布了使用MD5哈希的文件,任何人下載這些文件,都可以通過(guò)MD5哈希驗(yàn)證文件的來(lái)源。如果哈希和WikiLeaks發(fā)布的不符合,那么你就知道這個(gè)文件肯定是被改過(guò)的。
那么區(qū)塊鏈?zhǔn)侨绾问褂霉5哪?區(qū)塊鏈?zhǔn)褂霉#瑏?lái)表現(xiàn)整個(gè)區(qū)塊鏈網(wǎng)絡(luò)現(xiàn)在的狀態(tài)。輸入則是區(qū)塊鏈的整個(gè)狀態(tài),也就是說(shuō)近期完成的所有轉(zhuǎn)賬,輸出就是哈希代表的區(qū)塊鏈現(xiàn)在的狀態(tài)。哈希就被用來(lái)在區(qū)塊鏈網(wǎng)絡(luò)中讓各方相信,整個(gè)狀態(tài)都是相同的。但是這些哈希是怎么算出來(lái)的呢?
首個(gè)哈希是為第一個(gè)區(qū)塊或者是創(chuàng)世區(qū)塊所計(jì)算的,通過(guò)區(qū)塊內(nèi)部的轉(zhuǎn)賬數(shù)據(jù)得出。初始轉(zhuǎn)賬的順序被用來(lái)計(jì)算創(chuàng)世區(qū)塊的區(qū)塊哈希。后來(lái)每挖出的新區(qū)塊,之前的區(qū)塊哈希也會(huì)被使用,同時(shí)還有這個(gè)區(qū)塊的轉(zhuǎn)賬信息,作為輸入值,來(lái)確定區(qū)塊的哈希。這就是區(qū)塊鏈的形成方式,每個(gè)新區(qū)塊哈希指向地是之前區(qū)塊的哈希。 這種哈希系統(tǒng)保證了任何轉(zhuǎn)賬記錄都不會(huì)被改變,因?yàn)槿绻魏尾糠值霓D(zhuǎn)賬記錄改變,那么歸屬于這個(gè)區(qū)塊的哈希值也會(huì)改變,那么任何接下來(lái)的區(qū)塊哈希也會(huì)被改變。那么你可以簡(jiǎn)單地將哈希對(duì)比,就很容易去分辨出哪兒發(fā)生了改變。這就非常棒了,因?yàn)閰^(qū)塊鏈上的每個(gè)人只需要對(duì)這256個(gè)字節(jié)達(dá)成共識(shí),就可以代表區(qū)塊鏈的狀態(tài)。以太坊區(qū)塊鏈現(xiàn)在是10MB,但是區(qū)塊鏈狀態(tài)只有256字節(jié)代表的哈希。
那么電子簽名又是什么呢?電子簽名,和真實(shí)簽名一樣,為了證明某人的身份,但是使用加密算法,會(huì)使得簽名更加安全,不像手寫的那種,可以很容易地修改。數(shù)字簽名可以證明這個(gè)信息是從某個(gè)特定的人那兒來(lái)的,而且不是任何其他人,比如黑客。
電子簽名在現(xiàn)今互聯(lián)網(wǎng)中也有所應(yīng)用。不論何時(shí)你通過(guò)ACTPS訪問(wèn)網(wǎng)站,你都是在使用SSL,這就是通過(guò)電子簽名來(lái)保證你和服務(wù)器之間的安全性。這意味著當(dāng)你訪問(wèn)Facebook.com時(shí),你的瀏覽器可以檢查跟隨頁(yè)面的數(shù)字簽名,來(lái)驗(yàn)證者確實(shí)是從Facebook網(wǎng)頁(yè)傳來(lái)的,而不是從黑客。
在非對(duì)稱的加密系統(tǒng)中,用戶可以獲得秘鑰對(duì),這是由使用某種算法的公鑰和私鑰組成的。公鑰和私鑰是通過(guò)數(shù)學(xué)關(guān)系相互連接的。公鑰的意思是公開(kāi)發(fā)布的,作為從其他用戶處接受信息的地址,就類似IP地址或者是家庭住址。私鑰意味著隱秘的信息,用來(lái)將簽署電子信息,并發(fā)送給別人。簽名包含在信息中,以至于接受者可以驗(yàn)證發(fā)送者的公鑰。這樣地話,接收者就可以保證只有發(fā)送者可以發(fā)送這條消息。在區(qū)塊鏈上創(chuàng)造賬號(hào),就可以獲得秘鑰對(duì),但是并不需要在任何地方進(jìn)行注冊(cè)。而且區(qū)塊鏈上的任何交易都是由發(fā)送者使用私鑰進(jìn)行電子簽名后才行。這個(gè)簽名保證了只有賬戶擁有者可以轉(zhuǎn)移其中的資產(chǎn)。
總結(jié)來(lái)看,區(qū)塊鏈不能沒(méi)有哈希和電子簽名。哈希使得區(qū)塊鏈上的人對(duì)現(xiàn)在的整體狀態(tài)達(dá)成共識(shí),電子簽名卻保證了所有交易都只由正確的人發(fā)出。我們依賴于這兩個(gè)特性,來(lái)保證區(qū)塊鏈不會(huì)存在任何欺詐和貪污現(xiàn)象。