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