Script

根據共識規則,腳本大小限制是什麼?它們是否在測試網上強制執行?

  • March 6, 2020

我試圖找出腳本在大小方面的限制,這些限制會使腳本無效(忽略標準)。根據這個問題以及比特幣核心原始碼1 2 3中的這些程式碼行,似乎存在以下規則:

Maximum script size = 10,000
Maximum data size to be pushed to the stack = 520

為了測試這些規則,我在 TestNet 上做了一堆交易,所有這些都違反了某些規則並被包含在塊中(全部從 發送n3eynMTEiGgPTuoKPApnRjE9pAuaAk3gkB)?範例:

Tx ID:88bac1e84c235aa0418345bf430fb43b336875974b6e87dc958de196f9222c35

PubkeyScript length=0xfd1527=10,005script=4d11275b2c...394e75Push_10001_byte<5b2c...394e> OP_DROP

如您所見,腳本的長度已經是 10,005 > 10,000 並且第一次數據推送是 10,001 > 520。換句話說,我打破了這兩個規則。

另外據我所知,TestNet 上的“共識”規則完全相同(有一個例外:難度調整),對嗎?那麼這些交易如何有效呢?

這些共識規則對於測試網和主網確實是相同的。

但是,它們僅在執行腳本時才適用。所以你必須創建一個輸入來嘗試使用它來測試它。

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