首先你要理解挖取比特幣的時間點是怎麼一回事:比特幣總共發行2100W個,每生成一個塊周期10分鍾,一個塊獎勵一定數目的比特幣。
最開始挖礦每個塊獎勵50個比特幣,以後每21000個塊獎勵減半(約4年獎勵減半一次),現在每生成一個塊獎勵12.5個比特幣。
每個塊的生成時間10分鍾,但是隨著計算機技術的發展,現在的挖礦算力在不斷升高,那麼生成一個塊的時間肯定小於10分鍾,這就需要一定的控製措施來保證這個時間。
這個措施就是挖礦難度,如果每個塊產出時間小於10分鍾,則提高挖礦難度,大於10分鍾則降低挖礦難度,每次難度調整時間為2016塊,即2周。
挖礦難度會在每2016個塊後所有節點都會按照一定的公式自動進行調整,這個公式由最新的也就是這個周期內2016個區塊的花費時間和期望的時間(期望時間20160分鍾即兩周)比較得出的。
新難度 = 舊難度值 * (過去2016個區塊花費的時長 / 20160分鍾)