Transaction-Input
P2PKH 交易的輸入有多大?
P2PKH 輸入有多少字節?我發現了幾個不同的數字:
推 + 信號 + 推 + 鍵 = 1 + 72 + 1 + 61 = 139
- 普林斯頓比特幣書指出 [p.123]:
每個輸入的事務的大約大小為 148 字節[…]
- 一位知識淵博的比特幣開發人員一邊喝咖啡一邊為我計算:
PREVOUT + SCRIPTSIG = 36 + (1 + 1 + 33 + 1 + (71 或 72)) = 143 或 144
我在比特幣開發者指南或維基中找不到更多資訊。
額外問題:為什麼會有不同的數字?尺寸是否隨時間變化?
第一個數字不包括 scriptSig 的 prevout、序列號或長度字節。它還使用 65 字節的公鑰(如果它是未壓縮的,這是正確的,但現在更常見的是 33 字節的壓縮密鑰)。更正它得到 139 + 36 + 4 + 1 + (33 或 65) = 148 或 180。
在第三種情況下,開發人員忘記包含序列號,使得壓縮公鑰的結果為 147 或 148,未壓縮的公鑰為 179 或 180。
普林斯頓大學的人顯然最清楚。
所以總結一下:
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)