征途車行-小偉8星評(píng)價(jià)
2020-09-21 21:20:54
比特幣作為最早的區(qū)塊鏈系統(tǒng),其挖礦算法采用的是SHA256 散列函數(shù),該函數(shù)屬于SHA2系列。比特幣的挖礦算法過(guò)程很簡(jiǎn)單:
(1)礦工收到用戶的交易信息后,首先驗(yàn)證,然后構(gòu)造交易的默 克爾樹,得到一個(gè)默克爾樹根哈希值,打包進(jìn)區(qū)塊頭中。對(duì)于礦工來(lái) 說(shuō),最優(yōu)的選擇就是先打包手續(xù)費(fèi)高的交易,這樣才能保證其利益 最大化。
(2)填充區(qū)塊頭,組成80個(gè)字節(jié)的比特幣區(qū)塊頭。
(3)將80個(gè)字節(jié)的區(qū)塊頭信息進(jìn)行雙SHA256運(yùn)算,得到一個(gè)32 字節(jié)的哈希值。之后判斷得到的結(jié)果是否小于當(dāng)前區(qū)塊的難度值, 如果已達(dá)到,則該區(qū)塊就是合法的區(qū)塊。礦工把它加入到主鏈中,之后開始計(jì)算下一個(gè)區(qū)塊。如果不小于當(dāng)前區(qū)塊難度值,則繼續(xù)更換 區(qū)塊頭中的隨機(jī)數(shù)值,重新對(duì)區(qū)塊頭進(jìn)行雙哈希運(yùn)算。
竹泓7星評(píng)價(jià)
2020-09-20 21:25:49
比特幣采用POW算法進(jìn)行挖礦,POW算法全稱Proof of Work,工作證明。這就是說(shuō)你的收益取決于你對(duì)區(qū)塊鏈做出的貢獻(xiàn),也就是我們?cè)谕诘V時(shí)的有效工作,換句話來(lái)說(shuō),你的工作效率和效力越高,你的收益就越高。應(yīng)用于挖礦的區(qū)塊鏈技術(shù)來(lái)說(shuō),挖礦時(shí)的工作效率越高,所獲得的數(shù)字貨幣就越多,不少的主流數(shù)字貨幣都是采用這種模式的。
有夢(mèng)就去追10星評(píng)價(jià)
2020-09-11 21:31:05
如果你百度/谷歌搜索 比特幣挖礦的原理的話,都會(huì)給你說(shuō)是計(jì)算一個(gè)復(fù)雜的數(shù)學(xué)問(wèn)題而已,但是這么說(shuō)的話太籠統(tǒng)而且也太簡(jiǎn)單。
采礦引擎如何工作這是一個(gè)重要的知識(shí)點(diǎn),所以我們需要了解一些密碼學(xué)知識(shí)和哈希算法相關(guān)的知識(shí),才能知道挖礦的基本原理。
單向加密人類能夠理解的輸入,例如 Hello World ,并將其扔到某個(gè)加密函數(shù)(即所謂的復(fù)雜的數(shù)學(xué)問(wèn)題),加密函數(shù)的算法越復(fù)雜,逆向工程就越困難。
例如一個(gè) SHA - 256 的例子,網(wǎng)站(http://tool.oschina.net/encrypt?type=2)可以很快的計(jì)算散列值,讓我們來(lái)散列 “Hello World” 看看會(huì)得到什么結(jié)果:
不管你試驗(yàn)幾次都會(huì)得到一樣的散列值,在編程中這種被稱之為冪等性。
加密算法的一個(gè)基本特性就是,它們很難通過(guò)逆向工程來(lái)得到明文結(jié)果,但是十分容易驗(yàn)證他們的加密結(jié)果,例如這里的 “Hello World” 很難通過(guò)逆向工程得到他的原明文結(jié)果,比特幣采用的是 Double SHA-256 也就是將明文通過(guò) SHA-256 計(jì)算過(guò)一次之后,再拿 SHA-256 針對(duì)散列值再次進(jìn)行計(jì)算,在這里我們只使用 SHA-256 來(lái)進(jìn)行加密。
比特幣通過(guò)讓參與者散列隨機(jī)的字母與數(shù)字的組合,直到計(jì)算出來(lái)的散列包含前導(dǎo) 0。
例如我們計(jì)算 886 的散列值可以得到如下結(jié)果:
000f21ac06aceb9cdd0575e82d0d85fc39bed0a7a1d71970ba1641666a44f530
它返回了 3 個(gè) 0 作為前綴的散列值,但是我們?cè)趺粗?886 計(jì)算出來(lái)的散列結(jié)果產(chǎn)生了 3 個(gè) 0 呢?
答案是我并不需要知道。。。我需要知道礦工給我的散列值前導(dǎo)有幾個(gè)零就好了,并不需要復(fù)雜的算法來(lái)驗(yàn)證整個(gè)散列值的有效性。
比特幣則稍微復(fù)雜一點(diǎn),它每隔 10 分鐘生成一個(gè)新的區(qū)塊,新區(qū)塊的散列值的難度它可以動(dòng)態(tài)調(diào)整,就類似于 CLR 的 GC 一樣,它可以根據(jù)目前挖礦的人數(shù)來(lái)進(jìn)行難度動(dòng)態(tài)調(diào)整,如果挖礦的人多的話,則調(diào)高難度,少則調(diào)低。