Этот вопрос часто задают на Reddit, и я думаю, было бы полезно получить канонический ответ здесь:
Является ли SegWit увеличением размера блока или более эффективным использованием блочного пространства?
Да и нет. Это зависит от того, как вы сформулируете вопрос.
Это увеличение размера блока, потому что в блок можно поместить большее количество полезных транзакций.
Если вы хотите совершить полезную биткойн-транзакцию, она должна быть подписана, чтобы никто другой не мог ее изменить. Если вы сможете найти способ сделать так, чтобы ограничение размера блока не учитывало подпись, то вы сможете поместить в блок больше транзакций. Следовательно, сегвит — это увеличение размера блока.
Это не увеличение размера блока, потому что увеличение размера блока было бы хард-форком, чего нет у segwit.
В Биткойне есть константа:
static const unsigned int MAX_BLOCK_SIZE = 1000000;
Если вы поднимете это значение хотя бы немного, станет возможным создать блок, который примут новые клиенты, а старые нет. Это обычно называют хардфорком.
Segwit — это не хардфорк. Он не изменяет и не удаляет какие-либо правила; это только добавляет новые правила. Увеличение размера блока требует изменения правила, а segwit не изменяет правило, поэтому segwit не является увеличением размера блока.
Это увеличение размера блока, потому что для хранения и отправки блока требуется больше места.
У вас есть блок segwit с 800 КБ данных транзакций и 800 КБ данных-свидетелей. Это 1,6 МБ, что больше, чем предыдущий предел. Поскольку полные узлы segwit должны иметь эти данные для проверки блока, segwit — это увеличение размера блока.
Это не увеличение размера блока, потому что узлу требуется меньше или столько же места для хранения и отправки блоков, если он не понимает segwit.
У вас есть тот же блок, что и в предыдущем примере, но он отправлен на узел, который не понимает segwit. Он получает только 800 КБ данных транзакции. Это все, что нужно для хранения. Поскольку это не больше 1 МБ, segwit не увеличивает размер блока. Однако, если он не хранит данные свидетеля, он не может осмысленно проверить блок.
Марч
Питер Уилле
БТ
Ник Оделл
пебвиндкрафт