在比特币的术语定义中,地址(Address)指的是P2PKH地址或P2SH地址,并没有多签名地址。
Address
A 20-byte hash formatted using base58check to produce either a P2PKH or P2SH Bitcoin address.
Currently the most common way users exchange payment information.
Multisig(多签名)
A pubkey script that provides n number of pubkeys and requires the corresponding signature script provide m minimum number signatures corresponding to the provided pubkeys.
比特币实现花钱的方式:
P2PKH
验证的一种方法是,输出脚本中包含B的公钥,签名脚本包含B用私钥所作的签名。
这样,节点就可以用公钥验证签名。
A在交易M中的这种支付,就是支付给某人的公钥,也就是支付给P2PKH地址。
Multisig
后来,有人想到了高级的玩法:
在输出脚本中包含M个公钥,签名脚本中至少要包含N个私钥的签名,比特币节点才能验证通过,允许花费。这个就是多签名脚本(Multisig)。
P2SH
后来,又有人想到了更高级的玩法,是这样:
B对A说,你别管怎么验证,我给你一个哈希值,我在签名脚本中提供输出脚本,只要我提供的输出脚本的哈希值与给你的哈希值对得上,你就用我提供的输出脚本进行验证。
这样,B就可以随意定义自己希望的输出脚本,这就是P2SH地址,以数字3开头的比特币地址是P2SH地址。
P2SH也可以实现P2PKH地址和Multisig的功能。