淺析挖礦機(jī)制(pow)里所采用的算法
區(qū)塊鏈?zhǔn)澜缤ㄟ^(guò)共識(shí)算法、加密、點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)以及獎(jiǎng)勵(lì)機(jī)制等,可以形成一個(gè)自治的社區(qū),形成一個(gè)通過(guò)挖礦機(jī)制(POW)來(lái)達(dá)成一種不通過(guò)中心機(jī)構(gòu)來(lái)達(dá)成的信任,最終實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的價(jià)值流通。

我們介紹一下挖礦機(jī)制里所采用的各種算法:
【Hash函數(shù)】
我們經(jīng)常說(shuō)的POW算法本質(zhì)是一個(gè)Hash函數(shù)。Hash函數(shù)是一個(gè)無(wú)比神奇的東西,學(xué)習(xí)比特幣應(yīng)該從學(xué)習(xí)Hash函數(shù)入手,理解了Hash函數(shù)再去學(xué)比特幣原理將事半功倍,不然將處處感覺(jué)混沌,難以開(kāi)竅。已經(jīng)有很多Hash函數(shù)被設(shè)計(jì)出來(lái)并廣泛應(yīng)用,不過(guò)Hash函數(shù)一般安全壽命都不長(zhǎng),被認(rèn)為安全的算法往往沒(méi)能使用多久就被成功攻擊,新的更安全的算法相繼被設(shè)計(jì)出來(lái),而每一個(gè)被公認(rèn)為安全可靠的算法都有及其嚴(yán)格的審計(jì)過(guò)程。
【SHA256算法】
SHA是美國(guó)國(guó)家安全局 (NSA) 設(shè)計(jì),美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院 (NIST) 發(fā)布的一系列密碼散列函數(shù),經(jīng)歷了SHA-0,SHA-1,SHA-2,SHA-3系列發(fā)展。2012年Keccak算法最終獲勝成為唯一官方標(biāo)準(zhǔn)SHA-3算法,但還有四種算法同時(shí)進(jìn)入了第三輪評(píng)選,分別是:BLAKE, Gr?STL, JH和SKEIN,這些算法其實(shí)也非常安全,而且經(jīng)受審查,被各種競(jìng)爭(zhēng)幣頻繁使用。
比特幣采用SHA256算法,該算法屬于SHA-2系列,被公認(rèn)為最安全最先進(jìn)的算法之一。隨著比特幣被更多人了解,大家開(kāi)始對(duì)SHA256的安全性發(fā)表各種意見(jiàn),到目前為止,沒(méi)有公開(kāi)的證據(jù)表明SHA256有漏洞,SHA256依然牢牢抗住保衛(wèi)比特幣安全的大旗。當(dāng)然大,沒(méi)有永遠(yuǎn)安全的算法,SHA256被替代是早晚的事。
【SCRYPT算法】
與SHA256算法相比,SCRYPT占用的內(nèi)存更多,計(jì)算時(shí)間更長(zhǎng),并行計(jì)算異常困難,對(duì)硬件要求很高。很顯然,SCRYPT算法具有更強(qiáng)的抵御礦機(jī)性,萊特幣還將區(qū)塊時(shí)間改為2.5分鐘,在那個(gè)山寨幣還鳳毛麟角年代,萊特幣依靠這兩點(diǎn)創(chuàng)新大獲成功,長(zhǎng)期穩(wěn)坐山寨幣第一寶座位置。后來(lái)有人在SCRYPT的基礎(chǔ)上稍作修改形成Scrypt –N算法,改進(jìn)思路都一樣,都是追求更大的內(nèi)存消耗和計(jì)算時(shí)間,以有效阻止ASIC專(zhuān)用礦機(jī)。很快,萊特幣的成功催生了各種各樣的算法創(chuàng)新,2012至2014年間,算法創(chuàng)新一直都是社區(qū)討論的熱門(mén)話(huà)題,每一個(gè)使用創(chuàng)新算法的幣種出現(xiàn),都能刮起一陣波瀾。
【串聯(lián)算法】
重新排列組合是人類(lèi)一貫以來(lái)最常用的創(chuàng)新發(fā)明方法。很快,有人不滿(mǎn)足于使用單一Hash函數(shù),2013年7月,夸克幣(Quark)發(fā)布,首創(chuàng)使用多輪Hash算法,看似高大上,其實(shí)很簡(jiǎn)單,就是對(duì)輸入數(shù)據(jù)運(yùn)算了9次hash函數(shù),前一輪運(yùn)算結(jié)果作為后一輪運(yùn)算的輸入。這9輪Hash共使用6種加密算法,這些都是公認(rèn)的安全Hash算法,并且早已存在現(xiàn)成的實(shí)現(xiàn)代碼。








