Сколько байтов имеет вход P2PKH? Я нахожу несколько разных чисел:
нажать + сиг + нажать + ключ = 1 + 72 + 1 + 61 = 139
Приблизительный размер транзакции составляет 148 байт для каждого ввода[…]
PREVOUT + SCRIPTSIG = 36 + (1 + 1 + 33 + 1 + (71 или 72)) = 143 или 144
Я не смог найти дополнительную информацию в Руководстве разработчика биткойнов или вики.
Бонус-вопрос: почему числа разные? Изменился ли размер со временем?
Первое число не включает prevout, порядковый номер или длину байта для scriptSig. Он также использует 65 байт для открытого ключа (что правильно, если он несжатый, но сейчас более распространены сжатые ключи размером 33 байта). Его исправление дает 139 + 36 + 4 + 1 + (33 - 65) = 148.
Разработчик в третьем случае забыл указать порядковый номер, в результате чего получилось 147 или 148.
Ребята из Принстона явно знают лучше.
Итак, подведем итог:
PREVOUT: hash (32 bytes)
index (4 bytes)
SCRIPTSIG: length (1 byte)
CONTENTS: push opcode (1 byte)
signature (71 or 72 bytes)
push opcode (1 byte)
pubkey (33 bytes for compressed, 65 for uncompressed)
sequence (4 bytes)