全球如何保证区块生成是匀速的?
轉(zhuǎn)載自?全球如何保證區(qū)塊生成是勻速的?
區(qū)塊鏈有個特點:雖然大家都在采礦,但挖到礦的速度是均勻的。以承載比特幣的區(qū)塊鏈為例,平均每10分鐘產(chǎn)出一個區(qū)塊,這個速度基本是不變的。
?
有朋友就有疑問了,計算能力越來越強,計算節(jié)點越來越多,計算區(qū)塊頭hash的速度理論上應該是越來越快的呀。技術(shù)上,區(qū)塊鏈如何動態(tài)調(diào)節(jié),以保證勻速生成區(qū)塊,是今天這一分鐘要聊的內(nèi)容。
畫外音:之前不少朋友說文章太長,1分鐘讀不完,好吧,我錯了,這次真的是1分鐘。
?
回顧,區(qū)塊是怎么生成的?
答:對最新的區(qū)塊頭進行兩次SHA256計算,得到的256bit哈希結(jié)果,高位48bit必須是0x00000000FFFF,才算新區(qū)塊有效。
可以認為哈希的結(jié)果是完全隨機的,要得出前48bit必須是0x00000000FFFF的哈希結(jié)果,就如同連續(xù)拋了48次硬幣,每次都得到我們想要的結(jié)果,其概率是(1/2)^48,所以概率非常小,生成區(qū)塊的難度很高。
畫外音:區(qū)塊的生成原理詳見《1分鐘了解挖礦的本質(zhì)》。
?
區(qū)塊如何保證生成速度勻速?
答:假設(shè)期望比特幣全球區(qū)塊鏈每10分鐘生成一個區(qū)塊,需要設(shè)定一個動態(tài)調(diào)節(jié)機制,每兩周做一次統(tǒng)計:
-
如果統(tǒng)計結(jié)果是,最近兩周平均每5分鐘就生成了一個區(qū)塊,說明生成太快了,需要變慢50%
-
如果統(tǒng)計結(jié)果是,最近兩周平均每20分鐘才生成了一個區(qū)塊,說明生成太慢了,需要加速一倍
?
如何控制加速和變慢呢?
答:區(qū)塊鏈中有一個難度系數(shù),可以調(diào)節(jié)區(qū)塊生成的變快與變慢,難度系數(shù)影響的是,區(qū)塊頭哈希結(jié)果,有多少bit必須與預期相同。
例如,原計劃哈希結(jié)果高位48bit符合預期,才算挖礦成功,現(xiàn)在改為,49bit符合預期,才算挖礦成功,這樣得到預期hash的概率就降低了,挖礦就會變慢。
想反,如果改為,47bit哈希結(jié)果符合預期,就算挖礦成功,這樣得到預期hash的概率就變高了,挖礦就會變快。
?
總結(jié),如何保證全球勻速挖礦?
-
需要定期統(tǒng)計,動態(tài)加速或減慢生成速度
-
通過難度系數(shù),影響hash結(jié)果多少位必須符合預期,才算合法的區(qū)塊,來控制速度
?
技術(shù)人,聊技術(shù),這個勻速方案,巧妙嗎?
一分鐘很短,希望這一分鐘,大家有收獲。
總結(jié)
以上是生活随笔為你收集整理的全球如何保证区块生成是匀速的?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1分钟了解“区块链分叉”的本质
- 下一篇: win 7防火墙(win7ddos防火墙