比特幣為什么需要采用SHA-256算法
當(dāng)新礦工開始學(xué)習(xí)區(qū)塊鏈知識的時(shí)候,都會聽到HASH(哈希算法),這似乎是無處不在的安全性保證。比特幣作為首個(gè)SHA-256網(wǎng)絡(luò)在2009年正式誕生,與隨后涌現(xiàn)的大量SHA-256網(wǎng)絡(luò)共同實(shí)現(xiàn)了百億億次級(exascale)計(jì)算能力。
而比特幣挖礦其實(shí)就是礦工通過計(jì)算設(shè)備完成由SHA-256加密的復(fù)雜數(shù)學(xué)題,題干是需要被記錄的交易,大家通過做題搶奪記賬權(quán),搶到的礦工就能獲得系統(tǒng)獎勵(lì)和交易手續(xù)費(fèi)。
關(guān)于SHA-256
SHA (Secure HashAlgorithm,譯作安全散列算法) 是美國國家安全局 (NSA) 設(shè)計(jì),美國國家標(biāo)準(zhǔn)與技術(shù)研究院 (NIST) 發(fā)布的一系列密碼散列函數(shù),經(jīng)歷了SHA-0,SHA-1,SHA-2,SHA-3系列發(fā)展。
比特幣采用的SHA-256算法則屬于SHA-2系列,在中本聰發(fā)明比特幣時(shí)(2008)被公認(rèn)為最安全最先進(jìn)的算法之一。除了生成地址中有一個(gè)環(huán)節(jié)使用了REPID-160算法,比特幣系統(tǒng)中但凡有需要做Hash運(yùn)算的地方都是用SHA25。
(哈希算法示例)
SHA256算法的特點(diǎn)是已知答案驗(yàn)證正確很容易,但是要得到答案非常麻煩,需要一個(gè)一個(gè)數(shù)字去試。最先得到答案的礦工即搶到了記賬權(quán),獎勵(lì)就歸他了。其他礦工便繼續(xù)搶下一題的記賬權(quán)。
SHA-256如何保證安全不被篡改
比特幣本身是個(gè)公開的賬本,每一個(gè)區(qū)塊就是一頁賬,從第一頁開始,每一頁上都有一個(gè)這樣的哈希值。每一頁的哈希值,都是由上一頁的哈希值和剩下的信息通過SHA256得到的結(jié)果。如果有人修改之前的賬目,那么從他修改的下一頁賬開始,每一頁的哈希值都會完全不同,會被所有人一眼看穿。這樣被修改過的賬本,無法得到51%以上的人承認(rèn),就無法寫入?yún)^(qū)塊中,因此修改是無效的。這樣的設(shè)計(jì),就保證了比特幣這個(gè)分布式賬本的不可篡改性。
以現(xiàn)在的計(jì)算機(jī)破解SHA-256需要消耗極大的資源,因此無法獲得利益。數(shù)次的黑客攻擊事件,并不是攻破了由于比特幣網(wǎng)絡(luò)本身,而是交易所和一些個(gè)人。SHA-256這套算法的安全性是被世界各國密碼學(xué)家所廣泛承認(rèn)的,在量子計(jì)算機(jī)普及之前,SHA-256還是相對來說目前最安全的加密算法。