什麼是挖礦難度?通俗解釋比特幣挖礦難度調整

從本質上講,挖礦就是建立新的區塊,用交易記錄填充它們,並將它們新增到區塊鏈中,讓每個人都能看到,並就特定的貨幣是如何使用的這件事達成一致。礦工們一直在為了這個數字努力,直到輸出的Hash值小於目標值。因為Hash值是隨機的,所以目標越低,就越難找到一個有效的Hash值。就像擲骰子一樣,擲一個小於3的數字比擲一個小於4的數字更難。這是不言自明的,但是挖礦的難度僅僅是指為區塊找到一個有效的Hash值有多麼困難和耗時。一個更好的問題應該是,為什麼挖礦一開始就需要有難度?

定期調整難度,以確保總是平均需要10分鐘來挖掘一個區塊。在每新增2016個區塊後,系統會檢視建立這些2016個區塊所花的時間。正常情況下,需要2周左右,或20160分鐘。如果超過兩週,難度就會降低,如果不到兩週,難度就會增加。難度可以如下確定。網路中個體的數量等等,但我們並不是每兩週就有更快的電腦,對吧?

雖然計算機的不斷改進是需要調整機制的主要原因,但該系統也對網路中的個體數量進行了補償。所以回到我們一開始的地方--在今天這個時代,用你的PC挖比特幣幾乎是不可能的,原因是由於裝置升級和網路規模增大所做的補償,導致挖礦難度不斷增加。你的PC根本沒有計算能力再跟上其他人的腳步,所以你能夠成功挖出一個區塊的機率非常非常低。

當我第一次瞭解比特幣挖礦的時候,我認為它很簡單,就像坐在家裡,做著我想做的事情,而我的電腦會投入工作,在我睡覺的時候賺錢。

但不完全是。事實證明,還有很多原因使得上述情況完全不可能發生。

但為了理解其中的原因,我們首先必須理解挖礦的整個概念,以及它在加密貨幣方面的意義。

挖礦是什麼?

然而,為了新增一個區塊,礦工必須解決一個“加密謎題”,或者用更專業的術語來說,他們必須得到一個有效的塊Hash。

我不會講太多的Hash函式相關的知識,但簡單地說,Hash是拿到區塊的所有資訊,然後把它處理,直到它返回一個與此前內容沒有任何關係的隨機的字母和數字64位十六進位制數。

如果你改變了區塊上的任何資料,隨機數將會有很大的不同,但如果什麼都沒有改變,它將總是返回相同的內容。

但是如何知道Hash值是否有效呢?這就是難度目標的由來。目標描述一個閾值,並且要使Hash有效,該值必須小於目標。

你可能會問,如果不能更改交易資訊,如何獲得不同的Hash值呢?在建立Hash時,區塊中還有另一個因素要考慮進去——你可以修改它,它被稱為nonce。

什麼是挖礦難度?通俗解釋比特幣挖礦難度調整

資料來源:Khaled Salah

那麼你如何確定目標的價值呢?這個問題的答案就是我們今天要討論的話題:挖礦難度。

什麼是挖礦難度?

區塊鏈的全部意義在於在網路中的多個個體之間建立共識,也就是說在一個真理上達成一致。它們是如何做到這一點的呢?它們取網路中最長的有效鏈,這取決於向它投入了多少工作(計算Hash值所花費的時間),並接受它作為構建的主鏈。

有了這個難度,就可以確保網路的安全性,因為它可以防止欺詐。如果新增區塊很容易,那麼有人可能會傳送欺詐性交易,然後向網路傳送垃圾郵件,以建立他們自己的最長鏈。然而,由於挖礦困難,為了防止垃圾資訊,新增塊的過程變慢,平均需要10分鐘來挖掘一個塊。

這裡的棘手之處在於,攻擊者可以透過尋找增加計算能力的方法輕鬆繞過這一困難。幸運的是,我們提前想好了,想出了一種方法讓系統控制困難。

挖礦難度如何確定?

什麼是挖礦難度?通俗解釋比特幣挖礦難度調整

推匯出新難度的公式

正如你可以從反比函式中看到的,如果花費的時間超過2周,分數將小於1,新難度將會減少。如果花的時間超過2周,分數就會大於1,新的難度就會增加。

如果難度降低,目標值就會增加,從而更容易找到有效的雜湊,反之亦然。最大目標值為1,由此可見難度也與目標值成反比。

什麼是挖礦難度?通俗解釋比特幣挖礦難度調整

難度與目標的關係

為了防止突然的變化,難度的增加或減少不能在一次調整中超過4倍。

但回到我們如何想出目標的問題上,我們需要探索影響挖掘區塊所需時間的不同因素。

有兩件事可能會影響這段時間:

計算能力

在比特幣的早期,你可能已經能夠成功地進行挖礦,就像我過去認為的人們所做的那樣——用他們的個人電腦。然而,礦工很快被迫升級。

由於挖礦本質上是一場競賽,人們競相首先找到Hash值並獲得獎勵,那些擁有更強大計算機的人將能夠在同一時間內做出更多計算結果,因此獲勝的機會也會更高。

升級一開始只是簡單的從CPU到顯示卡的轉換,但近年來,升級的幅度要大得多,現在所謂的ASIC(特定應用積體電路)--一種專門為挖礦而設計的器件--已經是能夠參與競爭所需的最低限度。

但即便如此,你也不太可能賺到任何東西。目前,你可能需要40年才可以開採一個區塊。如果你想賺錢,你可能必須加入一個礦池——礦工們聯合起來增加他們獲勝的可能性。

考慮到所有這些進步和計算機不斷變得越來越快的事實,為了跟上它們並保持10分鐘的平均速度,挖礦難度必須補償這一點。

網路的規模

礦工越多,找到一個有效Hash值所花的時間就越少,因為在相同的時間內會進行更多的計算結果。因此,當有更多礦工在場時,困難增加,當礦工更少時,困難減少。

總結

即使系統的設計是為了降低難度,但很少會這樣做。更快、更強大的裝置不斷被開發出來,同時越來越多的人加入了比特幣網路。事實上,自2009年1月比特幣誕生到2020年11月,已經有250次難度增加,只有53次難度降低。

什麼是挖礦難度?通俗解釋比特幣挖礦難度調整

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读