什么是 Taproot 以及它如何使比特币受益?

新手Jan 26, 2024
本文介绍了与 Taproot 相关的三个比特币改进提案(BIP)。
什么是 Taproot 以及它如何使比特币受益?

什么是Taproot?

Taproot 是对比特币的一项升级,为比特币用户带来了几项新功能和好处。比特币社区在 2021 年 11 月 12 日的第 709,632 个区块激活了 Taproot。

Taproot 升级包括三个比特币改进提案(BIP),它们定义了对比特币协议的三个不同升级:

  • Schnorr 签名 (BIP 340)
  • Taproot (BIP 341)
  • Tapscript (BIP 342)

这三项升级统称为 Taproot 升级,通常集体称为 BIP Taproot。这些 BIP 引入了新的、更高效、灵活和私密的比特币转移方式。

Schnorr 签名 - BIP 340

作为 Taproot 升级的一部分,BIP 340 引入了用于比特币的 Schnorr 签名。 Schnorr 签名为比特币用户带来了多项好处,包括卓越的隐私性、更低的费用和更灵活多重签名

该 BIP 还指定了Schnorr 公钥和签名在比特币中的编码方式。与 ECDSA 的 33 字节公钥相比,用于 Schnorr 签名的公钥长度为 32 字节。此外,Schnorr 签名的长度为 64 字节,相比之下ECDSA签名(包括sighash标志)长度为71-72字节。这些小的空间节省为采用Taproot的比特币用户提供了费用上的节省。

了解有关 Schnorr 签名的更多信息。

Taproot - BIP 341

BIP 340 定义了生成和编码 Schnorr 签名和公钥的规范,但BIP 341定义了比特币协议如何整合Schnorr 签名。具体来说,比特币脚本必须更新才能评估 Schnorr 签名。 Taproot 还集成了默克尔化替代脚本树 Merkelized Alternative Script Trees (MAST),允许用户将输出锁定到多个脚本。

支付至Taproot的输出是版本1的SegWit输出,所有Taproot交易都是SegWit交易。

支付到Taproot(P2TR)

Taproot 还引入了一种新的比特币支付脚本类型。支付到Taproot(P2TR)允许用户向一个Schnorr公钥或多种其他脚本的Merkle根支付。使用这种新的脚本类型,用户可以创建一个UTXO(未花费交易输出),它可以由私钥的所有者或能满足Merkle树内任何脚本要求的任何人解锁和使用。

关键聚合

Schnorr的关键聚合功能使得这种灵活性成为可能。当比特币发送到P2TR输出时,它会被锁定到一个单一的公钥,这个公钥被称为Q。然而,这个公钥Q实际上是由公钥P和许多其他脚本类型的Merkle根聚合而成的。Merkle树中的任何替代脚本都可以用于消费输出。

>>>>> gd2md-html alert: inline image link here (to images/image2.png). Store image on your image server and adjust path/filename/extension if necessary.
(Back to top)(Next alert)
>>>>>

alt_text

这种设计允许用户在消费时选择复杂的脚本或简单的支付到公钥功能,而不是在接收时进行选择。同时,它还确保了所有的Taproot输出在外观上都是相似的。因为多签名输出、单签名输出以及其他复杂的智能合约在区块链上都呈现出相同的外观,这将使得许多链分析启发式方法变得无效,从而保护了所有Taproot用户的隐私。

Tapscript - BIP 342

为了实施 P2TR 交易,BIP 342 新增和更新了若干操作码。这些新脚本用于验证 Taproot 支出和 Schnorr 签名,它们统称为 Tapscript。

Tapscript 的设计旨在最大化 P2TR 支出的未来灵活性,以便允许进行尚未预见的升级。

Taproot的好处

Taproot 升级为采用 Taproot 的比特币用户以及未采用的用户带来了许多好处。引入 Schnorr 签名为隐私和安全提供了显著的好处,但 Taproot 和 Tapscript 也带来了它们自己的优势。

详细了解 Schnorr 签名的优势。

节省空间

大多数Taproot(P2TR)输出在区块链上占用的空间比普通的P2PKH输出少,但比P2WPKH输出稍大。这主要是因为P2TR输出将比特币直接锁定到公钥上,而不是公钥的哈希。因此,向Taproot输出发送交易会稍微更昂贵,因为公钥占用的空间比公钥哈希大。然而,花费Taproot输出明显更便宜,因为公钥已包含在scriptPubKey中,不需要在Script Witness中再次包含。

此外,Taproot还定义了Schnorr公钥和签名的编码方案,使它们比ECDSA的对应项更短,从而提供了额外的费用节省。这意味着使用Taproot的交易可以在区块链上占用更少的空间,从而降低了交易费用,并有助于提高比特币网络的效率。

隐私优势

Taproot 升级对隐私的影响可能是其中最重要的方面。它引入了Schnorr签名和密钥聚合,使多重签名合约看起来与单签名合约没有明显区别,为所有Taproot用户提供了更好的隐私保护。


由于闪电网络依赖2-of-2多重签名,Taproot使得无法确定哪些交易用于创建闪电通道。

此外,Taproot还通过集成MAST(Merkleized Abstract Syntax Trees)带来了显著的隐私优势。正如前面提到的,Taproot允许比特币同时锁定多个脚本。然而,在花费Taproot输出时,支付者无需透露所有可能用于解锁比特币的脚本,而只需透露他们实际使用的脚本。在大多数情况下,Taproot用户可能会选择使用付费公钥选项,这使他们可以保留私下备份的可能性。

详细了解 Taproot 如何升级 Lightning 的用户体验。

安全升级

从技术和理论角度来看,与ECDSA签名相比,Schnorr签名被认为更安全。这是因为Schnorr签名的安全性证明所需的假设条件较少。像所有椭圆曲线加密方案一样,ECDSA和Schnorr都依赖于一个假设,即离散对数问题难以解决。然而,为了确保安全性,ECDSA还依赖于其他额外的假设。尽管如此,迄今为止,在比特币存在的整个历史中,尚未发现ECDSA被系统性地破解的案例。

Schnorr签名还消除了ECDSA签名中可能存在的签名可塑性问题。虽然交易的可塑性问题已通过SegWit升级得到解决,但ECDSA的签名可塑性特性仍然存在。

Taproot启用了Taro协议

Taro是一个由Taproot驱动的协议,允许用户在比特币区块链和闪电网络上发行资产。通过以Taproot为中心的设计,与以前尝试在比特币上引入其他资产的方法相比,这种资产发行可以更加私密和可扩展。Taro协议由Lightning Labs于2022年4月提出。

在Taro协议中,Taproot用于将资产元数据嵌入到现有的交易输出中,而Schnorr签名则用于提高简单性和可扩展性。Taro这个名字是Taproot Asset Representation Overlay(Taproot资产表示覆盖)的首字母缩写,这表明如果没有Taproot,这种升级将无法实现。

Taproot激活

当提出对比特币进行升级时,首先由开发者社区进行讨论。一旦提案正式化,它将被分配一个BIP编号。然后,代码编写、审核、测试和合并的工作开始,接着,比特币节点运营商必须决定何时以及如何激活这个升级。

在2020年1月,Schnorr、Taproot和Tapscript升级分别被分配了BIP 340、341和342号,并自那时以来一直在进行讨论和开发。到了2020年底,这三个升级的代码实现已经完成、测试通过、审核完毕,并合并到比特币核心代码中。

随着时间的推移,在2021年5月,超过90%的矿工表示支持Taproot升级,并且于2021年11月12日的区块709,632上激活并强制执行了BIP 340、341和342。在激活比特币的升级方面,有多种方法可供选择,而比特币社区则选择了一种路径并加以执行。

比特币激活路径

在比特币社区中,BIP 8和BIP 9是两种常见的激活升级的方法。这两个过程都始于对比特币矿工支持情况的调查。如果绝大多数矿工通过他们挖掘的区块中的消息表示支持升级,那么升级将被激活。但是,BIP 8和BIP 9之间存在一个关键区别,即在矿工支持不足的情况下如何处理。

根据BIP 9的规定,如果矿工支持不足,升级不应进行,而BIP 8则规定在延迟期之后应该激活升级。在Taproot激活的情况下,这两种提案的变体被提出。然而,值得注意的是,比特币社区对Taproot的支持是压倒性的,很少有批评意见。

因此,具体的激活路径在很大程度上是无关紧要的。

声明:

  1. 本文转载自[river],著作权归属原作者,如对转载有异议,请联系Gate Learn团队,团队会根据相关流程尽速处理。
  2. 免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。
  3. 文章其他语言版本由Gate Learn团队翻译, 在未提及Gate.io的情况下不得复制、传播或抄袭经翻译文章。
即刻开始交易
注册并交易即可获得
$100
和价值
$5500
理财体验金奖励!
立即注册