一文讀懂 BTC 挖礦難度調整

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

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

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

挖礦是什么?

從本質上講,挖礦就是創建新的區塊,用交易記錄填充它們,并將它們添加到區塊鏈中,讓每個人都能看到,并就特定的貨幣是如何使用的這件事達成一致,

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

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

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

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

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

資料來源:Khaled Salah

礦工們一直在為了這個數字努力,直到輸出的Hash值小于目標值。因為Hash值是隨機的,所以目標越低,就越難找到一個有效的Hash值,就像擲骰子一樣,擲一個小于3的數字比擲一個小于4的數字更難,

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

什么是挖礦難度?

這是不言自明的,但是挖礦的難度僅僅是指為區塊找到一個有效的Hash值有多么困難和耗時。一個更好的問題應該是,為什么挖礦一開始就需要有難度?

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

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

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

挖礦難度如何確定?

定期調整難度,以確保總是平均需要10分鐘來挖掘一個區塊。在每添加2016個區塊后,系統會查看創建這些2016個區塊所花的時間。正常情況下,需要2周左右,或20160分鐘,如果超過兩周,難度就會降低,如果不到兩周,難度就會增加。難度可以如下確定。

推導出新難度的公式

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

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

難度與目標的關系

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

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

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

  • 計算能力
  • 網路中個體的數量

計算能力

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

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

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

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

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

網路的規模

等等,但我們并不是每兩周就有更快的電腦,對吧?雖然計算機的不斷改進是需要調整機制的主要原因,但該系統也對網路中的個體數量進行了補償,

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

總結

所以回到我們一開始的地方–在今天這個時代,用你的PC挖比特幣幾乎是不可能的,原因是由于設備升級和網路規模增大所做的補償,導致挖礦難度不斷增加,你的PC根本沒有計算能力再跟上其他人的腳步,所以你能夠成功挖出一個區塊的幾率非常非常低,

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

0 条回复 A文章作者 M管理員
    暫無討論,說說你的看法吧