Block-Header

關於比特幣標頭格式的查詢

  • August 15, 2021

我是比特幣的新手,還在學習,所以請多多包涵。當我閱讀比特幣塊頭(在其上計算塊雜湊)應該是:

  • 散列 - 32 字節
  • 見 - 4 字節
  • prev_block - 32 字節
  • mrkl_root - 32 字節
  • 時間 - 4 個字節
  • 位 - 4 字節
  • 隨機數 - 4 字節

(來源:https ://www.oreilly.com/library/view/mastering-bitcoin/9781491902639/ch08.html )

現在,當我檢查最新的塊之一時,這些欄位是:

  • 雜湊:000000000000000000009ec0aa4de1488fa1ea7a5196447016b2fe1638df99e62
  • 版本:545259524
  • 上一個區塊:0000000000000000000073a6f31eaeeaaf09e21331450e424426818699356c54
  • 默克爾根:09f73d4315fcff0f7ef126a321e8ea478a9bab26c6aa6d45c187a0fcb313fab8
  • 時間:1629026224
  • 位:387061771
  • 大使:1150639194

(來源:https ://blockchain.info/rawblock/695877 )

Version、Time、Bits 和 Nonce 欄位的大小似乎不匹配。我在這裡解釋錯了什麼。

而且我不清楚版本欄位。有哪些不同的選擇。假設作為一名礦工,如果一個人執行一個量身定制的自編碼程序,它的價值應該是什麼?對於一個只會開採一個新區塊的礦工來說,這有什麼關係?該欄位是否有預設安全值?

如果有人可以指出一個解釋版本(對於初學者來說足夠簡單和全面的東西),那會很有幫助?

我會從

  • <https://developer.bitcoin.org/reference/block_chain.html>和
  • <https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki>和
  • <https://bitcoincore.org/en/2016/06/08/version-bits-miners-faq/>

上面的第一個參考說

在撰寫本文時,正在設計一種名為 version bits 的新方法來管理未來的軟分叉更改,儘管尚不清楚版本 4 是否將是最後一個使用 IsSuperMajority() 函式的軟分叉。BIP9 草案描述了撰寫本文時的版本位設計,儘管它仍在積極編輯中,並且在草案狀態下可能會發生重大變化。

第二個參考開始

本文件規定了對比特幣塊中“版本”欄位語義的擬議更改,允許並行部署多個向後兼容的更改(進一步稱為“軟分叉”)。它依賴於將版本欄位解釋為位向量,其中每個位都可用於跟踪獨立的更改。這些在每個重新定位期間進行統計。一旦共識更改成功或超時,就會有一個“閒置”暫停,之後該位可以重新用於以後的更改。

第三個參考文獻以更簡單的方式解釋了這一點。AFAIK 每一位都表明礦工準備好接受目前的軟分叉提議。

例如十進制 545259524 是十六進制 0x20800004 或二進制 00100000100000000000000000000100

因此設置了額外的兩個位(0x20 中的第一個是標準 AIUI),因此準備好了兩個軟分叉信號。

我不知道有一個網頁可以跟踪目前位的含義,將位連結到相關的 BIP。<https://github.com/bitcoin/bips/blob/master/bip-0009/assignments.mediawiki>對我來說似乎已經過時了。

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