Transaction-Fees

預測多簽名交易大小

  • January 16, 2020

我到處尋找答案。基本上有什麼方法可以在創建交易時,在簽名過程之前計算多重簽名交易的大小?我試圖為此找到任何模式,但沒有結果。

我掌握的資訊:

  • 輸入數量;
  • 輸出數量;
  • 所需簽名的數量

我將不勝感激任何解決這個問題的線索。

pubkeySize=33
sigSize=72


SizeOfRedeemScript = 1+n*pubkeySize+1+1
SizeOfScriptSig = 1+m*(1+sigSize)+SizeOfVarIntFor(RedeemScript)+SizeOfRedeemScript
sizeOf(input) = 32+4+SizeOfVarIntFor(SizeOfScriptSig) + SizeOfScriptSig + 4

SizeOfScriptPubKey = SizeOfVarIntFor(SizeOfRedeemScript) + len(script)
sizeOf(output) = 8 + SizeOfScriptPubKey

sizeOf(tx) = 4 + SizeOfVarIntFor(numInputs) + sum(SizeOfInputsArray) + SizeOfVarIntFor(numOutputs) + sum(SizeOfOutputsArray) + 4

基本上,一旦您知道 m & n(對於您的多重簽名)、公鑰是否被壓縮(pubkeySize)、輸入和輸出的數量以及輸出的類型,您就可以得出一個相當準確的大小數字。

我試圖解決一個類似的問題時跳過了這個問題:“我需要準備多少 tx 費用?”……雖然這是一個較老的問題,但我認為還是可以回答,這樣其他人可能會受益於相同的研究。

<https://en.bitcoin.it/wiki/Elliptic_Curve_Digital_Signature_Algorithm>

… 簽名的長度為 73、72 或 71 字節,機率分別約為 25%、50% 和 25%,儘管尺寸可能比這更小,機率呈指數下降。

在 Sigs 後面通常有十六進制的公鑰,添加 33 字節用於壓縮,65 字節用於未壓縮密鑰。所以我計算一個標準的 TX 大約 100 Bytes per sig。您已經有了輸入和輸出的數字。我的標準 2 輸入/2 輸出 TX 大約為 400 字節。TX 的輸入部分取決於

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