哈希算法在比特幣區(qū)塊鏈中的應(yīng)用

哈希算法雖然不能叫做加密算法,但卻在很多地方都有應(yīng)用,尤其是目前大火的區(qū)塊鏈中。區(qū)塊鏈的出現(xiàn)離不開比特幣,所以我們今天就來(lái)了解一下哈希算法在比特幣區(qū)塊鏈中的主要應(yīng)用。

挖礦

挖礦其實(shí)就是工作量證明(PoW),礦工(通過(guò)不斷重復(fù)哈希運(yùn)算來(lái)產(chǎn)生PoW的各網(wǎng)絡(luò)節(jié)點(diǎn))必須要在滿足全網(wǎng)目標(biāo)難度的情況下求解SHA256算法。這種不斷執(zhí)行SHA256計(jì)算的過(guò)程很消耗算力,因此被形象地稱為“挖礦”。在挖礦這個(gè)典型應(yīng)用中實(shí)際上用到了哈希算法速度快和唯一性這兩個(gè)特點(diǎn)。

哈希算法

比特幣地址

比特幣地址是以阿拉伯?dāng)?shù)字“1”開頭的一串字符和數(shù)字,可以通過(guò)其發(fā)送比特幣,就像通過(guò)Email地址發(fā)送郵件一樣。比特幣的所有權(quán)通過(guò)數(shù)字密鑰、比特幣地址和數(shù)字簽名確立,這里數(shù)字密鑰成對(duì)出現(xiàn),其中公鑰生成的比特幣地址就像銀行的帳戶,而私鑰就像控制賬戶的密碼。

生成比特幣地址的過(guò)程有三步,隨機(jī)數(shù)-私鑰-公鑰-比特幣地址。從公鑰生成比特幣地址的過(guò)程中用到了哈希算法,這樣可以進(jìn)一步加強(qiáng)安全性,降低碰撞的概率,防止攻擊。這里主要是用哈希算法高效的優(yōu)點(diǎn),通過(guò)減少地址的長(zhǎng)度,優(yōu)化存儲(chǔ)空間。

哈希算法

梅克爾樹

梅克爾樹在比特幣中其實(shí)就是一棵二叉樹。它是對(duì)一個(gè)區(qū)塊中所有的交易事務(wù)進(jìn)行兩兩哈希計(jì)算,得到的哈希值再兩兩哈希計(jì)算,這樣遞歸計(jì)算生成一棵二叉樹,也稱哈希樹,樹的頂部為“梅克爾根”,放在區(qū)塊頭中。

通過(guò)這樣組織的數(shù)據(jù)結(jié)構(gòu),很容易知道區(qū)塊中的交易信息是否被篡改;而如果被篡改了,還能知道是第幾塊的信息被篡改了。這里用到了哈希算法唯一性和不可逆的特點(diǎn)。

梅克爾樹

區(qū)塊哈希

區(qū)塊哈希就是對(duì)區(qū)塊頭進(jìn)行哈希計(jì)算,得出某個(gè)區(qū)塊的哈希值,用這個(gè)哈希值可以唯一確定某個(gè)區(qū)塊,相當(dāng)于給區(qū)塊設(shè)定了一個(gè)身份證號(hào),而區(qū)塊與區(qū)塊之間就是通過(guò)身份證號(hào)進(jìn)行串聯(lián),從而形成了一個(gè)鏈?zhǔn)降慕Y(jié)構(gòu)。

哈希值相當(dāng)于一個(gè)指針,檢驗(yàn)信息是否被篡改,如果信息被篡改,那么其哈希值和哈希指針的值必定是不等的。這里也用到了哈希算法唯一性和不可逆的特點(diǎn)。

免責(zé)聲明:素材源于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系刪稿。