Transaction-Input

P2PKH 交易的輸入有多大?

  • January 17, 2019

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)

引用自:https://bitcoin.stackexchange.com/questions/48279