Перейти к содержимому
buybitcoinsmart

Глоссарий / Майнинг и консенсус

Блок

Что такое блок?
Блок представляет собой один пакет транзакций биткоина вместе с заголовком из 80 байт, который его запечатывает; он добавляется в цепочку примерно каждые десять минут тем майнером, который найдет его первым.

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

Как это работает

У блока три части, и фиксированный размер имеет только первая.

Заголовок занимает 80 байт и никогда не меняется. После него идет число транзакций, записанное в формате переменной длины compactSize, принятом в биткоине. Затем идут сами транзакции по порядку, с одним жестким требованием: первая должна быть транзакцией coinbase, той, что платит майнеру. Блок, в котором coinbase стоит на втором месте, отклоняется так же твердо, как блок с подделанной подписью.

Размер больше не считается в простых байтах. С момента активации SegWit в августе 2017 года лимит составляет 4 000 000 весовых единиц, где байт вне свидетеля стоит четыре единицы, а байт свидетеля стоит одну. Отсюда потолок около 4 МБ для блоков с большим объемом данных свидетеля и около 1 МБ для блока, заполненного транзакциями старого формата, а типичные реальные блоки укладываются между 1,5 МБ и 2 МБ. Исходное правило 1 000 000 байт сохраняется в основе как ограничение части, не относящейся к свидетелю, поэтому честный ответ на вопрос «какого размера может быть блок» представляет собой диапазон, а не число.

Все остальное каждый узел проверяет независимо. Хеш заголовка должен быть равен целевому значению или ниже его, корень Меркла должен совпадать с фактически присутствующими транзакциями, ни один вход не может быть потрачен дважды, а выход coinbase не может требовать больше, чем субсидия плюс комиссии включенных транзакций. Протокол также накладывает на майнера период ожидания: биткоины, созданные в блоке, нельзя потратить, пока поверх не построено еще 100 блоков, так что майнер, чей блок позже отброшен при реорганизации, не мог успеть потратить полученное.

Почему это важно при покупке биткоина

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

Блоки конечны, а спрос нет, поэтому когда пул памяти загружен, первыми берутся транзакции, которые платят больше за виртуальный байт, а остальные ждут. Этот механизм стоит за каждым обращением в поддержку вида «почему мой вывод застрял». Проверка оценки комиссии перед тем, как переводить биткоины, и перевод в спокойный час, когда это возможно, ничего не стоит и регулярно экономит больше, чем разница в комиссиях биржи, на сравнение которых вы потратили полдня.

Цифра в десять минут является средним значением, а не расписанием. Обнаружение блоков ведет себя как случайный процесс без памяти, поэтому интервалы сильно разбросаны: более трети блоков находятся дольше десяти минут, а примерно один из двадцати дольше получаса. Поэтому биржа, которая зачисляет пополнения после нескольких подтверждений, сообщает вам распределение, а не срок доставки, и пополнение, не пришедшее за двадцать минут, обычно является нормальным, а не потерянным.

Есть и способ вовсе обойти место в блоке. Платежи Lightning рассчитываются вне блокчейна (офчейн) и касаются блока только при открытии или закрытии канала, поэтому приложение вроде Strike может перемещать стоимость за секунды, пока ончейн-вывод ждет следующего блока. Этот компромисс стоит понять, прежде чем предполагать, что каждый перевод биткоина обязательно должен стоить комиссии майнеру.

Внутри блока 774 628, самого большого из когда-либо добытых

Блок 774 628, добытый пулом Luxor 1 февраля 2023 года, является самым большим блоком, который когда-либо создал биткоин: 3,96 МБ.

Он содержал 63 транзакции, и одна из них заняла 3,94 МБ от общего объема: надпись с изображением Taproot Wizard, втиснутая в свидетель Taproot. Пул координировал эту транзакцию напрямую, а не выбирал ее из пула памяти, и заплатил блоку почти ничего: около 0,009 BTC в виде комиссий при субсидии, которая в то время все еще составляла 6,25 BTC. Предыдущий рекорд составлял 2,77 МБ.

Этот блок стоит посмотреть, потому что он показывает правило веса в действии. Старый лимит 1 МБ сделал бы эту транзакцию невозможной, а бюджет в 4 000 000 весовых единиц позволил ее только потому, что данные свидетеля учитываются со скидкой. Он также показывает, что один участник может занять весь блок, и именно об этом шла война за размер блока.

Блок vs заголовок блока

Блок представляет собой весь объект; заголовок является сводкой из 80 байт в его начале. Различие практическое, а не педантичное. Майнеры хешируют только заголовок, легкие кошельки скачивают только заголовки, а узел, который синхронизируется впервые, получает цепочку заголовков, прежде чем запросить хотя бы одну транзакцию. Если в документе сказано «хеш блока», имеется в виду хеш этих 80 байт, а не хеш платежей внутри.

Блок vs устаревший блок

Блок находится в той цепочке, с которой согласна сеть; устаревший блок является вполне действительным блоком, который проиграл гонку за место в этой цепочке. Иногда два майнера находят блок почти одновременно, сеть ненадолго держит двух кандидатов, и ветвь, которая перестает расти, забрасывается. С отброшенным блоком все было в порядке, и его транзакции почти всегда появляются в следующем блоке. Поэтому одно подтверждение слабее шести: чем глубже находится блок, тем менее правдоподобно, что конкурирующая ветвь его обгонит.

Не путать с

Часто задаваемые вопросы

Сколько транзакций помещается в блок биткоина?

Обычно несколько тысяч, потому что ограничение составляет 4 000 000 единиц веса, а не количество транзакций. Блоки, заполненные небольшими современными транзакциями, вмещают больше, чем блоки с данными мультиподписи или надписей.

Почему моя транзакция не попала в следующий блок?

Потому что майнеры сортируют по ставке комиссии, и ваша ставка оказалась ниже порога для этого блока. Транзакция остается в пуле памяти и будет включена, когда спрос упадет или когда вы повысите комиссию с помощью replace-by-fee.

Бывает ли, что блок создается быстрее, чем за десять минут?

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

Читайте далее

Связанные термины

Еще в разделе «Майнинг и консенсус»

Читать эту страницу на английском