Il4Y0XEpzGRJzS55S0RBx1j6nrN262UlOBqwswbc.png

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

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

正如我们在“BTC第三次减半全解读”中所说,比特币在2020年值得关注的一个进展就是Schnorr/Taproot软分叉,计划的这次分叉将包含三个比特币改进协议BIP 340、341和342。我们将对这三个BIP进行系列解读,上一期金色硬核(Hardcore)解读了Schnorr签名的BIP340。本期聚焦Taproot。enjoy it

A1HUuYLsyayOTHGSSCMlob9NKdAiOVEzLQo8Qj9v.png

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

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

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

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

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

总结

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

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

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

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

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

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

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

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

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

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

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

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

金色财经近期推出金色硬核(Hardcore)栏目,为读者提供热门项目介绍或者深度解读。

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

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

Taproot如何改善MAST?

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

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

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

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