Отчёт о размере блоков
Cover

Отчёт о размере блоков

4 февраля 2025 г.

Аналитический отчёт, основанный на данных, который показывает, как рост размера блока был частично ограничен политикой майнеров и настройками по умолчанию в Bitcoin Core.

Отчёт подготовлен @orangesurfbtc для mempool research. Данные получены с использованием Mempool Enterprise. Перевод Tony⚡️

Поддержать проект

Рады приветствовать вас на страницах свежего исследовательского отчёта Mempool Space. В этом отчёте мы рассмотрим, как со временем менялся размер и заполняемость биткоин-блоков. Мы изучим влияние обновления SegWit на размер блока и оценим, как будет развиваться блокчейн Биткоина в ближайшие годы.

Резюме #

Этот отчёт рассматривает эволюцию размера блока в сети Биткоин с момента создания сети до февраля 2025 года. Наш анализ показывает, что распространённое мнение о том, что рост размера блока ограничен исключительно консенсусным лимитом в 1 МБ, является неполным. Напротив, настройки, выставленные по умолчанию в Bitcoin Core и параметры, выбираемые майнерами, сыграли значительную роль в ограничении размера блоков, часто удерживая их ниже уровня спроса на транзакции.

Далее мы анализируем, как изменился размер блоков после SegWit, а также как с января 2023 года по февраль 2025 года наблюдалась высокая загруженность блочного пространства. Это было вызвано постоянной перегруженностью мемпула и появлением Inscriptions, что привело к заметному увеличению темпов роста блокчейна.

Мы также представляем новый воспроизводимый метод выявления перегруженности мемпула и событий его очистки, а также прогнозируем, как изменится размер блокчейна в ближайшие годы.

Введение в размер блока Биткоина #

В блок Биткоина входит его заголовок и включённые в него транзакции.

Заголовок блока имеет фиксированный размер 80 байт и включает в себя следующие поля:

ПолеРазмер (байты)Описание
Версия4Номер версии блока.
Предыдущий блок32Хеш предыдущего блока.
Корень Меркла32Уникальный идентификатор всех транзакций, включенных в блок.
Время4Текущее время в формате Unix timestamp.
Bits4Компактное представление текущей целевой сложности.
Nonce4Количество транзакций в компактном формате. Число включённых в блок транзакций.

Пример #

Заголовок блока 210 000, ознаменовавшего первое уменьшение награды за майнинг (халвинг), выглядит следующим образом в шестнадцатеричном виде:

00000002 000000000000048b95347e83192f69cf0366076336c639f9b7228e9ba171342e 982051d8 f2b9441a 42a14695

Разберём его по частям:

  1. Версия (4 байта): 00000002

  2. Хэш предыдущего блока (32 байта): 000000000000048b95347e83192f69cf0366076336c639f9b7228e9ba171342e

  3. Корень дерева Меркла (32 байта): 982051d8

  4. Временнáя метка (4 байта): f2b9441a

  5. Биты, указывающие целевую сложность (4 байта) 42a14695

  6. Нонс (4 байта) 42a14695


Количество транзакций: поле, отображающее количество транзакций в блоке, варьируется по размеру: один байт используется для хранения до 252 транзакций, трёх байт достаточно для хранения до 65 535 транзакций.

Наибольшее количество транзакций за всю историю было в блоке 367853, уместившем 12 239 транзакций).

Размер набора транзакций: размер каждой транзакции зависит от множества факторов, включая количество входов и выходов, используемый тип скрипта, locktime транзакции и любые данные свидетеля (об этом позже).

Типичная транзакция, как правило, занимает не меньше 226 байт (см. калькулятор размера транзакции), что означает, что набор транзакций обычно занимает намного больше места в блоке, чем другие данные.

ЭЛЕМЕНТРАЗМЕР (БАЙТЫ)
Заголовок блока80
Количество транзакций1-3
Размер набора транзакцийВарьируется

Любое ограничение размера блока влияет на размер и количество транзакций, которые майнеры могут включить в блоки.

Консенсусные ограничения #

История консенсусного ограничения размера биткоин-блоков довольно прямолинейна.

  • В первой версии (0.1.0) существовало фактическое ограничение в 32 МБ из-за лимита на размер сетевых сообщений, но явного ограничения на размер блока не было.

  • В июле 2010 года Сатоши без публичного обсуждения добавил жёсткое ограничение в 1 МБ.

  • После активации софтфорка пользователи начали обсуждать возможные изменения лимита в 1 МБ (подробнее см. в книге “Война за размер блока” Джонатана Бира).

  • Ограничение в 1 МБ оставалось в силе до активации софтфорка SegWit в августе 2017 года, когда ограничение размера блока в 1 МБ было заменено на ограничение “по весу” в 4 мега единицы веса (MWU).

ВЕРСИЯВЫСОТА БЛОКАДАТАЛИМИТ ПРОСТРАНСТВА БЛОКА
0.1.0Генезис3 января 2009Лимит сетевого сообщения 32 МБ
0.3.2Примерно 68 95119 июля 2010Добавлено жёсткое ограничение 1 МБ
-481 82424 августа 2017Лимит веса блока 4 MWU

Вес блока рассчитывается путём масштабирования размера транзакций (в байтах).

  • Данные свидетеля (подписи) учитываются как 1 единица веса за байт.

  • Остальные данные транзакции учитываются как 4 единицы веса за байт.

Это увеличило максимальный размер блока до 4 MWU (подробнее об увеличении размера блока читайте здесь).

Историческая эволюция размера блока #

Общепринятое мнение заключается в том, что (до SegWit) средний размер блока увеличивался по мере роста числа пользователей и количества транзакций до тех пор, пока не достиг жёсткого ограничения в 1 МБ, после чего блоки не могли становиться больше.

Если построить медианный размер блока за 5000 блоков, можно увидеть, что в целом это так.

Медианный размер блока увеличивался до блока 400 000, когда был достигнут консенсусный лимит 1 МБ — примерно за 1,5 года до активации SegWit в блоке 481 824. После введения SegWit размер блоков постепенно увеличивался, хотя сначала наблюдалось временное снижение.

Анализ скользящего максимального размера блока показывает, что блоки начали достигать предела в 1 МБ задолго до блока 400 000. Впервые это произошло в блоке 228 538 — за 4,5 года до активации SegWit. Кроме того, значительное увеличение максимального размера блока произошло около блока 770 000 (это будет рассмотрено далее).

Скользящий максимум размера блока до и после SegWit

Размер первого блока, достигшего лимита размера, равнялся 0,998 МБ.

Разбив данные на четрые категории (квартиль) и проанализировав их по отдельности, мы заметили существенные колебания размеров блоков, которые постепенно сокращались до момента активации SegWit, после чего вариация размеров снова резко возросла.

ПОКАЗАТЕЛЬДОСТИЖЕНИЕ ЛИМИТА 1МБВЫСОТА БЛОКАВРЕМЯ ДО SEGWIT
Любой блокДа228 538За 4,5 года до SegWit
Скользящий максимумДа~310 000За 3 года до SegWit
Верхний квартильДа~400 000За 18 месяцев до SegWit
Медианный размерДа~410 000За 16 месяцев до SegWit

Среднее значение размера блока не достигло лимита в 1 МБ из-за наличия пустых блоков, о которых можно подробнее прочитать в “Отчёте о пустых блоках в Биткоине”:

Вариации размера блоков #

Почему размер блоков варьируется в таком широком диапазоне?

Хотя спрос на транзакции сыграл свою роль – блоки заполнялись в зависимости от количества ожидающих транзакций – более детальный анализ выявляет дополнительные факторы.

Визуализация данных показывает заметные горизонтальные паттерны в размерах блоков (синим), указывая на повторяющиеся размеры на разных высотах. Такие чёткие закономерности маловероятны, если единственным ограничением был спрос на транзакции.

Гистограмма размеров блоков до SegWit (блоки с 0 по 481 824)

Анализ гистограммы показывает чётко выраженные пики частоты появления определённых размеров блоков. Статистический анализ этих пиков (определённых по сравнению с соседними интервалами) показывает, что майнеры целились в определённые размеры: 50, 100, 150, 250, 350, 500, 750 и 935 КБ (с погрешностью до 5 КБ). Эти повторяющиеся значения свидетельствуют о сознательном выборе майнеров, а не просто о рыночном спросе.

Интервалы, подпадающие в обозначенные контейнеры.

КАТЕГОРИЯ РАЗМЕРАКОЛИЧЕСТВО БЛОКОВ% ОТ ПРЕДSEGWIT-БЛОКОВ
50 КБ11 2552.34%
100 КБ4 4380.92%
150 КБ3 9200.81%
250 КБ14 0792.92%
350 КБ4 4720.93%
500 КБ2 1350.44%
750 КБ8 4831.76%
935 КБ3 8110.79%
Всего выделено52 59310.92%

Всего 52 593 блока (~10.92% от всех блоков до SegWit) попадают в эти категории, что может указывать на ограничения, установленные правилами майнеров. Однако некоторые из них могли случайно попасть в эти диапазоны, поэтому это скорее верхняя граница количества блоков, ограниченных правилами политики майнеров.

Для более точной оценки можно отсортировать данные, предположив, что в каждом из выделенных интервалов ожидаемое число блоков соответствует среднему значению соседних интервалов. Таким образом избыточное количество блоков в каждом интервале даёт более точную оценку степени искусственного ограничения.

РАЗМЕРИЗБЫТОЧНЫЕ БЛОКИ% ОТ БЛОКОВ ДО SEGWIT
50 КБ6 2151.29%
100 КБ1 6560.34%
150 КБ1 6090.33%
250 КБ12 5202.60%
350 КБ3 7150.77%
500 КБ1 6910.35%
750 КБ8 2251.71%
935 КБ3 1690.66%
Всего38 8008.05%

Таким образом, около 8% блоков до SegWit, вероятно, были ограничены правилами политики майнеров.

Почему майнеры ограничивали размер блоков ниже консенсусного лимита?

Эти округлённые значения указывают на выбор параметров вручную, но зачем майнерам искусственно ограничивать размер блоков?

Ответ кроется в настройках по умолчанию в Bitcoin Core, которые многие майнеры, вероятно, не изменяли или устанавливали на удобные круглые значения.

Майнинг-настройки по умолчанию #

За всю историю существования Биткоина параметры, влияющие на размер блоков, создаваемых Bitcoin Core по умолчанию, менялись не раз.

ОГРАНИЧЕНИЕ РАЗМЕРА БЛОКАMASTERРЕЛИЗ
Установлен мягкий лимит 250 КБ 123 сентября 2010 (81372)1 октября 2010 (82997) v0.3.13
Добавлен параметр -blockmaxsize26 июля 2012 (186236)17 сентября 2012 (199120) v0.7.0
Мягкий лимит увеличен до 350 КБ5 декабря 2013 (273102)9 декабря 2013 (273872) v0.8.6
Мягкий лимит увеличен до 750 КБ13 декабря 2013 (274567)18 марта 2014 (291083) v0.9.0

Анализ зависимости высоты блока от общего количества блоков указывает на несколько переходов в поведении майнеров:

  1. Лимит 250 КБ в v0.3.13 мало повлиял на сеть из-за низкого количества транзакций.

  2. Введение параметра -blockmaxsize привело к появлению настраиваемых ограничений 100 КБ, 150 КБ, но многие майнеры продолжали использовать значение 250 КБ, установелнное по умолчанию.

  3. В v0.8.6 лимит увеличен до 350 КБ, что вызвало немедленное использование максимально возможных значений. Некоторые майнеры вручную установили 500 КБ.

  4. В v0.9.0 лимит увеличен до 750 КБ, что привело к задержке, но со временем распространилось.

Внедрение изменений в код Bitcoin Core на карте кумулятивного анализа объёма блоков

Решение майнеров обновлять Bitcoin Core или изменять настройки blockmaxsize привело к появлению характерных ступенчатых значений размера блоков, ограничивающих их рост.

Длительное сохранение этих уровней говорит о том, что некоторые майнеры/пулы не обновляли конфигурации в течение длительного времени.

Из исторических обсуждений известно, что пользователи призывали майнеров обновлять свои узлы и изменять значения по умолчанию.

Возможно, некоторые майнеры намеренно поддерживали ограничения:

  • Из-за опасений появления блоков-сирот из-за увеличенного времени распространения (изначально эту проблему озвучивал один из операторов пула).

  • Для сокращения того, что они считают спам-транзакциями, например, транзакции, связанные с сайтом Satoshi Dice.

Но также вероятно, что многие майнеры просто продолжали работать со старыми настройками по умолчанию, не осознавая их влияния.

Правила майнеров ограничивают рост размера блока. Пример множества блоков, по умолчанию ограниченных размером в 250KB.

На графиках можно увидеть множество блоков, ограниченных стандартным лимитом 250 КБ. Однако майнеры могли самостоятельно компилировать собственную версию Bitcoin Core, чтобы задать другой предел, даже до введения -blockmaxsize.

Так, вероятно, поступил майнер блока 134,334, так как этот блок превысил 250 КБ, несмотря на установленный в блоке 81 372 мягкий лимит.

Переход на SegWit (2017–2022) #

После активации SegWit эволюция размера блоков проходила в два этапа. Сначала максимальный размер блоков увеличился до 2–2,5 МБ. Затем, начиная с блока 770 000, он резко возрос почти до 4 МБ, что привело к росту всех метрик (среднего и медианного значений, а также квартилей).

Ускорение роста цепочки:

  • До блока 770 000 (от SegWit до 770 000): средний размер блока — 1,11 МБ

  • C блока 770 000 по настоящее время: средний размер блока — 1,69 МБ (+52%)

Блок 770 000 стал ключевой точкой перехода, что было вызвано двумя факторами:

  1. Постоянно загруженный мемпул (пул неподтвержденных транзакций)

  2. Появление Insсriptions (произвольных записей в блоках)

Перегруженность мемпула #

Данные mempool.space указывают, что с января 2023 года (блок 770 000) по февраль 2025 года (блок 881 851) наблюдалась устойчивая перегруженность мемпула.

С января 2023 по февраль 2025 наблюдалась значительная загруженность мемпула.

Хотя данные мемпула невозможно восстановить, загрузка пространства блоков может использоваться для оценки обстановки с транзакциями. Этот показатель измеряет долю использованного пространства блока:

  • До SegWit: размер блока / 1 МБ

  • После SegWit: вес блока / 4MWU

Когда мемпул перегружен, майнеры стараются максимизировать прибыль и заполняют блоки под завязку.

До блока 770 000 загрузка колебалась, но затем стабильно держалась на 100% до блока 881 851 (январь 2023 — февраль 2025), что указывает на постоянную загруженность мемпула.

В истории Биткоина наблюдалось несколько периодов, когда пространство в блоке использовалось на 100%.

К “незаполненным блокам” мы относим те, которые используют менее 75% доступного пространства. Последовательные незаполненные блоки указывают на недостаток транзакций и очистку мемпула.

Данные аудита блоков помогают исключить ложные срабатывания:

  • Последнее длительное очищение мемпула с 3 последовательными незаполненными блоками произошло на блоке 881 851 (01.02.2025).

  • Последнее крупное очищение с 6+ незаполненными блокамиблок 775 147 (05.02.2023).

Важно отметить, что исключены блоки, ограниченные лимитом SigOps, а также блоки, которые mempool.space не ожидал пустыми (это могло быть связано с оптимизацией добычи пустых блоков для ускорения или проблемами узлов-производителей блоков).

Неиспользованное место в блоках #

С генезис-блока Биткоина до активации SegWit, то есть в течение 481 824 блоков, неиспользованное пространство блоков составило примерно 350 ГБ или 0,726 МБ/блок в среднем.

После активации SegWit – в течение 400 042 блоков – неиспользованный вес блоков составил 190 GWU, что эквивалентно 0,475 MvB/блок в среднем.

Кроме того, с момента последнего продолжительного очищения мемпула (события, когда у более чем 6 блоков подряд оставался запас в 1 MWU свободного места) блоки стабильно достигали или почти достигали предела веса вплоть до недавнего очищения мемпула.

Анализ показывает, что большинство блоков после 800 000 имели менее 200 000 WU свободного веса, а большинство остальных блоков были пустыми:

Вес блока (WU)Количество блоковДоля (%)
3 800 000 – 4 000 00081 56699,63%
200 000 – 3 800 000490,06%
0 – 200 0002520,31%

Неясно, будет ли это очищение мемпула (февраль 2025 года) кратковременным или затяжным. Однако стоит помнить, что неиспользованное пространство в блоках теряется навсегда. Используйте дешёвое пространство, пока есть такая возможность!

Inscriptions #

Хотя с блока 775 147 блоки стабильно заполнялись, именно Inscriptions (произвольные записи в блоках) привели к беспрецедентному росту их максимального размера.

Первое появление записей было зафиксировано в блоке 767 430. Они позволяют сохранять произвольные данные в полях транзакций свидетеля.

Анализ почти полностью заполненных блоков (менее 5% свободного веса) показывает:

  • Средний размер блока вырос с 1,5 МБ до 2,1–1,5 МБ

  • Однако текущий средний размер (1,75 МБ) значительно ниже максимальных значений до Inscriptions (~2,4 МБ)

Софт форк Taproot, активированный на блоке 709 632, позволил Inscriptions использовать формат Taproot, размещая произвольные данные в секции свидетеля (witness), а не в основной (legacy) части транзакции. Это снижает транзакционные комиссии благодаря скидке на witness-данные, внедрённые при активации SegWit.

Прогнозы #

Рост размера цепочки обусловлен сочетанием двух факторов:

  1. Постоянная переполненность мемпула

  2. Использование Inscriptions

Прогнозируем три возможных сценария роста. Каждые 200 000 блоков соответствуют примерно 3,8 года, что позволяет делать прогнозы до 2040 года (при среднем времени блока в 10 минут).

Три сценария роста:

  1. Массовое и устойчивое использование Inscriptions. Рост: 4 МБ/блок
  • 1 ТБ → сентябрь 2026

  • 2 ТБ → середина 2031

  1. Средний сценарий. Рост: 2,75 МБ/блок.
  • 1 ТБ → середина 2027

  • 2 ТБ → середина 2034

  1. Возвращение к уровню до Inscriptions и до переполнения мемпула. Рост: 1,5 МБ/блок
  • 1 ТБ → август 2029

  • 2 ТБ → апрель 2042

Размер блока1 ТБ2 ТБ3 ТБ
1,5 МБ2029-08 (1 125 306)2042-04 (1 791 973)2054-12 (2 458 639)
2,75 МБ2027-07 (1 014 651)2034-06 (1 378 288)2041-05 (1 741 924)
4,0 МБ2026-09 (973 156)2031-06 (1 223 156)2036-03 (1 473 156)

Выводы #

Наш анализ эволюции размера биткоин-блоков с момента запуска сети до начала 2025 года показывает, что повествование о размере блока, ограниченного исключительно пределом консенсуса, является неполным. Жёсткий предельный размер в 1 МБ и 4 MWU после SegWit несомненно обеспечил технический предел. Тем не менее, на эволюцию процесса заполнения биткоин-блоков повлияло поведение майнеров, в значительной степени вызванное настройками, заданными по умолчанию в Bitcoin Core. Регулярно повторяющиеся уровни размеров блоков на ранних стадиях развития Биткоина указывают на то, что многие майнеры прибегали к “круглым” лимитам, которые были значительно ниже теоретического максимума. Это непосредственно влияло на доступность свободного места в блоках и возможность проводить транзакции.

Внедрение SegWit привело к постепенному увеличению среднего веса блока, однако с января 2023 года совокупное воздействие переполненного мемпула и появления inscriptions привело к беспрецедентному использованию блочного пространства. Эта эволюция не только толкнула эффективный размер блока выше, но также ускорила рост блокчейна, с взлётом среднего размера блока с 1,11 MB до 1,69 MB.

Мы проливаем свет на перспективу через анализ ряда потенциальных сценариев роста блокчейна Биткоина, начиная с возврата к динамике, предшествующей появлению Inscriptions (снижающийся рост) и заканчивая повсеместным принятием Inscriptions (потенциально приводящим к росту веса блока до 4 МБ). Согласно этим сценариям, блокчейн может достичь 1 ТБ уже в конце 2026 года, хотя середина 2027-2029 кажется более вероятной.


  1. Политика майнинга технически ограничивала блоки 500 КБ (MAX_BLOCK_SIZE_GEN). В коде использовалось гиперболическое масштабирование комиссий, начинающееся с 250 КБ (MAX_BLOCK_SIZE_GEN/2), из-за чего комиссии резко увеличивались по мере приближения к 500 КБ. Это создавало сильное экономическое давление, удерживавшее блоки ниже 250 КБ, фактически делая эту отметку практическим лимитом размера. ↩︎


Connect to our relay to leave a comment. Details.
Подключитесь к нашему релею, чтобы оставить комментарий. Подробнее.