Плата за транзакцию SegWit/байт

Для транзакции, не тратящей выходные данные SegWit, все просто: если у меня установлена 1000​​комиссия Satoshi за 500необработанную байтовую транзакцию, я получаю 2комиссию s/b.

Как насчет транзакции, содержащей данные свидетеля?

Скажем, моя необработанная транзакция — это 500байты, 100байты которых являются данными-свидетелями. Таким образом, 400байты теперь конкурируют за место в 1-мегабайтном блоке.

Насколько точно можно сказать, что текущая комиссия за транзакцию равна 1000 / 400 = 2.5s/b?

Ответы (2)

Скажем, моя необработанная транзакция занимает 500 байт, 100 байт из которых являются данными-свидетелями. Таким образом, за место в 1-мегабайтном блоке теперь конкурируют 400 байт.

Это неправильно.

SegWit заменяет концепцию размера и максимального размера блока на вес . Вес транзакции определяется как 3 умноженный на stripped_size в байтах (исключая свидетеля) плюс total_size в байтах (включая свидетеля). Максимальный вес всех транзакций в блоке — 4 000 000. Это единственное ограничение, которое имеет значение. Из-за того, как построена формула веса, она подразумевает, что старое правило (stripped_size <= 1000000) всегда выполняется. Майнеры стараются получить как можно больше комиссионных за лимит веса, который у них есть, и в результате оптимизируют комиссию за вес .

Таким образом, размеры транзакций больше не имеют значения. Важен их вес. К сожалению, между ними существует коэффициент масштабирования 4, поэтому вы не можете легко преобразовать ставки до SegWit в после. По этой причине было введено понятие vsize (виртуальный размер). Он равен весу/4. Для не-SegWit-транзакций их размер и vsize идентичны. Теперь самый простой способ выразить комиссию — увидеть ее в виде BTC на vbyte (vsize byte).

Насколько точно сказать, что текущая комиссия за транзакцию составляет 1000 / 400 = 2,5 с/б?

В вашем примере вес вашей транзакции составляет 3 * 400 + 500 = 1700. Это означает, что ее размер составляет 425 байт. В результате его скорость составляет 1000 / 425 = 2,35 сат/вбайт, и он будет конкурировать с другими транзакциями на этом уровне.

Как ясно, как это становится. Спасибо
@ pieter-wuille Получает ли Segwit, встроенный в P2SH, преимущества новой концепции размера? В следующем вопросе упоминается, что использование вложенных в устаревший P2SH имеет преимущество (хотя и менее эффективное). Я хочу понять смысл. bitcoin.stackexchange.com/questions/62053/…
Да, это так, хотя и в меньшей степени. Я постараюсь написать ответ на этот вопрос.
  • Устаревший размер ввода: 148 байт (сжатый)
  • Устаревший выходной размер: 34 байта (сжатый)

  • Размер ввода Segwit: 104 байта

  • Выходной размер Segwit: 32 байта

поэтому, если ваша транзакция имеет два входа и один общий размер вывода составляет ~ 246 байт, не забудьте еще о нескольких дополнительных байтах для заголовка транзакции.