Сложность или цель подразумевается историей цепочки, так почему же это должно быть явно указано в заголовке? Я предполагаю, что это раскрывает предполагаемую трудность майнера, но я не понимаю, почему это было бы актуально без контекста цепочки.
Таким образом, он, по-видимому, представляет избыточные данные в заголовке, если только нет каких-либо исторических причин для такого выбора дизайна?
Они действительно не нужны. Причина, по которой они включены, может быть известна только Сатоши, и, насколько мне известно, он не указал, почему он решил включить nBits в заголовок блока (или многие другие вещи, которые просто произвольны). Это одна из многих вещей, которые Сатоши решил сделать, и никто не знает, почему. Сегодня он остается в заголовке блока, потому что для его удаления потребовался бы хард-форк, и на самом деле от его удаления не было бы большой пользы.
Поле nBits может быть полезным, и, вероятно, оно было включено для удобства. Вместо того, чтобы иметь полную историю цепочки, чтобы узнать текущую сложность, вы можете вместо этого посмотреть на nBits. Но это всего лишь предположение, и полные узлы не используют nBits для определения текущей сложности (за исключением узлов генезисного блока).
Непосредственная фиксация nbits позволяет вам определить, сколько работы было использовано для создания заголовка без сохранения состояния, прежде чем искать (или получать) информацию о предыдущих заголовках.
Это может помочь отразить DOS-атаки, отправляющие ненужные заголовки, чтобы заставить вас выполнять работу по определению или извлечению их предков.
Джеймс С.
Нейт Элдридж
Джеймс С.
Нейт Элдридж
Джеймс С.