Difficulty

目標的緊湊表示是否有理由?

  • August 4, 2017

在比特幣中,目標是一個 256 位無符號整數,使用類似於 32 位浮點的緊湊表示儲存,具有以下參數:

  • 1個符號位(有什麼用嗎?)
  • 偏移量為二進制 3 的 8 位指數(為什麼?)
  • 基數 256(使用這個基數,指數不能長 5 位嗎?根據定義,最大目標設置為 2^224 - 1 = 256^28 - 1)

看起來該格式是為比特幣目標以外的其他目的而設計的,並且在程式碼中未經修改就使用了。

如果您想首先說明為什麼要使用緊湊表示的理由:大概不要浪費塊頭中的空間。我們現在知道,根本不需要將目標儲存在塊頭中(頭優先同步不需要它),但在此之前,某些 DoS 保護需要它。

特定的選擇確實有點奇怪。符號位當然是不必要的,而且範圍似乎有點偏離。但是,對於簡單的通用 32 位浮點數來說,這並不是一個糟糕的選擇。

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