Какой максимально возможный размер блока после активации Segwit?

Код говорит MAX_BLOCK_SERIALIZED_SIZE = 4000000, но на самом деле это не правило консенсуса, как указано здесь:

https://github.com/bitcoin/bitcoin/issues/10289

Фактическое правило консенсуса основано на MAX_BLOCK_WEIGHT, что также равно 4000000. Мне неясно, какой минимальный вес может иметь транзакция p2wpk или p2wsh. В частности, каково наилучшее соотношение размера/веса сериализованного свидетеля, которое может иметь транзакция после активации SegWit?

Это должно ответить на вопрос, каков максимальный размер блока, возможный после активации SegWit.

Ответы (1)

Максимальный размер блока составляет 4 000 000 байт (4 МБ). Это связано с вычислением веса блока base size (in MB) * 3 + total size (in MB) = block weight( см. BIP 141 ). Поскольку единственными единицами являются МБ, единственными единицами веса блока также являются МБ, поэтому максимальный размер блока равен весу блока.

Наилучшее соотношение размера и веса, которое я могу придумать, — это транзакция, которая также тратит вывод P2WSH, который имеет нелепый сценарий погашения. А еще есть транзакция coinbase и заголовок блока. Свидетель был бы 4000000 - 240 * 3 - 240 = 3999040. Итак, в свидетеле 3999040 байт. Тогда общий размер блока равен 3999040 + 240 = 3999280 bytes.

Транзакции Coinbase не могут ничего тратить.
Все. Я думал, что в прошлом была монетная база, которая тратила монеты. Думаю, я ошибаюсь.
Включается ли в расчет 80-байтовый заголовок блока?
Я почти уверен, что это так.
Общий размер и базовый размер включают данные, не являющиеся свидетелями? То есть некоторые байты учитываются дважды? Это означает, что блок размером 4 МБ будет невозможен.
@PieterWuille правильный ответ 4 МБ? Не будет ли он меньше, потому что «общий размер» и «базовый размер» ОБА включают одни и те же данные, не являющиеся свидетелями? При вычислении веса блока (с Max 400000) некоторые байты учитываются дважды, блок размером 4 МБ невозможен.
Теоретически вы можете довольно близко приблизиться к 4M, имея транзакции, которые почти полностью состоят из данных свидетелей. На практике этого не произойдет для обычных финансовых транзакций, ближе к 2M.
@PieterWuille это ошибка измерять вес в байтах? (или МБ)