复制成功

分享至

主页 > 数字货币 >

科普:Taproot交易是什么

2023.11.19

好久没有认真研究比特币的脚本了,最近想搞明白Taproot assets,发现绕不开Taproot交易,只好把Taproot的几个BIP都读完了。

P2PKH

最常见的比特币交易叫支付到公钥哈希,Pay-to-Publick-Key-Hash(P2PKH),它是将比特币锁定到公钥的哈希上,公钥哈希就是我们的比特币地址,即1开头的那种地址。

如果Alice想通过P2PKH交易向Bob支付1btc,这个过程可以按如下解释。

P2PKH交易的技术过程:

地址和公钥哈希:Bob给Alice提供了一个比特币地址,这个地址实际上是他的公钥的哈希值。

解锁和锁定:Alice要发送1 BTC给Bob,她需要从自己的钱包中解锁这笔资金。然后,她在创建交易时将这1 BTC锁定到Bob的公钥哈希上。

Bob的签名和解锁:当Bob想要花费这1 BTC时,他需要用自己的私钥签名来证明他是这个地址的拥有者。这样他就可以解锁这笔资金并将其用于新的交易。

通俗的解释:

Bob给Alice一个开着的带锁盒子(这里的锁就是Bob的比特币地址)。

Alice把1 BTC放进这个盒子,然后把盒子锁上,这样就只有拥有正确钥匙(即Bob的私钥)的人才能打开。

当Bob想使用这1 BTC时,他就用自己的钥匙(私钥)打开盒子,取出比特币,并可以选择将其放入另一个人的盒子(进行另一笔交易)。

P2SH

第二常见的比特币交易叫支付到脚本哈希,我们常用这种交易格式来实现多重签名。

如果Alice想通过P2SH交易格式向Bob发送1BTC,可以按如下来解释:

P2SH交易的技术过程:

脚本哈希而非公钥哈希:在P2SH交易中,资金被锁定到一个脚本哈希而不是一个公钥哈希。

这个脚本通常包含多个条件,比如需要多个签名(多重签名)或满足其他特定条件。

创建和发送交易:发送方(比如Alice)会将比特币发送到这个脚本哈希地址。这个地址是由接收方(比如Bob)提供的,而这个地址背后隐藏的脚本包含了解锁这些资金所需的条件。

即这个脚本哈希的原始脚本是Bob拥有的,但Bob不会将这个脚本公开,而只是公开这个脚本的哈希值。(这对应上面P2PKH的是公钥哈希)

解锁资金:当Bob(收款方)想要花费这些比特币时,他就会提供原始的脚本(这就是解锁脚本,或称赎回脚本),矿工拿到这个原始脚本就可以验证这笔交易。

通俗的解释:

其实P2SH和上面的P2PKH的差别就是在那个盒子上的锁不同,P2SH的锁是允许Bob自定义,可以构建非常复杂的锁。

比如最常见的多重签名,就是Bob自定义了多把解锁的钥匙,并定义了要多少把钥匙来解锁。

使用P2SH这种交易机制,把脚本哈希当成锁,把原始脚本当成是私钥,就可以自定义各种解锁条件。这让比特币的可编程性大大提高了。

现在来解释P2TR(Pay to Taproot)

P2PKH是支付到公钥哈希,花费条件是提供公钥对应的私钥签名。

P2SH是支付到脚本哈希,花费条件是提供原始脚本。

P2TR是一种结合了支付到公钥哈希和支付到脚本哈希,因此它有两条花费路径,即可以是直接的私钥签名,也可以是提供原始脚本。

并且,P2TR的脚本是一颗包含了n个脚本的二叉树,花费时提供树的一个叶子节点脚本和树路径就可以花费。

这样,P2TR交易就可以定义出更复杂的花费条件,比特币的可编程性就更丰富了。

免责声明:数字资产交易涉及重大风险,本资料不应作为投资决策依据,亦不应被解释为从事投资交易的建议。请确保充分了解所涉及的风险并谨慎投资。OKEx学院仅提供信息参考,不构成任何投资建议,用户一切投资行为与本站无关。

加⼊OKEx全球社群

和全球数字资产投资者交流讨论

扫码加入OKEx社群

相关推荐

industry-frontier