比特幣挖礦計算公式叫做
難度是對挖礦困難程度的度量,即指:計算符合給定目標的一個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天
2. 比特幣挖礦到底是在計算什麼
專業的說,是在算哈希值SHA-256。如果不懂計算機的話,簡單地說,就是算一些沒有意義的隨機數,誰的隨機數被比特幣區塊鏈接受了,誰就有錢拿。所以比特幣計算除了賺錢之外,其實並沒有任何實際作用。如果這些算力用來做科學計算,真的可以做很多事情,但是沒辦法,誰讓比特幣賺錢啊
3. 比特幣怎麼樣運算
比特幣怎麼運算的
比特幣是一種基於密碼學原理的數字貨幣,其運算主要涉及到加密演算法和分布式計算的技術。
比特幣的運算過程主要包括以下幾個步驟:
1.生成公私鑰對:比特幣使用橢圓曲線加密演算法(ECDSA)生成公私鑰對,其中私鑰用於簽名交易,公鑰用於驗證簽名。
2.生成交易信息:交易信息包括發送者地址、接收者地址、轉賬金額等信息,用於描述比特幣的交易過程。
3.驗證交易信息:將交易信息加上時間戳、發送者公鑰、哈希等信息,組成交易記錄,並通過網路廣播給其他節點驗證。
4.挖礦計算:比特幣的挖礦是指將交易記錄打包成區塊並添加到區塊鏈中的過程。挖礦過程需要進行一系列的計算,包括哈希計算、難度計算等,這些計算需要通過分布式計算來完成。
5.獲得區塊獎勵:完成挖礦的節點可以獲得一定的比特幣獎勵,同時也可以獲得交易手續費作為獎勵。
總之,比特幣的運算主要涉及到加密演算法、分布式計算、哈希計算等技術,需要通過多個節點協同完成,確保交易記錄的安全和可靠性。
4. 挖礦難度表示
比特幣的挖礦難度可以使用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格式信息一致。
5. 如何計算比特幣成本誰曉得
大概費用在25000 人民幣左右,一台螞蟻礦機價格12000,每天產出0.0011506個比特幣,產出一個需要869天,消耗電費13000
根據比特幣產量減半,礦機價格和折舊,電費不同,成本也在波動
目前比特幣的價格是73000人民幣(截止到2019年8月16號)
6. 姣旂壒甯佺幇鍦ㄧ殑鎸栫熆鎴愭湰鏄澶氬皯鎬庝箞璁$畻
濡傛灉璇寸熆鏈24灝忔椂閮藉湪宸ヤ綔錛岃佹寲1涓狟TC錛岄偅涔堝氨瑕佹湁17.128P鐨勭畻鍔涖傚姞榛戣壊涓鍙拌殏鋩丼9 鏄13.5T鐨勭畻鍔涖傞偅涔堜箙闇瑕1300鍙皊9錛岃繖浜涚熆鏈24灝忔椂鍙浠ユ寲1涓狟TC錛屽傛灉鏀圭寽鍦嗘槸涓鍙皊9宸ヤ綔24灝忔椂錛岄偅涔堜箙闇瑕1.35*24=32.4搴︾數*1300鍙=42120搴︾數*0.6鍏冧竴搴=25727錛屽氨鐩鍓嶇殑闅懼害鏉ョ湅鐨勮瘽錛岄渶瑕佹嫢鏈17.128P鐨勭畻鍔涙墠鑳芥寲涓涓甯併
鎴戜滑閫氳繃浠ヤ笂鏍稿屽叧浜庢瘮鐗瑰竵鐜板湪鐨勬寲鐭挎垚鏈鏄澶氬皯鎬庝箞璁$畻鍐呭逛粙緇嶅悗,鐩鎬俊鍏嗗渾澶у朵細瀵規瘮鐗瑰竵鐜板湪鐨勬寲鐭挎垚鏈鏄澶氬皯鎬庝箞璁$畻鏈変竴瀹氱殑浜嗚В,鏇村笇鏈涘彲浠ュ逛綘鏈夋墍甯鍔┿
7. 關於比特幣計算
merkle_root是上一塊區塊計算過程中,此節點記錄下的交易記錄所計算出來的根。此節點在進行新的一塊區塊計算的時候,交易記錄已經是固定不會變化的了(然而merkle_root的值還會變,詳情看3.)。所以說其實某節點在進行一塊區塊的計算時,它接收並承認的交易記錄會用在下一個區塊的計算中。
ntime表示節點記錄下來的交易記錄的打包時間,近似等於節點收到上一個區塊計算完畢廣播的時間(可以有微小差別,ex.前後若干秒),是固定值。
merkle_root對應的交易記錄中,第一筆交易記錄一定是向自己支付挖礦獎勵的創幣交易(coinbase),而創幣交易可以加入一段自定義的附加文字。這個添加的附加文字(也就是說merkle_root會因為不同附加文字而變化)提供了挖礦計算公式中x的所有2^32種可能性以外的更多的組合。
8. 請問比特幣挖礦的原理是什麼
比特幣挖礦是利用計算機硬體為比特幣網路做數學計算進行交易確認和提高安全性的過程。