Я просто есть некоторые идеи для нового формата заголовка блока.
Цели:
1. Существующие СИС должны выжить новый формат. В противном случае, шахтеры не согласится обновить
2. Для того, чтобы предоставить больше информации, содержащейся в заголовке
3. Включите высоту в заголовке, чтобы мы могли иметь монотонный индикатор в заголовке.
4. Заголовки не слишком большой для SPV клиентов
Чтобы архивировать все эти цели будет нужен был hardfork
Заголовок будет иметь следующие поля:
1. вариант (2): целое число без знака. Голосование перемещается в coinbase. 65536 версии должны быть достаточно навсегда.
2. prev_block (32): хэш предыдущего блока
3. merkle_root (32): Корень Merkle сумма дерева за отдельную плату, размер TX, рассчитывает sigop, и т.д., так что компактные доказательства могут быть получены для этих параметров.
4. метка времени (5): целое число без знака. Достаточно для >34000 лет.
5. одноразовое значение (9): В то время как 1-я / с шахтером исчерпает 5 байт нонса в 1 секунду, мы не будем нуждаться в более одноразовое значение, пока шахтеры не станут 4 млрд раз быстрее. (Текущий СИС всего 1 миллион раз быстрее, чем процессор, поэтому мы принимаем около >1018 раз быстрее, чем текущий процессор. Это может произойти только в том случае SHA256 частично трещины, но тогда нужен другой алгоритм)
6. coinbase (varint): coinbase станет частью заголовка, который включает в себя:
6а. высота (4 в настоящее время): так же, как BIP34, потребляют 4 байта на следующие 300 лет.
6b. биты (4): мишень в компактной форме
6с. произвольные данные: голосование за вилочные предложения, слияние горнодобывающей промышленности, и т.д.
Максимальный размер заголовка в начале 160 байт, что позволит 160-2-32-32-5-9-1#-4-4 = 71 байт произвольных данных.
(#Чтобы вычислить размер заголовка, индикатор длины для coinbase также считается)
Максимальный размер заголовка допускается удваиваться каждые 4 года, с тем больше информации можно было бы включить в будущем.
Блок хэш рассчитывается следующим образом:
d-SHA256 (версия | prev_block | d-SHA256 (merkle_root | coinbase*) | Отметка времени | нонс)
(* без индикатора длины)
Таким образом, изменение является прозрачным для существующего СБИСА, потому что они все еще думают, что они хэширование заголовка 80-байт.