Transaction-Input
輸入使用多少重量單位?
投入的重量單位成本是多少?當您向 tx 添加更多輸入時,您可以批量/聚合輸入還是線性增長?
投入的重量單位成本是多少?
有 2 件事會影響 tx 的權重、總字節數和總字節數減去見證數據。
Transaction Weight = Base transaction size * 3 + Total transaction size
, 在哪裡基本交易大小是剝離見證數據後序列化的交易大小。
總交易大小是按BIP144中所述序列化的交易大小(以字節為單位) ,包括基礎數據和見證數據。
您可以批量/聚合輸入,還是在向 tx 添加更多輸入時線性增長?
您不能批量輸入,但您可以將它們組合起來,然後先將它們大量發送回您自己,但這需要額外的交易。你現在能做的最好的可能就是使用隔離見證地址來接收資金,所以當你去花費輸入時,見證數據會降低每個輸入的權重。
交易中單個輸入的權重始終使用:
32
引用 outpoint id 的字節數(散列)4
引用 outpoint 索引的字節數然後,如果輸出點是非隔離見證 p2pkh 輸出,則 scriptSig 使用:
1
表示 scriptSig 大小的字節1
字節表示簽名大小71
簽名的字節數(平均)1
表示公鑰大小的字節33
公鑰的字節總的來說,這使得
143
字節(平均)在您的支出交易中引用非隔離見證 p2pkh 輸出。對於 segwit p2sh 嵌套 p2pkh 輸出,scriptSig 改為使用:
1
表示 scriptSig 大小的字節1
表示見證版本的字節 (0x00)1
字節表示公鑰雜湊大小20
公鑰雜湊的字節此外,witnessScript 將使用與 scriptSig 相同數量的字節來花費非見證 p2pkh 外點。但是,witnessScript 僅佔總權重的四分之一。
因此,segwit p2sh 嵌套輸入的平均權重貢獻為
59
字節 + (107
)/4 字節 =86
字節。