输出脚本

输出金额后面是一个compactSize整数,指示输出脚本的长度,该脚本包含了需要满足的条件,以便花费比特币。根据比特币的共识规则,输出脚本的最小大小为零。

输出脚本的共识最大允许大小取决于何时进行检查。在交易输出中,输出脚本的大小没有明确的限制,但后续交易只能花费具有大小不超过10,000字节的先前输出。隐含地,输出脚本几乎可以与包含它的交易一样大,而交易几乎可以与包含它的区块一样大。

长度为零的输出脚本可以由包含OP_TRUE的输入脚本花费。任何人都可以创建该输入脚本,这意味着任何人都可以花费空的输出脚本。有一种基本上无限数量的脚本,任何人都可以花费,并且比特币协议开发人员将其称为任何人都可以花费。比特币的脚本语言升级通常会将现有的任何人都可以花费的脚本添加新的约束条件,使其仅在新条件下可花费。应用程序开发人员不应该需要使用任何人都可以花费的脚本,但如果您确实需要,我们强烈建议您大声宣布您的计划给比特币用户和开发人员,以便未来的升级不会意外地干扰您的系统。

比特币核心对于中继和挖矿交易的策略有效地将输出脚本限制在几个模板上,称为标准交易输出。这最初是在发现了与脚本语言相关的几个早期错误之后实施的,并在现代比特币核心中保留下来,以支持任何人都可以花费的升级,并鼓励将脚本条件放置在P2SH赎回脚本、segwit v0见证脚本和segwit v1(taproot)叶脚本中的最佳实践。

我们将在第7章中查看每个当前标准交易模板,并学习如何解析脚本。

Last updated