1. 多重签名

多重签名脚本设置了一个条件,其中N个公钥被记录在脚本中,并且至少有M个必须提供签名来解锁资金。这也称为M-N方案,其中N是密钥的总数,M是验证所需的签名的数量。例如,2/3的多重签名是三个公钥被列为潜在签名人,至少有2个有效的签名才能花费资金。

设置M-N多重签名条件的锁定脚本的一般形式是:

M <Public Key 1> <Public Key 2> ... <Public Key N> N CHECKMULTISIG

M是花费输出所需的签名的数量,N是列出的公钥的总数。 设置2到3多重签名条件的锁定脚本如下所示:

2 <Public Key A> <Public Key B> <Public Key C> 3 CHECKMULTISIG

上述锁定脚本可由含有签名和公钥的脚本予以解锁: 或者由3个存档公钥中的任意2个相一致的私钥签名组合予以解锁。 两个脚本组合将形成一个验证脚本:

<Signature B> <Signature C> 2 <Public Key A> <Public Key B> <Public Key C> 3 CHECKMULTISIG

上述例子中相应的设置条件即为:解锁脚本是否含有3个公钥中的任意2个相对应的私钥的有效签名。