Script

scriptSig/scriptPubKey 是否有最大大小?

  • April 24, 2021

以前的研究:

**是否有任何共識規則禁止腳本過大?**我知道腳本的每個單獨元素必須小於 520 字節,如此處所示,但腳本仍然可以包含許多單獨的元素並創建一個非常大的塊。

例如,惡意礦工希望使區塊鏈盡可能大,並創建一個具有特定輸出的 coinbase 交易,該交易具有OP_RETURN操作碼和足夠的數據,以使其塊小於 1 MB 限制。惡意礦工的區塊(其中 99% 的區塊數據被編碼為虛擬OP_RETURN輸出)會被接受還是拒絕?

10,000 字節。查看比特幣核心原始碼:https ://github.com/bitcoin/bitcoin/blob/v0.17.0/src/script/script.h#L31-L32 https://github.com/bitcoin/bitcoin/blob/v0 .17.0/src/script/interpreter.cpp#L299-L300

請注意,該EvalScript函式僅在有人嘗試花費腳本時執行,因此它不適用於像 OP_RETURN 這樣的不可花費的輸出。在這種情況下,共識規則允許您在輸出中包含盡可能多的數據,直至最大塊權重限制。長期以來,Bitcoin Core 對包含 OP_RETURN 輸出時將中繼和探勘的交易設置了更嚴格的限制,因此我們很少看到超過這些限制的交易。

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