广告

什么是Taproot(BIP 341)?

什么是Taproot软分叉?它将为比特币带来什么好处?

01


什么是Taproot(BIP 341)?

BIP 341是Schnorr/Taproot/Tapscript提案的第二部分,它扩展了Schnorr的功能,以实现更大的扩展性、效率和支付隐私性。

正如我们在第一篇文章中所解释的那样,Schnorr使比特币多签名交易看起来像是区块链上的标准交易,即付款到公钥哈希(Pay-to-Public-Key-Hash, P2PKH)。

当与Schnorr结合使用时,Taproot(BIP 341)将进一步扩大交易的隐私性,这些交易有:

1.使用P2PKH和P2WPKH的单笔支付,

2.MuSig的n-of-n或等价的支付(类似于当前使用的P2SH和P2WSH 2-of-2多签),

3.最常见的k-of-n多签

4.闪电通道关闭,原子交换和其他可能需要各方就结果达成共识的合约协议。

这四个交易类别代表了迄今为止比特币的大部分交易。无论合约多么复杂,Taproot都能使协作输出结果看起来与区块链上的单笔支付相同。描述其他合约结果的脚本不添加到区块链中,从而为区块中更复杂的交易释放了空间。

在解释Taproot工作原理之前,了解它是MAST协议的实现很有用。下面进行详细介绍。

什么是MAST?

MAST是默克尔化抽象语法树(Merkelised Abstract Syntax Trees)的简称,最初由比特币开发者Johnson Lau博士于2016年提出。

MAST使用新的见证程序,并使用Merkle树编码脚本中独立的分支。Merkle树是一种数据结构,树这一术语用于描述分支结构。它通常把图表顶部称为根,而图表底部称为叶,如下图所示。

图1:Merkelized抽象语法树(MAST)

MAST可用于创建具有许多不同条款的复杂合约。仅显示执行的脚本,从而节省区块链上的空间并允许更复杂的脚本或者合约。

Merkle树是通过分别哈希每个脚本以获得简短的唯一标识符而创建的。然后,将这些标识符中的每一个与另一个标识符配对并再次进行哈希处理,从而生成另一个简短的唯一标识符。

这是一个交互过程,一直持续到只有一个标识符。在上图中称为Merkle根 — 地址=哈希(1,2) ,可以在仅几个字节的数据中唯一标识整个集合。我们可以将Merkle根视为比特币的密码箱。

与支付到脚本哈希(P2SH)相比,MAST允许在Merkle树中构造多个支出条件。仅显示满足的条件,其中使用Merkle根和路径来验证条件是否位于Merkle树中,同时将其余树隐藏起来。

例如,如果我们有一个复杂的脚本说,某人不能花掉比特币,直到一个月后(即一个时间锁)或者可以用3-of-5的多重签名来花费。在现在的比特币中,一旦比特币被花掉,这两种情况都会显示出来。

MAST的独特优势在于,如果揭示了Merkle树中的任何数据,则可以使用Merkle根和一些其他数据(称为Merkle路径)来验证该特定数据是否包含在Merkle树中。树的其余部分(以及其他条件)仍保持散列和隐藏状态。这意味着,如果所有参与者都同意,则仅需要透露所满足的条件。

有复杂交易任务的用户可以创建较小的交易,而带有大量亚脚本(sub-script)的更复杂的合约的效率收益则更大。与使用任何其他当前机制相比,MAST使得更多的条件分支成为可能。这打开了对更高级的智能合约的支持,而不必向比特币节点没有额外费用。

在上面的图1中,Alice甚至可以将更长的受益者添加到MAST结构中,而不会影响她交易的字节数。支付给矿工的费用没有增加,因此她仍然可以仅使用32个字节来花费她的比特币。在网络尺度上,区块将能够容纳更多的复杂的交易。

缺点是,默认情况下,每个人都必须使用MAST结构来维护隐私集。Merkle树的顶部分支始终可见,这意味着观察者可以确定存在其他支出条件。而且,对于大多数不需要应急脚本的交易来说,这也是一个负担,增加了成本。

到目前为止,MAST尚未部署到比特币中,因为所需的升级影响深远且复杂。这是Schnorr/Taproot/Tapscript提案的目的,在简单性和额外功能之间平衡。

Taproot如何改善MAST?

Taproot是最初由Greg Maxwell,Peter Wuille和Andrew Poelstra提出的比特币提案。后来,IRC和bitcoin-dev邮件列表上的十个主要贡献者都接受了它。Schnorr增加了一个新的签名类型,Taproot在此基础上又推出了一个新的交易输出类型以及确定支付条件的新方法。

Taproot具有自己的Merkle树版本,称为脚本树(script tree)。参与者可以选择以下使用:1)作为常规签名的公钥,或2)与脚本一起使用。

首先,是默认的支出路径,在此路径上无法区分单方或多方公钥。对于替代的支出途径,除非我们支出,否则不会显示隐藏的脚本。可以将不同的脚本组织到Merkle树中,也可以通过显示其中一个子句来使用输出。

如果我们使用主支出脚本花费交易,则只需提供Merkle证明,该证明由主支出脚本和替代支出脚本的哈希组成,足以证明主支出脚本在脚本树中。

Taproot使用MAST结构将条件隐藏在Merkle根下面。Merkle根本身会被密钥承诺(key commitment)隐藏起来,并可以通过密钥直接花费。只有一个密钥进入区块链,没有人能看到存在的其他条件。

与Schnorr结合使用时,Tastroot输出隐藏了MAST结构。在Merkle树的顶部,有一个用于发布单个公钥和签名的选项。实际上,这使P2PKH和P2SH交易看起来相同。

用一个例子来说明,比如关闭一个闪电网络通道。

闪电网络通道是2-of-2多重签名的变体。和需要复杂脚本来关闭闪电网络通道相比,Schnorr使人们可以把签名作为Taproot公钥/签名一起呈现。当双方都同意时,看起来就像,有人将带有常规签名的输入支付到两个地址上一样。观察者将无法分辨出它是一个闪电网络通道。

图2 TapBranch

用于关闭闪电网络通道的TapBranch脚本树(或TapTree)

为了隐藏MAST结构,上面图2中的TapBranch哈希对聚合的公钥进行了哈希处理(请记住,由于Schnorr,Alice和Bob可以将其公钥加在一起以创建taproot内部密钥)。

所得的哈希用作私钥,从该私钥派生另一个公钥(已调整的公钥)。调整密钥(也称为密钥对隐藏)嵌入脚本1和2。

然后将经过调整的公钥添加到taproot内部密钥中,以创建taproot输出密钥。该过程的简化图见下图3。

图3:Taproot里的调整公钥

如前所述,有两种支出方式。默认的支出路径是当Alice和Bob都同意关闭闪电网络通道,Taproot输出密钥确保该交易看起来像标准的P2PKH交易。在其他情况下,一旦花费比特币并且所有其他选项隐藏,所使用的脚本会被显示。

Taproot输出密钥可用于支付三个条件中的任何一个。在上面的示例中,如果Alice和Bob都同意闪电网络支付,则他们可以一起协作Schnorr签名,创建主公钥,将签名添加在一起并生成主签名。

双方各自以自己的签名进行部分签名,关闭闪电通道就像是是对公钥的直接支付。

在不协作的情况下,仅显示所使用的脚本。验证者将能够知道阈值公钥已通过MAST结构的Merkle根进行了调整。但是,所有其他选项/脚本保持隐藏。

从图3中,我们还可以看到脚本树为比特币提供了一个新的恢复选项。Taproot让丢失的比特币有了新的恢复选项(适用于钱包升级的用户)。就单个私钥而言,如果你丢失了它,比特币将永远丢失。相反,如果你丢失了私钥,但是你的资金是以Taproot的形式输出的,则可以有另一条途径可以找回比特币,比如你可以通过由你家人持有恢复的3-of-5备份密钥找回比特币。

总结

总之,Taproot(BIP 341)提高了比特币脚本功能的隐私性、效率以及灵活性,使开发人员可以编写复杂的脚本,同时最大程度地减少对链上的影响。

在扩容方面,可节省复杂交易大量的交易费用,因为数据密集型脚本不再需要支付比标准的“支付到公钥哈希”交易更高的费用。网络上的交易越复杂,效率上的收益就越大。

由于我们仅使用一个签名就可以执行复杂的交易,因此无论涉及多少签名者,用于聚合密钥和签名的字节数都完全相同。相比之下,使用“ 付款至见证脚本哈希(P2WSH)”的多重签名,每附加一个密钥添加8.5 vbytes,每附加一个签名添加大约18.25 vbytes。

在隐私方面,BIP 341旨在最大程度地减少链上交易透露出的关于交易输出花费条件的信息。大多数使用Taproot的应用程序都可以使用基于密钥的支出路径,该路径是私有的,并且可以推广到m-of-n多重签名策略。

尽管Schnorr使多重签名交易看起来像“常规”的“支付至公钥哈希”交易,但Taproot的加入扩展了看起来类似的交易类型,使“支付至公钥哈希”和“支付到脚本哈希”无法区分。

和SegWit和Schnorr一起,钱包和服务也必须升级才能有Taproot功能。随着越来越多的用户利用Taproot功能,对效率和隐私的积极影响也随之放大。

Taproot还为获得其他隐私好处打开了大门。例如,它将带有适配器签名的原子交换成为可能,这将使原子交换和其他类型的交易无法区别。这些交换最终可能被用作混币机制(类似于CoinJoin),但是其好处取决于钱包和服务提供商广泛采用Taproot输出。

Taproot带来的另一件有趣的事情是跨输入聚合(Cross-input aggregation),但它未包含在BIP 340–342中。虽然密钥聚合对于花费单个输入的多重签名交易很有用,但是大多数交易将多个输入组合在一起。使用跨输入聚合时,需要单个签名来同时花费交易中的所有输入,这将激励CoinJoin的使用。对于外部人来说,基于Schnorr的CoinJoin交易也将看起来像常规的单签名者交易。

由于需要进行广泛的更改和检查,因此BIP 341中不包括跨输入聚合。开发人员希望避免新功能对比特币安全性造成任何不利影响,同时仍为进一步升级和功能(例如跨输入聚合)提供坚实基础。

在有关Schnorr/Taproot/Tapscript系列文章的第三篇,我们将解释什么是Tapscript(BIP 342)以及BIP 340-342激活的可能方法。

24小时热点

比特币触及7.3万美元后回到6.1万美元,历经大起大落

比特币触及7.3万美元后回到6.1万美元,历经大起大落 ...

404

波场区块链浏览器

链圈百科:欧易web3钱包是什么?

欧易web3钱包(Erc20 web3 Wallet)是一种 ...

139944

Gemini 交易所

区块链的六大层级结构

一、技术层 技术层是区块链的最底层,是最重要的核心技术 ...

149508

网易星球

重拳打击上市公司财务造假 案件呈四大特点

证监会4月24日消息,2019年以来,证监会严厉打击上市公司 ...

29787

虎符

一个人进了传销的征兆

一、莫名其妙地拜访老朋友 有的人突然起来变得很说不出话来, ...

57923

Solanat

辛国斌出席“创客中国”中小企业创新创业大赛全国总决赛

2020年10月15日,由工业和信息化部、财政部共同主办的2 ...

13868

CryptoQuant

01-27发布:区块链网评分降幅日榜

01-27发布:区块链网评分降幅日榜 第一名:BT ...

3424

区块链财经

比特币的下一次牛市将在何时到来?

比特币的价格在2021年爆发,4月突破60,000美元,11 ...

20373

红洞数藏

前五月轻工业累计营收近7万亿

本报北京7月9日电 (记者韩鑫)近日,中国轻工业联合会公布 ...

16012

EOSPark

11-9发布:区块链网评分降幅日榜

11-9发布:区块链网评分降幅日榜 第一名:PRA ...

8057

白话区块链
广告

热点专题

专门忽悠企业家的中国十大骗子大师

区块链网创立于2015年初,为国内第一批有资质的区块链媒体, ...

2737144

希壤

2023年打假总结:Pi Network项目的传销性质Pi币

曾经,号称“走路就能赚钱”拥有大量用户和广泛影响的国内APP ...

2416605

文昌链

国内460种传销币套路和骗子币名单大曝光

打着区块链旗号,以聚集性传销、网络传销为手段,以每枚3元的价 ...

2081479

Coin Metrics

原力元宇宙佛萨奇骗局

原力元宇宙佛萨奇骗局是一种不可思议的幻想计划,它由一群英勇可 ...

1787234

聚币网

诈骗披露:成功学周文强

又一个“成功学”大师周文强翻车 你想一夜暴富吗?你想年薪百 ...

1429765

Lazy Lions

中国十大骗局之pi network(π币、pi币、派币、兀币)

中国十大骗局之pi network(π币、pi币、派币、兀币 ...

1309127

Gemini 交易所

柴犬币SHIB来了

因其可爱形象和马斯克代言,近段时间最耀眼的加密货币非狗狗币莫 ...

1264421

Luart

非常硬核的LP流动性挖矿的核算

MDX不同挖矿方法的真实收益率 如何挖取高APY?2021年 ...

1152358

RMRK

链圈打诈:3000名解放军去缅甸真的假的?

3000名解放军去缅甸这个是假新闻,出兵这是个大问题,如果我 ...

1150578

a16z

什么是去中心化交易所(DEX)?

去中心化交易所是一个基于区块链的交易所,它不将用户资金和个人 ...

1140251

bitFlyer交易所