升级到隔离见证

从前面的例子中我们可以看到,升级到隔离见证是一个两步过程。首先,钱包必须创建隔离见证类型的输出。然后,这些输出可以被知道如何构建隔离见证交易的钱包所消费。在这些例子中,Alice的钱包能够创建支付隔离见证输出脚本的输出。Bob的钱包也支持隔离见证,并且能够消费这些输出。 隔离见证被实现为向后兼容的升级,旧版和新版客户端可以共存。钱包开发人员独立升级了钱包软件以添加隔离见证功能。遗留的P2PKH和P2SH继续为未升级的钱包工作。这留下了两个重要的场景,在下一节中会讨论到:

  • 一个没有隔离见证功能的付款方钱包能够向能够处理隔离见证交易的接收方钱包进行支付。

  • 一个有隔离见证功能的付款方钱包能够通过地址识别和区分能够处理隔离见证交易的接收方和不能处理的接收方。

嵌入隔离见证到 P2SH

假设,例如,Alice 的钱包尚未升级为隔离见证,但 Bob 的钱包已经升级并可以处理隔离见证交易。Alice 和 Bob 可以使用传统的非隔离见证输出。但是 Bob 可能希望使用隔离见证来减少交易费用,利用见证结构的成本降低。

在这种情况下,Bob 的钱包可以构建一个包含隔离见证脚本的 P2SH 地址。Alice 的钱包可以向其进行支付,而无需了解隔离见证。然后 Bob 的钱包可以使用隔离见证交易来花费这笔支付,从而利用隔离见证并减少交易费用。

P2WPKH 和 P2WSH 这两种形式的见证脚本都可以嵌入到一个 P2SH 地址中。第一种被称为嵌套 P2WPKH,第二种被称为嵌套 P2WSH。

嵌套的支付见证公钥哈希

嵌套的支付见证公钥哈希(Nested P2WPKH)是我们将要检查的第一种输出脚本形式。这是一种支付给见证公钥哈希的见证程序,嵌入在支付给脚本哈希脚本中,以便不了解隔离见证的钱包可以支付输出脚本。

Bob 的钱包构建了一个 P2WPKH 见证程序,其中包含 Bob 的公钥。然后对该见证程序进行哈希处理,得到的哈希值被编码为一个 P2SH 脚本。这个 P2SH 脚本被转换为比特币地址,即以“3”开头的地址,就像我们在“支付给脚本哈希”中看到的一样。

Bob's wallet首先使用我们之前看到的P2WPKH见证版本和见证程序:

0 ab68025513c3dbd2f7b92a94e0581f5d50f654e7

数据包括见证版本和Bob的20字节公钥哈希。Bob的钱包然后对数据进行哈希,首先使用SHA256,然后使用RIPEMD-160,产生另一个20字节的哈希值。接下来,赎回脚本哈希被转换为比特币地址。最后,Alice的钱包可以向37Lx99uaGn5avKBxiW26HjedQE3LrDCZru支付款项,就像向任何其他比特币地址支付一样。

为了支付Bob,Alice的钱包会使用P2SH脚本锁定输出:

OP_HASH160 3e0547268b3b19288b3adef9719ec8659f4b2b0b OP_EQUAL

即使Alice的钱包不支持SegWit,它创建的支付也可以由Bob通过SegWit交易进行花费。

嵌套的支付见证脚本哈希

同样,可以将P2WSH见证程序(用于多签名脚本或其他复杂脚本)嵌入到P2SH脚本和地址中,从而使任何钱包都能进行与SegWit兼容的支付。

正如我们在“支付见证脚本哈希(P2WSH)”中所看到的,Mohammed的公司正在使用分隔见证支付多重签名脚本。为了让任何客户都能向他的公司付款,无论他们的钱包是否升级为SegWit,Mohammed的钱包都可以将P2WSH见证程序嵌入到P2SH脚本中。

首先,Mohammed的钱包使用SHA256对见证脚本进行哈希(仅一次),生成哈希值:

9592d601848d04b172905e0ddb0adde59f1590f1e553ffc81ddc4b0ed927dd73

接下来,将哈希的见证脚本转换为带有版本前缀的P2WSH见证程序:

0 9592d601848d04b172905e0ddb0adde59f1590f1e553ffc81ddc4b0ed927dd73

然后,见证程序本身使用SHA256和RIPEMD-160进行哈希运算,生成一个新的20字节哈希:

86762607e8fe87c0c37740cddee880988b9455b2

接下来,钱包使用这个哈希构造一个P2SH比特币地址:

3Dwz1MXhM6EfFoJChHCxh1jWHb8GQqRenG

现在,即使没有支持隔离见证的客户也可以向这个地址进行付款。要向Mohammed发送付款,一个钱包会使用以下的P2SH脚本锁定输出

OP_HASH160 86762607e8fe87c0c37740cddee880988b9455b2 OP_EQUAL

然后,Mohammed的公司可以构建隔离见证交易来花费这些支付,利用隔离见证功能,包括更低的交易费用。

Last updated