時(shí)間:2023-07-12|瀏覽:236
區(qū)塊鏈中的哈希函數(shù),是怎樣被用來(lái)進(jìn)行挖礦的呢?這兩者有什么關(guān)系呢?
區(qū)塊鏈中的哈希函數(shù),還有一個(gè)特別重要的性質(zhì),英語(yǔ)叫做puzzle-friendly。什么意思呢?就是混亂,沒(méi)有規(guī)律。
它的意思是說(shuō),當(dāng)你看到一個(gè)輸出值y,或者輸出值的范圍時(shí),你很難通過(guò)它的樣子去確定x有什么樣的特性,或者x會(huì)落在什么樣的范圍?
這里我們來(lái)聊一聊比特幣的挖礦,到底是在干什么?以及它是如何操作的。
我們經(jīng)常說(shuō),挖礦就是解一道數(shù)學(xué)題,實(shí)際上這個(gè)數(shù)學(xué)題并不是給出唯一的解,而是給出一個(gè)解的范圍。比如說(shuō)y的取值在1~10000之間。要求你解出滿足y值范圍的x,只需要一個(gè)解就可以了。
比特幣所用的算法叫做sha256。實(shí)際上它是一個(gè)256位的輸出值,類似于01010101這種組合。
可以通過(guò)調(diào)整256位前面的零的數(shù)量來(lái)調(diào)整難度。零越多,表示這個(gè)數(shù)值的范圍越??;零越少,表示這個(gè)數(shù)值范圍越大。
比特幣的難度調(diào)整,實(shí)際上就是調(diào)整這個(gè)零的數(shù)量,以保證每一次的出塊時(shí)間都在十分鐘左右。
注意,你沒(méi)有別的招數(shù),只能一個(gè)一個(gè)地代數(shù)字去試。
在挖礦的時(shí)候,這個(gè)函數(shù)還有一個(gè)特點(diǎn),求解非常復(fù)雜,但是驗(yàn)算卻非常容易。你只需要把別人算出來(lái)的值帶進(jìn)去,就可以得到方程組的輸出。驗(yàn)證就可以了。
所以從一開(kāi)始,礦工們就會(huì)不停地打包他們的交易信息,然后拼命運(yùn)算這個(gè)數(shù)值,誰(shuí)先搶到,就會(huì)立刻向全網(wǎng)公布。而其他節(jié)點(diǎn)只要收到你這個(gè)數(shù)字,驗(yàn)證完了之后,就會(huì)立即停止手上的工作,開(kāi)始下一輪的競(jìng)賽。
由于這種精妙的機(jī)制,保證了網(wǎng)絡(luò)的公平,使得區(qū)塊鏈能夠平穩(wěn)運(yùn)行這么多年。
來(lái)源:百度 作者:扮豬不吃虎