區(qū)塊鏈的密碼學(xué)介紹
掃描二維碼
隨時(shí)隨地手機(jī)看文章
本期將主要介紹哈希、環(huán)簽名、零知識(shí)證明、和多重簽名。
明文/ Plaintext
在密碼學(xué)中,明文是指?jìng)魉头较胍邮辗将@得的可讀信息。明文經(jīng)過(guò)加密所產(chǎn)生的信息被稱為密文,而密文經(jīng)過(guò)解密而還原得來(lái)的信息被稱為明文。
密文/ Ciphertext
在密碼學(xué)中,密文是明文經(jīng)過(guò)加密算法所產(chǎn)生的。因?yàn)槊芪氖且环N除非使用恰當(dāng)?shù)乃惴ㄟM(jìn)行解密,否則人類或計(jì)算機(jī)是不可以直接閱讀理解的加密形態(tài),可以理解為被加密的信息。
環(huán)簽名/ Ring Signatures
因簽名中參數(shù) Ci(i=1,2,…,n)根據(jù)一定的規(guī)則首尾相接組成環(huán)狀而得名。其實(shí)就是實(shí)際的簽名者用其他可能簽字者的公鑰產(chǎn)生一個(gè)帶有斷口的環(huán),然后用私鑰將斷口連成一個(gè)完整的環(huán)。任何驗(yàn)證人利用環(huán)成員的公鑰都可以驗(yàn)證一個(gè)環(huán)簽名是否由某個(gè)可能的簽名人生成。
數(shù)字簽名/ Digital Signatures
數(shù)字簽名(又稱公鑰數(shù)字簽名、電子簽名)是一種類似寫在紙上的簽名,但是使用了公鑰加密領(lǐng)域的技術(shù)實(shí)現(xiàn),用于鑒別數(shù)字信息的方法,在網(wǎng)絡(luò)上可以使用數(shù)字簽名來(lái)進(jìn)行身份確認(rèn)。數(shù)字簽名是一個(gè)獨(dú)一無(wú)二的數(shù)值,若公鑰能通過(guò)驗(yàn)證,那我們就能確定對(duì)應(yīng)的公鑰的正確性,數(shù)字簽名兼具可確認(rèn)性和不可否認(rèn)性。
多重簽名/ Multi-Signatures
多重簽名意味著在交易發(fā)生之前需要多個(gè)簽名或批準(zhǔn)。多重簽名會(huì)增加加密貨幣的安全性,這樣一個(gè)人就不能在未經(jīng)他人同意的情況下把所有的數(shù)字貨幣都拿走。
數(shù)字證書/ Digital CerTIficate
數(shù)字證書是區(qū)塊鏈中標(biāo)識(shí)各個(gè)節(jié)點(diǎn)的身份信息的一串?dāng)?shù)字,用以證明公鑰的歸屬以及內(nèi)容信息的合法性,在區(qū)塊鏈的非對(duì)稱加密中,一旦通過(guò)中間人攻擊將公鑰替換后將會(huì)破壞區(qū)塊鏈的安全體系,因此通過(guò)共識(shí)機(jī)制建立互相承認(rèn)的數(shù)字證書機(jī)制,在不需要第三方的情況下識(shí)別數(shù)據(jù)的合法性。
哈希/ 散列/ Hash
哈希又稱作“散列”,是一種數(shù)學(xué)計(jì)算機(jī)程序,它接收任何一組任意長(zhǎng)度的輸入信息,通過(guò)哈希算法變換成固定長(zhǎng)度的數(shù)據(jù)指紋輸出形式,如字母和數(shù)字的組合,該輸出就是“哈希值”。哈希使存儲(chǔ)和查找信息速度更快,因?yàn)楣V低ǔ8趟愿菀妆徽业健?/p>
同時(shí)哈希能夠?qū)π畔⑦M(jìn)行加密,一個(gè)好的哈希函數(shù)在輸入域中很少出現(xiàn)哈希沖突,哈希一個(gè)特定文檔的結(jié)果總是一樣的,但找到具有相同哈希值的兩個(gè)文件在計(jì)算上是計(jì)算上不可行的。
安全哈希算法/ Secure Hash Algorithm 256 / SHA 256
SHA 256是 SHA 系列算法之一,由美國(guó)國(guó)安局設(shè)計(jì)、美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院發(fā)布的一套哈希算法,由于其摘要長(zhǎng)度為 256bits,故稱 SHA 256。SHA 256 是保護(hù)數(shù)字信息的最安全的方法之一。
零知識(shí)證明/ Zero-Knowledge Proof
證明者和驗(yàn)證者之間進(jìn)行交互,證明者能夠在不向驗(yàn)證者提供任何有用的信息的情況下,使驗(yàn)證者相信某個(gè)論斷是正確的。
計(jì)算上不可行/ ComputaTIonally Feasible
密碼算法依賴的原理是當(dāng)前計(jì)算不可行的數(shù)學(xué)問(wèn)題,而“計(jì)算不可行”是一個(gè)在時(shí)間及空間上相對(duì)而言的概念,計(jì)算上不可行即表示一個(gè)程序是可處理的但是需要一個(gè)長(zhǎng)得不切實(shí)際的時(shí)間(如幾十億年)來(lái)處理的步驟。通常認(rèn)為2的 80 次方個(gè)計(jì)算步驟是計(jì)算上不可行的下限。
暴力破解法/ Brute Force Attack / BFA
暴力破解法又名窮舉法,是一種密碼分析的方法,通過(guò)逐個(gè)推算猜測(cè)每一個(gè)可能解鎖安全系統(tǒng)的密鑰來(lái)獲取信息的方法。
哈希算法是一種強(qiáng)大的算法,可以把任意長(zhǎng)度的輸入轉(zhuǎn)化成一個(gè)固定的簡(jiǎn)短輸出,使存儲(chǔ)和查詢更為高效。
對(duì)區(qū)塊鏈來(lái)說(shuō),在鏈上存儲(chǔ)文件資源過(guò)于奢侈,因?yàn)殒溕腺Y源極其稀少且寶貴,所以鏈上一般只存儲(chǔ)比較重要的交易信息或者一些比較小的哈希數(shù)據(jù)。
如果想要存儲(chǔ)一個(gè)電影在鏈上,是極為瘋狂的。一般說(shuō)的分布式存儲(chǔ),是指文件分布式的存儲(chǔ)的鏈下多個(gè)物理實(shí)體內(nèi),把文件地址經(jīng)過(guò)哈希存儲(chǔ)到鏈上,通過(guò)查詢哈希值定位文件實(shí)體地址,再進(jìn)行查詢、復(fù)制、傳輸?shù)炔僮鳌?/p>
哈希加密算法對(duì)區(qū)塊鏈的意義是非常大的,區(qū)塊鏈的整個(gè)體系內(nèi)無(wú)法離開哈希加密算法,當(dāng)然其被區(qū)塊鏈廣泛采用的另一個(gè)重要原因是哈希算法足夠安全。
環(huán)簽名是一種數(shù)字簽名方案,為大眾所熟知是因?yàn)橹[私幣門羅使用其實(shí)現(xiàn)匿名性。
零知識(shí)證明是另一種知名匿名幣ZCash使用的技術(shù),并且零知識(shí)證明不僅僅應(yīng)用于匿名幣領(lǐng)域,在其他很多不想泄露自身信息,但需要進(jìn)行驗(yàn)證的領(lǐng)域同樣適用。
比如在數(shù)字身份領(lǐng)域,可以通過(guò)零知識(shí)證明,在不泄露自身信息的情況下,證明我是我,其具有比較廣泛的潛在應(yīng)用場(chǎng)景。
多重簽名也是一項(xiàng)比較有用的技術(shù),由于區(qū)塊鏈本身私鑰即資產(chǎn)的特性,掌握了私鑰就意味著掌握了資產(chǎn)。
在一些場(chǎng)景下,不適用冷錢包存儲(chǔ),但金額比較大,完全交給一個(gè)人控制,風(fēng)險(xiǎn)太大。
這種情況下可以使用多重簽名技術(shù),必須超過(guò)指定數(shù)量的人簽名,資金才能夠轉(zhuǎn)移,對(duì)于防丟、防盜有重要意義。
多重簽名主要是用于保管資產(chǎn),在一些業(yè)務(wù)中也會(huì)使用多簽技術(shù)來(lái)使業(yè)務(wù)開展更為順利。
比如加密貨幣借貸,可以把抵押資產(chǎn)存儲(chǔ)到多簽合約內(nèi),增加一個(gè)第三方機(jī)構(gòu),共同掌握資產(chǎn)。
平臺(tái)無(wú)法自行處置資產(chǎn),因?yàn)樽钌傩枰?個(gè)人同意,第三方如和平臺(tái)合伙作惡,將付出名譽(yù)損失及承擔(dān)可能的法律責(zé)任,所以第三方的加入能夠增加借款人信心。
如借款人違約,第三方在確認(rèn)借款人違約的情況下,即使沒(méi)有借款人本人同意,第三方配合平臺(tái)也能順利完成違約情況下的資產(chǎn)處置,保證了業(yè)務(wù)能夠順利進(jìn)行。