測試網的灰塵門檻值
我想在這個答案之後找到一個灰塵門檻值:https ://bitcoin.stackexchange.com/a/86069/134293
實際上,我有一個來自 listssinceblock 的交易列表,其中有 34 位的 Testnet 公鑰雜湊地址(如 mzzg8fvHXydKs8j9D2a8t7KpSXpGgAnk4n)和 35 位的 Testnet 腳本雜湊地址(如 2N1SP7r92ZZJvYKG2oNtzPwYnzw62up7mTo)-> https://en.bitcoin.it/ wiki/List_of_address_prefixes
如何找到兩者的灰塵門檻值?也許我只需要知道我有多少輸入才能應用公式:(
$$ input bytes $$+$$ 34 or 35 $$)*3
灰塵門檻值定義為
(output_weight+input_weight)×discard_feerate
。discard_feerate
定義為 3 s/vB 。因此,您需要知道input_weight
計算輸出的灰塵門檻值。這在 P2PKH 輸出的情況下很容易,因為輸入具有固定的權重。然而,在 P2SH、P2WSH 和 P2TR 輸出的情況下,這是不可能的,因為您無法從地址中得知收件人在其地址中編碼的條件腳本以稍後使用輸出。它可能是傳統的多重簽名、封裝的隔離見證或一些自定義構造。在 P2TR 的情況下,它可能會花費每一個
keypath
或scriptpath
這將導致不同的輸入權重。因此,比特幣核心程式碼只使用了兩種不同的灰塵門檻值: 通過https://github.com/bitcoin/bitcoin/blob/master/src/policy/policy.cpp
對於所有原生 segwit 輸出,它使用實際輸出的權重加上 P2WPKH 輸入的權重。請注意,雖然
nSize += (32 + 4 + 1 + (107 / WITNESS_SCALE_FACTOR) + 4);
應該評估為 67.75 vB,因為
nSize
是 asize_t
,它實際上是 67 vB。這意味著對於 P2WPKH,輸出為 31 vB,總輸出為 31 vB + 67 vB = 98 vB。這意味著 P2WPKH 灰塵門檻值為294 satoshis。對於 P2WSH 和 P2TR,輸出為 43 vB,灰塵門檻值為330 satoshis。
P2PKH 輸出為 34 vB,輸入為 148 vB,因此它們的往返總和為 34 vB + 148 vB = 182 vB,因此 P2PKH 灰塵門檻值為546 satoshis。由於 P2SH 輸出對於打包的 segwit 和所有其他 P2SH 輸出只有 32 vB,因此它們的灰塵門檻值為540 satoshi。
您可以在此表中查找地址前綴: https ://en.bitcoin.it/wiki/List_of_address_prefixes
m…
是一個測試網 P2PKH 地址2…
是一個測試網 P2SH 地址