Mining-Theory

礦工多久重新計算一次他們正在研究的默克爾根?

  • February 21, 2016

我認為我了解了有關比特幣的大部分內容,但仍有一個謎團。

我們可以在<https://blockchain.info/>上看到每秒最多有 4/5 個新交易。我的問題是:礦工每秒重新計算 Merkle 根 4 到 5 次嗎?與一個塊被釋放的同時進行的交易會發生什麼?

我已經看到礦工可以選擇他們想要接受的交易,但如果是這樣的話,我會成為一名礦工,然後接受 2 或 3 筆交易,找到隨機數並獲得 25 個比特幣獎勵。為什麼這是不可能的?

非常感謝您的回答,希望您能幫助我。謝謝你。

每秒鐘確實有很多新的交易。礦工處理它的方式有兩個:

  1. 如果在任何 merkle 根上找到適當的工作量證明,只需發布該區塊,任何未進入區塊的交易都會進入下一個區塊(假設有足夠的費用)
  2. 否則,每隔一段時間計算一個新的 merkle 根(每個礦工不同,但我們假設它是 5 秒)並嘗試計算包含交易的工作量證明。

礦工不只接受 2 或 3 筆交易的原因是,無論是 1 筆交易還是 1000 筆交易,找到工作量證明的 nonce 都是一樣多的工作。機率保持不變。作為礦工包含更多交易的好處是您可以從中獲得更多的挖礦費用。

查看塊頭中的欄位,nonce 欄位是一個 32 位整數。這意味著隨機數是 0 到 4,294,967,295 範圍內的整數。正如您所指出的,只有現成 GPU 的礦工可以在不到一秒的時間內輕鬆計算出這個雜湊值。

在比特幣早期,當難度要求遠低於現在時,礦工會挖出一堆交易,取 Merkle Root,以目前時間為時間戳,創建頭部,然後遍歷範圍隨機數 - 他們很有可能找到一個隨機數(當與標題中的其餘資訊結合時)產生滿足難度要求的 SHA256 雜湊。

但是現在,隨著難度要求越來越高,礦工找到一個隨機數的機會非常小價值觀。因此,他們必須再次嘗試,通過更改標頭中的其他內容(例如時間戳,或塊中的交易),然後再次遍歷隨機數值的範圍,希望找到滿足難度要求的值。這個過程重複了很多次,直到最後一個礦工找到頭資訊和隨機數的獲勝組合,產生一個滿足難度要求的雜湊——按照設計,這應該大約每 10 分鐘發生一次。

引用自:https://bitcoin.stackexchange.com/questions/41548