В этом видео объясняется, что подпись перемещается из раздела ввода и перемещается в новый раздел, называемый свидетелем . Из того, что я могу сказать, подпись свидетеля все еще содержится в этой транзакции — как простое переупорядочивание информации волшебным образом освободит место?
Я просмотрел другие статьи и видео, и ни одна из них, похоже, не касается этой «магии».
TL;DR :
SegWit не уменьшает размер транзакции, если вы имеете в виду необработанную длину транзакций в байтах. Вместо этого он вводит вес блока в качестве новой метрики, которая напрямую не соответствует необработанной длине байтов транзакций, но рассматривает данные-свидетели как имеющие меньший вес, чем другие части транзакции.
Лимит для биткойн-блоков был изменен с активацией segwit. Раньше блоки были ограничены 1 000 000 байт (1 МБ). Начиная с segwit они ограничены 4 000 000 единиц веса.
При вычислении веса транзакции байты взвешиваются по-разному в зависимости от того, являются ли они частью свидетеля или нет:
Это приводит к тому, что транзакция без SegWit вносит точно такую же часть лимита, как и раньше. Например, необработанная длина транзакции P2PKH с одним входом и двумя выходами составляет 222 байта, поэтому она весит 888 WU, т. е. 222 B / 1 000 000 B = 888 WU / 4 000 000 WU. Это означает, что для несегвит-транзакций ограничение веса блока имеет точно такой же эффект, как ограничение размера блока раньше, и оно обратно совместимо.
Однако для segwit-транзакций вес не является четырехкратным по сравнению с необработанным размером транзакции. Например, необработанная длина байтов мультиподписной транзакции P2SH-P2WSH 2-из-3 с одним входом и двумя выходами составляет 409 байт, но ее вес 868 WU, поскольку большая часть входных данных транзакции является данными свидетеля. Таким образом, транзакция SegWit займет меньшую часть ограничения веса, чем можно было бы предположить по ее исходной длине в байтах.
Чтобы упростить сравнение с устаревшими ставками комиссии, вес блока часто выражается как «виртуальный размер» в «виртуальных байтах» или «в байтах». Виртуальный размер рассчитывается путем деления веса транзакции на четыре и округления до целого числа. Для транзакций без segwit необработанная длина в байтах и виртуальный размер равны.
В заключение, необработанная длина блоков в байтах теперь может превышать 1 000 000 байт, но виртуальный размер не может превышать 1 000 000 байт.
segwit — это увеличение размера блока. Никакой магии.
Механизм segwit применяет ограничение на размер взвешенных данных, вычисляемый путем подсчета части транзакции без подписи в качестве базовых данных (вес = 4) и подсчета данных с подписью по сниженной ставке (вес = 1). Общий взвешенный размер транзакций блока (называемый «весом блока») ограничен 4 МБ. Необновленные клиенты будут видеть только базовые данные и будут применять старое ограничение в 1 МБ, как и раньше.
Итак, теперь вы можете видеть увеличение размера блока. Если все транзакции имеют (почти) нулевые базовые данные и в основном данные подписи, то фактический размер блока может достигать 4 МБ. Если транзакции содержат в основном базовые данные и данные с нулевой подписью, размер блока может составлять не более 1 МБ. Фактический случай всегда будет где-то посередине — отсюда и увеличение блочного пространства.
пебвиндкрафт
Марч
пебвиндкрафт
Марч
Питер Уилле
Марч