哈希算法
哈希算法又稱散列函數(shù),它可以將任意長度的數(shù)據(jù)轉(zhuǎn)換成短的、固定長度的數(shù)據(jù)指紋。
md5、sha-256、sha512等
1、正向快速
2、逆向困難
3、輸入敏感
4、避免碰撞
區(qū)塊鏈中的哈希
哈希算法相當(dāng)于是對信息提取摘要,是數(shù)據(jù)的指紋,因此經(jīng)常被用于數(shù)據(jù)完整性的校驗(yàn),而區(qū)塊鏈在此基礎(chǔ)上又做了適當(dāng)?shù)难由臁?br> 區(qū)塊鏈中用到哈希算法的地方主要是交易哈希和塊哈希,主要功能就是校驗(yàn)交易及區(qū)塊的完整性,以及充當(dāng)區(qū)塊鏈網(wǎng)絡(luò)中交易及區(qū)塊的唯一標(biāo)識(shí)
區(qū)塊鏈數(shù)據(jù)落盤的時(shí)候,我們就可以使用交易哈希、區(qū)塊哈希分別作為交易及區(qū)塊的數(shù)據(jù)主鍵,只要保持了數(shù)據(jù)與標(biāo)識(shí)對應(yīng)索引關(guān)系,就可以把交易跟區(qū)塊存儲(chǔ)在任意數(shù)據(jù)庫中。
區(qū)塊哈希還有另一個(gè)作用,區(qū)塊屬性中包含了前一個(gè)區(qū)塊的哈希,從而構(gòu)建成一條由區(qū)塊哈希關(guān)聯(lián)的數(shù)據(jù)鏈條,所以我們稱區(qū)塊鏈為哈希鏈也不為過
非對稱加密算法
非對稱加密算法:真正的私鑰應(yīng)該只有一份
明文數(shù)據(jù)采用對稱加密算法加密,然后使用非對稱加密對稱加密的迷藥和明文數(shù)據(jù)哈希,雙方收到信息后,用匹配成對的另一個(gè)密鑰解密數(shù)據(jù)并核對明文數(shù)據(jù)哈希
非對稱加密算法跟哈希算法一樣,也是一類算法的統(tǒng)稱?,F(xiàn)用的比較多的是 RSA 跟 ECC 橢圓曲線加密算法,RSA 多用于互聯(lián)網(wǎng)信息傳輸中,比如我們上網(wǎng)用到的 https 通信,而在區(qū)塊鏈中基本都使用的是 ECC 類的變種,比如 ECDSA 跟 ED25519 等。相較于 RSA,ECC 密鑰較短,在擁有更高安全性的同時(shí)還有更好的性能。
區(qū)塊鏈中的非對稱加密
區(qū)塊鏈中對非對稱加密算法的使用并不是直接被用作數(shù)據(jù)加密,而是利用其具備身份確權(quán)的能力,也就是數(shù)字簽名。
你通過數(shù)字貨幣手機(jī)錢包創(chuàng)建了一個(gè)賬戶,此時(shí)區(qū)塊鏈網(wǎng)絡(luò)并不知道,只有當(dāng)你接收到一筆轉(zhuǎn)賬之后,網(wǎng)絡(luò)中才有你這個(gè)賬戶的信息

數(shù)字簽名的本質(zhì)也是一種加密,只不過針對的是數(shù)據(jù)的哈希摘要,并不是數(shù)據(jù)本身。