挖礦難度是根據什麼變化的
比特幣挖礦難度(Difficulty),是對挖礦困難程度的度量,挖礦難度越大,挖出區塊就越困難。目標值(Target)與挖礦難度成反比。難度越高,目標值越小。而難度目標是目標值通過轉化得到,是一個只有 4 個位元組的欄位(為了便於理解,本文將難度目標等同目標值處理)。比特幣系統正是通過調整區塊頭中難度目標來控制挖出區塊所需平均時間的。
目標值是個長度為 256 比特的字元串,換句話說目標值約有 2^256 種可能的取值。調整難度目標就是調整目標值在整個輸出空間的佔比。
舉例說明:挖礦就如射擊,所有射出去的子彈都會落在一個很大的靶子上。難度目標就是這個大靶子上圈出一個范圍,這個范圍越小,被射中的難度就越高。調節難度目標,就是調節這個圈在整個靶子上的佔比。
挖礦算力增大,單位時間射擊的次數就越多,目標范圍被射中所需的時間就越短。反之,挖礦算力減小,目標范圍被擊中所需的時間就越長。而比特幣系統追求的平均出塊時間為 10 分鍾,這時候就需要調整難度目標來實現。
02 如何調整難度目標?
比特幣系統是怎樣調整難度目標的呢?在《白話區塊鏈入門 080 | 數說比特幣,了解 比特幣 必須知道這 10 個數字》一文中,我們介紹了比特幣系統每過 2016 區塊(大約為 14 天時間),會自動調整一次難度目標。所有區塊高度為 2016 整數倍的區塊,系統就會自動調整難度目標。如果上一個難度目標調整周期(也就是之前 2016 個區塊),平均出塊時間大於 10 分鍾,說明挖礦難度偏高,需要降低挖礦難度,增大難度目標(准確地說是目標值);反之,前一個難度目標調整周期,平均出塊時間小於 10 分鍾,說明挖礦難度偏低,需要縮小難度目標。
03 難度目標的可調范圍
比特幣系統設定,難度目標上調和下調的范圍都有 4 倍的限制。舉例說明:假設上一個難度目標調整周期內的 2016 個區塊,由於算力暴漲,只用 7 天就全部挖出來了,通過難度目標調整,將難度目標縮小一倍,可以將平均出塊時間維持在 10 分鍾左右,但如果算力暴漲,前 2016 個區塊全部挖出只用了 1 天,那麼難度目標最小隻能調整為原來的四分之一。
04 總結
比特幣的算力是持續波動的,比特幣系統通過難度目標的調整,使得平均出塊時間維持在 10 分鍾左右。難度目標和挖礦難度成反比,挖礦難度越大,難度目標越小。當區塊高度為 2016 的整數倍時,比特幣系統就會在該區塊上,自動調整難度目標。如果上一個難度目標調整周期內,平均出塊時間超過 10 分鍾,那麼降低挖礦難度,增大難度目標;反之則提高挖礦難度,減小難度目標。難度目標上調和下調的范圍都有 4 倍的限制。
比特幣每 2016 個區塊(大約 14 天)調整一次挖礦難度,相比於 BCH 每個區塊都調整(大約 10 分鍾調整一次),有明顯的滯後性。你認為是哪種調整方式更合理呢?為什麼呢?歡迎在留言區分享你的觀點。
❷ 比特幣跌破關鍵技術水平:挖礦即將接近成本區,要涼了
隨著比特幣價再度格大幅下跌至7000美元關口,一些人開始擔心比特幣跌破「挖礦成本」,礦工們或將陸續罷工,而導致幣價得到一定支撐?
這樣的想法略顯天真。
首先來分析一下比特幣的挖礦成本到底有哪些。
引述Fundstrat的成本模型包含三個因素:設備成本,電力和包括維護冷卻設施在內的其他花銷。
Fundstrat的托馬斯·李在本月報告中表示:「當前,比特幣交易基本上是以比特幣開采盈虧平衡的成本進行的。基於我們的數據科學團隊開發的挖礦模型,比特幣開采盈虧平衡的成本為8038美元。」
所以當最近比特幣跌至8000關口時,各路散戶就開始非常緊張。
但其實,這里的8000是包括了「沉沒成本」或者說「固定成本「的,在實際的商業運營過程中不應該考慮沉默成本。
比如一家飯店,你已經交了12萬房租,每月人員成本2萬,平均下來,每月成本3萬,如果毛利潤達不到3萬你是不是就不做了呢?當然不是,因為12萬的房租你是無法回收或轉讓的,只要毛利不低於人員成本2萬,你都應該做下去。
換到挖礦也是一樣,簡單的來說,只要比特幣價格不跌破「運營成本」也就是電價,礦工們是沒理由停止的。
目前挖比特幣效率最高的螞蟻S9礦機9500元/台,每天產出0.001 BTC , 每日耗電32.8度,這是基本固定的效率和耗能,但成本各個礦工可能差別很大,如果是偏遠山區用水電的成本可能為3毛錢一度,摺合挖一個比特幣的「運營」成本是9840元人民幣,才1600美元。
當然如果你是在家扯電線挖礦的,那電費成本可能是6毛錢一度,「運營成本」會一下升至3200美元。
但如果算上礦機折舊的話成本會大幅增加3~4000美元一個,再加上人員和周邊設備、維護費用,這才接近了Fundstrat所估算的8000美元總成本。
如下圖所示,以0.5元/度電費計算,S9礦機在比特幣7000多美元的情況下,每日還是可以賺到27塊錢人民幣,在這種情況下你會不開機挖礦嗎?
這里還有另外一點需要注意的是,以上計算邏輯還是簡單的,實際比特幣的世界跟現實中挖礦石挖石油是完全不一樣的模式——比特幣的挖礦難度會根據總算力變化。
也就是說,比特幣的出幣速度是固定的,挖礦的人多了,挖礦難度就升高,所有人的成本都會上升,而一旦有人陸續開始退出,則剩下的人在同樣的投入情況下,挖到的比特幣數量會增加,他的成本其實降低了!打個不恰當的比方,如果全世界就一個人在挖礦,那麼他拿一個手機的CPU挖,比特幣也會源源不斷。
所以說這里還存在一個博弈的過程,如果你想佔有更多後續挖礦的「紅利」,你就不能退出這個游戲,你的策略應該是向對手展示自己的強大,逼迫對手退出這個挖礦游戲。
而最好的展示強大的辦法就是「熬」,越是在虧本或不賺錢的情況下展示出你願意堅持,對手就越有可能被嚇退縮(感覺自己熬不到未來吃紅利的時候)。
所以,再打個不恰當的比方,就是即便比特幣跌倒1塊錢,只要有礦工相信它未來能夠漲到運營成本之上,他就應該挖下去。另外需要注意的是這個運營成本會隨著參與的人越少而升高,不過問題是參與的人越少比特幣屆時的價格可能也越低。
總結:
比特幣的挖礦成本是一個動態的、復雜的計算過程,只要不低於電費礦工都不應該停止挖礦,請不要盲目上下車
需要礦機訂購和託管可以關注私信
❸ 比特幣挖礦的難度和算力
難度是對挖礦困難程度的度量,即指:計算符合給定目標的一個HASH值的困難程度。
difficulty = difficulty_1_target / current_target
difficulty_1_target 的長度為256bit, 前32位為0, 後面全部為1 ,一般顯示為HASH值:, difficulty_1_target 表示btc網路最初的目標HASH。 current_target 是當前塊的目標HASH,先經過壓縮然後存儲在區塊中,區塊的HASH值必須小於給定的目標HASH, 區塊才成立。
例如:如果區塊中存儲的壓縮目標HASH為 0x1b0404cb , 那麼未經壓縮的十六進制HASH為
所以,目標HASH為0x1b0404cb時, 難度為:
比特幣的挖礦的過程其實是通過隨機的hash碰撞,找到一個解 nonce ,使得 塊hash 小於 目標HASH 值。 而一個礦機每秒鍾能做多少次hash碰撞, 就是其「算力」的代表, 單位寫成 hash/s 或者 H/s
算力單位:
比特幣系統的難度是動態調整的, 每挖 2016 個塊便會做出一次調整, 調整的依據是前面2016個塊的出塊時間, 如果前一個周期平均出塊時間小於10分鍾,便會加大難度, 大於10分鍾,則減小難度,目的是為了保證系統穩定的每過 10分鍾 產出一個塊,所以難度調整的時間大概是2周(2016 * 10 分鍾)
全網算力是btc網路中參與競爭挖礦的所有礦機的算力總和。當前難度周期全網算力會影響下一個周期的難度調整, 如果全網算力增加,挖礦難度增大,單台礦機固定時間的產出就會減少。目前全網算力大概是24.42EH/s, 一台螞蟻S9礦機的算力大概是14TH/s
那麼, 已知當前全網算力,下一個周期難度將如何調整呢?
根據公式:
因為出塊時間要穩定在10分鍾, 也就是600s:
那麼,在3.46e+12的難度下, 一台算力為14TH/s的礦機平均要花多長時間才能出一個塊呢?
根據公式:
有:
結果大概是12270天
❹ 自學區塊鏈(六)BTC-挖礦難度
我們來看下挖礦的計算公式
H(block header) target,這個target就是 目標閾值
BTC用的哈希演算法是SHA-256,它產生的哈希值是256位,那麼就有2^256種取值,這個就是他的輸出空間,要增大挖礦難度, 就調節目標值在這個輸出空間所佔的比例 。
挖礦難度和目標閾值是成反比的, 當算力強時,調節難度,使目標閾值變小 。
不調節難度,隨著礦工數量增多,隨著算力的上升,那麼挖到區塊的時間就會變短,從10分鍾縮短到1分鍾甚至幾秒鍾,這個會帶來什麼樣的問題呢?可能很多人覺得這不是挺好嗎,交易等六個確認就會縮短時間了,交易就會變快了。其實出塊時間縮到很短,風險是很大的,因為網路延遲,出塊時間變短,不同節點很可能接到不同的區塊信息,導致會有很多分叉節點出現。礦工會根據自己認為正確的區塊接著挖。這種情況下,惡意節點發動分叉攻擊就比較容易成功,因為誠實節點的算力被分散了。
導致不需要51%的算力就能成功,所以縮短出塊時間是不利於BTC系統的穩定的。雖然10分鍾不一定是最優的時間,但是也算是比較合理的。
下面是 算力增長曲線
下面是 挖礦難度曲線
下面是 平均出礦時間
我們來看下難度公式:每2016個區塊調整一次挖礦難度,10分鍾出一個平均算下來是兩星期調整一次。
previous_difficulty是上一次的挖礦難度,分母是最近2016個區塊花費的時間
每個節點挖礦是獨立的,BTC的協議也是開源的,會不會有礦工不修改挖礦難度呢?可能性是存在的,但是不影響結果,因為廣播給其他節點需要獨立驗證block header的哈希值, 這個header裡面有難度的一個壓縮編碼,修改難度產生的結果是不會被誠實的節點認可的。
❺ 比特幣挖礦原理是什麼
比特幣挖礦就是通過挖礦節點,然後比特幣挖礦機(電腦)不斷消耗自身的算力,來換取比特幣。在比特幣系統,通過自身的演算法可以動態調整全網節點的挖礦難度,保證每過大約10分鍾,就會有一個節點挖礦成功,這時比特幣系統就會獎勵此人一定數量的比特幣。挖比特幣是一個比較復雜的過程,不過挖比特幣一般會經過這幾個步驟,分別是准備工作、找到礦池、注冊礦池賬號、礦池賬號設置、下載比特幣挖礦器(軟體)、比特幣挖礦機配置;經過以上步驟就可以挖礦了。
本條內容來源於:中國法律出版社《中華人民共和國金融法典:應用版》