當前位置:首頁 » 挖礦知識 » 挖礦平均難度

挖礦平均難度

發布時間: 2024-06-25 17:40:03

比特幣挖礦的難度和算力

難度是對挖礦困難程度的度量,即指:計算符合給定目標的一個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天

② 鎸栫熆闅懼害璋冩暣鍛ㄦ湡鏄浠涔堟寲鐭塊毦搴︽槸浠涔

鎸栫熆闅懼害灝辨槸姣忔℃眰瑙f暟瀛︾粨鏋滅殑闅炬槗紼嬪害銆傚洜涓虹熆宸ョ殑鏁伴噺瓚婃潵瓚婂氫簡錛岃屼笖鍏ㄧ綉綆楀姏涔熷湪涓嶆柇鎻愰珮錛屽勪簬騫沖潎娌10鍒嗛挓鍑轟竴涓鍧楃殑鐩鐨勮冭檻錛岃屼笉鏄澶勪簬榪囧揩鎴栬繃鎱錛岄偅涔堝氨瑕佸規暟瀛︽眰瑙g殑闅炬槗紼嬪害榪涜岃皟鑺傘傜熆鏈烘暟閲忔暟澶氫簡錛岄毦搴﹀氨浼氫緷鎹鏌愮嶈勫垯鍔ㄦ佸姞澶с備篃灝辨槸璇達紝濡傛灉鐭垮伐閮藉叏閮ㄧ殑鎸栨煇縐嶆暟瀛楄揣甯侊紝澧炲姞鐭挎満鏁伴噺錛岄偅涔堟眰瑙i毦搴﹁偗瀹氫細鍙樺緱闈炲父楂樸傚弽涔嬶紝濡傛灉甯佷環澶ц穼錛屾寲甯佺殑鏀剁泭鍙鑳借繕涓嶈兘寮ヨˉ鐢佃垂錛岄偅涔堟寲鐭垮氨浼氫簭鎹熴傜熆宸ヤ滑閮戒笉涓嶅湪鎸栫熆錛岃繖鏍風殑璇濋毦搴︿篃浼氫笅璋冿紝鍚屾牱綆楀姏涓嬭竟鐨勬洿瀹規槗鎸栧埌濂栧姳銆備絾鏄鎸栫熆闅懼害璋冩暣騫朵笉鏄瀹炴椂璋冩暣鐨勶紝鑰屾槸鏈変竴涓鍥哄畾鐨勮皟鏁村懆鏈熴傛瘮鐗瑰竵鐨勮懼畾鏄姣忛殧2016涓鍖哄潡錛屾寲鐭塊毦搴﹁皟鏁翠竴嬈°傝屾瘮鐗瑰竵騫沖潎鍑哄潡鏃墮棿鏄10鍒嗛挓錛屽傛や竴鏉ュ垰濂芥槸2鍛ㄨ皟鏁翠竴嬈★紝榪欏氨鏄闅懼害璋冩暣鍛ㄦ湡銆
鎴戜滑閫氳繃浠ヤ笂鍏充簬鎸栫熆闅懼害璋冩暣鍛ㄦ湡鏄浠涔堟寲鐭塊毦搴︽槸浠涔堝唴瀹逛粙緇嶅悗,鐩鎬俊澶у朵細瀵規寲鐭塊毦搴﹁皟鏁村懆鏈熸槸浠涔堟寲鐭塊毦搴︽槸浠涔堟湁涓瀹氱殑浜嗚В,鏇村笇鏈涘彲浠ュ逛綘鏈夋墍甯鍔┿

③ 自學區塊鏈(六)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裡面有難度的一個壓縮編碼,修改難度產生的結果是不會被誠實的節點認可的。

④ 浠ュお鍧婃寲鐭跨殑闅懼害鏄濡備綍璁$畻鐨


浠ュお鍧婃寲鐭跨殑闅懼害鏄濡備綍璁$畻鐨勶紵
浠ュお鍧婃槸鐩鍓嶆瘮鐗瑰竵浠ュ栨渶涓虹煡鍚嶇殑鍔犲瘑璐у竵涔嬩竴錛屽叾鐭垮伐鍙浠ラ氳繃鎸栫熆鑾峰緱浠ュお甯併傜劧鑰岋紝浠ュお鍧婃寲鐭跨殑闅懼害鏄濡備綍璁$畻鐨勫憿錛
鎸栫熆鏄姒傚康鎬х殑銆傜熆宸ョ殑鐩鏍囨槸瑙e喅瀵嗙爜闅鵑橈紝浠ヨ幏寰楁柊鐢熸垚鐨勫潡騫惰幏寰椾竴瀹氭暟閲忕殑浠ュお甯佸栧姳銆傝屼互澶鍧婃寲鐭跨殑闅懼害涓昏佹槸鐢變互涓嬩袱涓鍥犵礌緇煎悎鍐沖畾鐨勩
棣栧厛錛屾寲鐭塊毦搴﹀彇鍐充簬姣忎釜鍧椾腑鍖呭惈鐨勪氦鏄撴暟閲忋傛瘡涓鍧椾腑鍖呭惈鐨勪氦鏄撴暟閲忚秺澶氾紝鍏惰В鍐崇殑瀵嗙爜闅鵑樺氨瓚婂嶆潅錛屾寲鐭塊毦搴︿篃灝辮秺澶с傝繖涓鐐逛笌姣旂壒甯佺被浼礆紝姣旂壒甯佺殑鎸栫熆闅懼害涔熸槸鏍規嵁姣忎釜鍧椾腑鍖呭惈鐨勪氦鏄撴暟閲忔潵璁$畻鐨勩
鍏舵★紝浠ュお鍧婇噰鐢ㄤ簡鍚嶄負鈥滆皟鏁存寲鐭塊毦搴︹濈殑鏈哄埗鏉ョ『淇濇寲鐭塊熷害鍜岀綉緇滃畨鍏ㄣ傝ユ満鍒舵牴鎹涓婁竴涓鍧楃殑鎸栫熆鏃墮棿鏉ヨ皟鏁存寲鐭塊毦搴︼紝浠ヤ繚鎸佹瘡涓鍧楄瑙e喅鐨勬椂闂村ぇ綰︿負15縐掋傚傛灉鍧楃殑鎸栫熆鏃墮棿浣庝簬15縐掞紝闅懼害灝嗚嚜鍔ㄥ炲姞錛屽弽涔嬪垯浼氬噺灝戙
璋冩暣鎸栫熆闅懼害鐨勬満鍒跺彲浠ョ『淇濅互澶鍧婄殑鎸栫熆閫熷害濮嬬粓淇濇寔紼沖畾錛屼粠鑰岄伩鍏嶄簡鎸栫熆閫熷害榪囧揩鎴栬繃鎱㈢殑鎯呭喌銆傚悓鏃訛紝涔熶嬌寰椾互澶鍧婄綉緇滄洿鍔犲畨鍏錛屽洜涓轟換浣曟伓鎰忕熆宸ラ兘鏃犳硶閫氳繃鍗曠嫭鎿嶄綔鏉ョ牬鍧忚ユ満鍒躲
鎬葷殑鏉ヨ達紝浠ュお鍧婃寲鐭塊毦搴︾殑璁$畻鏄緇煎悎鑰冭檻姣忎釜鍧椾腑鍖呭惈鐨勪氦鏄撴暟閲忓拰璋冩暣鎸栫熆闅懼害鏈哄埗鏉ュ疄鐜扮殑銆傝繖縐嶈$畻鏂瑰紡紜淇濅簡浠ュお鍧婄綉緇滅殑紼沖畾鍜屽畨鍏ㄦэ紝鍚屾椂涔熶繚璇佷簡鐭垮伐鐨勬敹鐩婂拰鏁翠釜紺懼尯鐨勮繍浣溿

⑤ 一枚比特幣賣$64015,家用電腦24小時挖礦,多久才能挖到一枚

從理論上來講,任何一台可以運轉的計算機安裝相應軟體後即可成為「挖礦機」,這意味著任何擁有電腦的人也都是潛在的礦工。

很多人可能覺得比特幣挖礦很容易,只需要下載一個軟體,然後在電腦上運行就行了,就像運行炒股軟體一樣,在這只能說大家是異想天開。

事實上按照目前比特幣的挖礦難度來看,普通的家庭電腦根本就吃不消,比特幣挖礦其實就是在運算,這種特定的演算法是基於加密哈希演算法的數學難題,想要解開這一數學難題,則需要這台用於挖礦的計算機具備極強的數據處理能力。

在幾年前比特幣挖礦難度比較低的時候,家庭電腦或許還可以用到,在最開始的時候,確實有不少人用家庭電腦挖到比特幣了。

但是隨著比特幣挖礦難度越來越大,它所消耗的運力越來越多,特別是最近一段時間,有大量的人群加入到挖礦當中,挖礦的速度比較快,這進一步加大了挖礦的難度。

比特幣平均下來大約每十分鍾產生一個新區塊,每一個新區塊都伴隨著一定數量從無到有的全新比特幣,每開采210,000個塊,大約耗時4年,貨幣發行速率降低50%。

而未了達到平均每10分鍾產生一個新區塊的平衡,挖礦難度在每2016個區塊之後或大約每14天增加或減少一次,具體難度是增加還是減少主要取決於發現之前2016個區塊的速度。如果之前的2016年區塊發現時間少於14天,則難度增加,而如果發現時間超過14天則難度降低,目標是將平均區塊發現時間恢復到10分鍾。

而按照最近一段時間參與挖礦的人數來看,事實上發現2016個區塊的速度可能要小於14天,這意味著越往後面挖礦難度越大。

如果中本聰把比特幣換成法幣,需要他的銀行賬號去接收法幣,這家銀行將有一批人知道中本聰的真實身份,在這種情況下,我認為全員保守秘密是不可能的,一定會有人通過某種方式將信息泄露出來。這就意味著中本聰完全暴露在世人面前,中本聰長期以來保持匿名的努力毀於一旦。

這么多年來,有無數人聲稱自己是中本聰,最終沒人能證明自己就是中本聰。而他們想證明自己也很簡單,用中本聰的地址交易1美元即可。

當然,如果中本聰想把比特幣換成其他加密貨幣,是不會暴露身份的,但這樣做的意義是什麼?他是比特幣世界的上帝,不是以太坊世界的上帝, 一個上帝不能背叛自己的世界

更進一步思考,中本聰為什麼要把比特幣換成美元?在白皮書里,中本聰對比特幣的定義是一種「電子現金系統」,毫無疑問他的理想是比特幣終有一天變成全世界都認可的「錢」。 如果比特幣真成了錢,比美元更普適的錢,還需要換成美元嗎?

我們不如去思考一些更有趣的問題,比如:我們讓比特幣漲到多少,能幫助中本聰成為真正的世界首富?

中本聰的身份,是比特幣世界最大的謎團,是構成一個好故事不可缺少的一環。我經常會猜想,如果我是中本聰,我會怎麼做,我的目標是什麼,我要解決什麼問題,等等。思考越多,就發現這個故事越有趣, 有趣程度甚至不輸給比特幣本身

#比特幣[超話]# #數字貨幣# #歐易OKEx#

⑥ 什麼是比特幣挖礦難度如何調整原理是什麼

比特幣挖礦難度(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 分鍾調整一次),有明顯的滯後性。你認為是哪種調整方式更合理呢?為什麼呢?歡迎在留言區分享你的觀點。

⑦ 挖礦難度表示

比特幣的挖礦難度可以使用Target Threshold,nBits或Difficulty表示,它們互相等價:

這三個值的轉化關系可以採用下面的實例來說明:

首先獲取哈希值為 的區塊原生十六進制信息如下:

區塊中nBits採用小端格式表示,解析區塊信息,得到nBits欄位值為0x4c86041b。因此轉化為大端格式為0x1B04864C,這個值是Target Threshold的壓縮格式表示,可以將它轉化成256位的Target Threshold值:

開頭的一個位元組為指數,後面三個位元組為系數,則:

計算出Target Threshold值為 。

再計算Difficulty的值,它有兩個值,計算公式分別為:

由此可以使用 Python 計算出bdiff的值:

因此,得到在比特幣客戶端中的difficulty值bdiff為14484.162361225399。

為了檢驗上述結果,可以在比特幣核心客戶端中使用 getblock "" 命令得到該區塊的json格式信息:

最終,可以發現該區塊的bits和difficulty欄位信息與上面分析計算的相關結果一致。

nBits的大端格式表示法中,其系數最大為0x7fffff,這是因為Target Threshold數據類型是無符號整型,而它繼承自有符號數據類,則在實際中Target Threshold系數的最高位有可能是1,這可能會被解析成一個負數。則在挖礦過程中難度值永遠無法小於一個負數。因此,為了解決這個問題,比特幣核心在生成nBits值時需要首先檢查一下生成的nBits是否會被解析為一個負數。如果是,首先在系數開頭補8位0,即除以256,然後指數再加上1。這樣由nBits轉化為Target Threshold過程中轉化公式就與普通值相同了,即指數位都是減去3,轉化過程上面已經提到。

舉個例子說明:

哈希值為 的區塊信息如下:

發現bdiff值為1,則利用bdiff與Target Threshold關系可以計算出:

將Target Threshold值 轉化為nBits的過程中可以發現其系數為0xffff00,指數為0x1c,這樣:

然而由於系數最高位為1,則如果這樣表示的話就可能將Target Threshold解析為負數。因此,我們將系數除以256,指數加上1,得到系數為0x00ffff,指數為0x1d。這樣:

最終,nBits值為0x1d00ffff(大端表示),與json格式信息一致。

⑧ 涓轟粈涔堝叏緗戠殑璁$畻鑳藉姏涓婂崌,鎸栫熆闅懼害浼氬炲姞鍛

涓銆佷負浠涔堝叏緗戠殑璁$畻鑳藉姏涓婂崌,鎸栫熆闅懼害浼氬炲姞鍛?

榪欎釜榪樻槸姣旇緝濂界悊瑙g殑錛屽叏緗戠殑璁$畻鑳藉姏涓婂崌錛岃В寮姣忎釜hash鍊肩殑閫熷害灝變細鍙樺揩錛屼絾鏄浜х敓鍖哄潡鐨勬椂闂翠笉浼氬彉錛屾墍浠ユ寲鐭跨殑闅懼害灝變細鎻愬崌銆
鐜板湪鐨勬寲鐭垮叾瀹炲凡緇忓彉寰楀緢闅句簡 錛屽ぇ澶氭暟鐨勭敤鎴峰凡緇忛噰鐢ㄦ樉鍗$熆鏈+鍝堥奔鐭垮伐鐨勬柟寮忔寲鐭誇簡錛

浜屻佷互澶鍧婏紝鍏ㄧ綉綆楀姏澧炲姞錛屽叏緗戦毦搴︿篃浼氬炲姞錛屾樉鍗℃寲鐭胯繕鑳界帺澶氫箙錛

鐜板湪浠ュお鍧婃e湪閫愭ヤ粠pow杞鍒皃os錛屽湪涓嶄箙鐨勬湭鏉ワ紝鑰楄垂鐢靛姏銆佺畻鍔涚瓑璧勬簮鐨勫尯鍧楅摼鎸栫熆欏圭洰浼氶愭ヨ緇胯壊鐜淇濆拰鏇寸戝︺侀槻閲忓瓙鏆村姏鐮磋В鐨勬寲鐭挎柟寮忔墍鏇誇唬銆傜幇鍦ㄧ殑鍖哄潡閾鵑」鐩涓錛岀豢鑹茬幆淇濈殑欏圭洰宸茬粡濡傞洦鍚庢槬絎嬭埇鍐掑嚭鏉ワ紝姣斿侾i鈥旀墜鏈烘寲鐭垮紑鍒涜咃紝浼氭湁瓚婃潵瓚婂氱殑浜鴻佽瘉鏂板尯鍧楅摼鐨勮癁鐢熷拰鎴愰暱錛

浠ュお鍧婂湪涓涓ゅ勾鍐呬細榪涘寲鍒2.0鐗堟湰錛屽眾鏃朵細杞鍙樻寲鐭跨殑鏂規硶銆

綆鑰岃█涔嬪氨鏄2.0鍑烘潵浠ュ悗灝變笉鑳界敤鏄懼崱鎸栫熆浜嗭紝浣嗘槸浠1.0鎱㈡參榪囨浮鍒2.0涔熼渶瑕佷竴孌墊椂闂達紝鎵浠ヤ篃涓嶇敤澶鎱屻

鎴戜滑榪涘叆榪欎釜甯傚満鏄鏉ヨ禋閽辯殑錛屾寲鐭誇細鑰楄垂鏇村ぇ鐨勮祫閲戜互鍙婄簿鍔涳紝璧氱溂鍓嶈ヨ禋鐨勯挶錛屾妸閽辮禋鎵嬮噷榪欐墠鏄紜閬撶悊銆傜洰鍓嶈秼鍔誇笉閿欐嘗孌電煭綰垮楀埄錛岃禋鐫榪欎箞棣欐妸鐪煎墠璇ユ敹鑾風殑璧氬埌鍏滈噷錛岃嚦浜庢寲鐭胯兘鎸栧氭枻錛岃蛋IU涓姝ヨ翠竴姝

熱點內容
以太坊幣圈信息預測 發布:2024-11-17 23:13:49 瀏覽:291
最新手機挖礦軟體下載 發布:2024-11-17 23:04:22 瀏覽:512
禁比特幣平台 發布:2024-11-17 22:31:16 瀏覽:286
區塊鏈pdf新浪博客 發布:2024-11-17 22:27:48 瀏覽:531
eth要轉成pos還要等6年 發布:2024-11-17 22:21:49 瀏覽:960
重啟linuxeth0 發布:2024-11-17 22:09:55 瀏覽:975
usdt的trc20是什麼 發布:2024-11-17 21:49:18 瀏覽:564
shib幣首發在哪個平台 發布:2024-11-17 21:28:28 瀏覽:664
比特幣工資演算法 發布:2024-11-17 21:19:48 瀏覽:836
挖礦原理效益 發布:2024-11-17 21:12:20 瀏覽:959