126 / 736WU

Block Weight

Вес блока

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

Block Weight — способ, которым Bitcoin измеряет занятую ёмкость блока, то есть группы транзакций, добавляемой в общую историю. Разные части данных учитываются по-разному. У веса есть фиксированный верхний предел; он не задаёт число платежей или стоимость переводимых биткоинов.

Transaction Fees: размер и комиссияОцените виртуальный размер транзакции, комиссию по своей ставке и её примерную стоимость в выбранной валюте.

Анна отправляет Bitcoin, но в следующем блоке её платежа нет. Само по себе это не означает, что деньги исчезли. Неподтверждённая транзакция может ждать в Mempool, локальной очереди отдельного узла. Узел — программа, которая проверяет транзакции и блоки и обменивается данными с другими участниками сети. Майнер выбирает транзакции для блока ограниченной ёмкости и может создать блок поменьше. Комиссии служат стимулом, а не приказом включить определённый платёж. Block Weight объясняет одно ограничение этого выбора, а не все причины задержки. [1] [7]

Верхняя граница — 4 000 000 WU включительно. WU означает единицу веса. Full Node, узел, самостоятельно проверяющий правила Bitcoin, отвергнет блок выше этого предела. Его не спасут высокие комиссии или правильный Proof of Work — вычислительное доказательство работы, необходимое для добычи блока. Необходимо выполнить оба условия: найти доказательство и составить корректный блок. Поэтому ёмкость не определяется одним желанием майнера. [1] [3] [4]

Байт — обычная единица объёма данных. SegWit отделил часть данных, доказывающих право потратить монеты, включая подписи. Эта часть называется witness. Байт основных данных добавляет 4 WU, а дополнительный байт полной записи с witness — 1 WU. Во вторую группу входят и вспомогательные поля marker и flag. Так сохраняется основная структура транзакций и появляется место для проверочных данных, при этом байты учитываются с разным весом. [1] [2]

Подпись подтверждает право отправителя потратить определённые монеты. Условия расходования описывает небольшая программа — скрипт. Меньший вклад witness в вес не разрешает проверяющему узлу игнорировать необходимые подписи или условия скрипта. Данные также остаются в полной записи. Это правило учёта ёмкости, а не утверждение, что работа процессора, сетевой трафик и место на диске уменьшаются в той же пропорции. [1] [4]

Сериализация — запись блока в виде точной последовательности байтов, которой обмениваются компьютеры. Обозначим размер без witness буквой B, а полный размер — T. BIP 141 использует W = 3 × B + T. Основные данные уже входят в T и потому всего учитываются четырежды. Данные, добавленные записью witness, учитываются один раз. Формула относится ко всему блоку, а не только к обычным платежам в нём. [1] [8]

Представим B = 500000 и T = 2500000 байтов. Получим W = 4000000 WU. Другое сочетание данных может иметь B = 750000 и T = 1750000 байтов и снова дать W = 4000000 WU. Это примеры расчёта, а не измеренные блоки. Вес одинаков, но во втором случае передаётся меньше байтов. Поэтому утверждение «полный блок всегда имеет размер 4 MB» неверно. Число транзакций в полном блоке тоже не фиксировано. [1]

Блок — не просто набор платежей пользователей. У него есть заголовок размером 80 байтов, содержащий, среди прочего, ссылку на предыдущий блок и сводку транзакций. Затем идёт их количество, записанное с помощью CompactSize — кодирования целого числа переменной длины. Первой является Coinbase Transaction, особая транзакция награды майнеру; здесь название не обозначает биржу. Все эти части учитываются. Сумма весов остальных транзакций ещё не даёт веса всего блока. [5] [7] [8]

Кошелёк — приложение или устройство для получения и отправки биткоинов. Обычно он использует виртуальный размер транзакции в единицах vByte. Это вес всей транзакции, поделённый на 4 и округлённый вверх. Так можно сравнивать комиссии за занятое место в блоке. Сумма таких округлённых размеров не даёт точного веса блока: единица другая, округления отдельные, а собственная структура блока отсутствует. Большая денежная сумма сама по себе не означает большой объём данных. [1] [8]

Вес не описывает всей работы узла. Соответствующие правила предусматривают также предел 80 000 взвешенных единиц стоимости операций проверки подписей. Это не простой подсчёт всех подписей в блоке. Tapscript, язык скриптов, введённый вместе с Taproot, имеет отдельный бюджет для каждого входа — части транзакции, расходующей ранее полученные монеты; его операции подписи не учитываются в этом более старом общем лимите блока. BIP 342 описывает другое ограничение. Поэтому соблюдение веса не разрешает произвольно сложную проверку. [1] [3] [9]

Обозреватель блоков — приложение для поиска транзакций и блоков определённой сети. В Bitcoin Core v29.0 команда getblock возвращает, среди прочего, size, strippedsize и weight: полный размер в байтах, размер без witness и вес. Рядом может встретиться chainwork. Это накопленная вычислительная работа цепочки, а не её вес данных. Для повседневного использования важно различать ёмкость и цену: Block Weight ограничивает место в блоке, а реальная комиссия зависит от размера транзакции и выбранной ставки. Ни одна из этих величин сама по себе не обещает времени подтверждения. [6]

Для полной картины прочитайте эту статью вместе с vByte, Witness Data, SegWit, Война за размер блока, Bitcoin, Full Node. На эту статью также ссылаются Signet, vByte, Witness Data, Ordinals Inscriptions.

DOC · 001BIP 141 — Segregated WitnessСпецификация DOC · 002BIP 144 — SegWit peer servicesСпецификация DOC · 003Bitcoin Core v29.0 — consensus limitsДокументация DOC · 004Bitcoin Core v29.0 — validationДокументация DOC · 005Bitcoin Developer Reference — Block chainДокументация DOC · 006Bitcoin Core — getblock RPCДокументация DOC · 007Bitcoin Core v29.0 — Block assemblyДокументация DOC · 008Bitcoin Core v29.0 — Block and transaction weightДокументация DOC · 009BIP 342 — Validation of Taproot ScriptsСпецификация
Обновлено: Сначала источники · Не является инвестиционной рекомендацией