Transaction-Fees
礦工交易選擇 - 如何考慮 sigops?
一個塊可以 sigop 的數量是有限制的(設置為 80000?)。單個事務可以 sigop 的數量也有限制(設置為 16000?)。因此,攻擊者送出五個特殊交易來消耗整個塊的 sigop 限制似乎是可能的(如果不可能,這個問題的其餘部分是無效的,但是如何防止它呢?)。
如果此類攻擊交易使用非常高的每字節費用,如果礦工根據每字節費用指標選擇將哪些交易包含在一個塊中,它會將攻擊交易包含在一個塊中,每字節獲得相對較高的費用,但不會填充由於 sigop 限製而被阻止。這意味著如果避免攻擊交易,礦工可以獲得更多的費用,但問題是這種選擇避免是否預設實施。
出於挖礦交易選擇的目的,Bitcoin Core 根據限制的比率將 sigops 轉換為有效的權重值。如果 sigops 計數隱含的重量高於真實重量,則較高的值用於費用處理計算。在任何類型的遠端理智交易中,這基本上沒有影響,但消除了您建議的攻擊。
查看
-bytespersigop
設置。預設值 20 比限制的比率略小,因為真實值對非攻擊交易的成本計算扭曲了太多,而較小的值足以使這種攻擊變得無趣。這確實意味著,在存在支付中等高額費用的攻擊交易的情況下,礦工的收入可能比更精通解決這個多維優化問題的礦工賺取的收入略少。但是,由於攻擊不起作用,因此無法進行交易,這使得這種稍微次優的行為變得無關緊要。
Tapscript 提案完全不使用 sigops 來避免此類問題。