taproot.max-800x800.jpg

Taproot即将到来:它是什么,以及它将如何使比特币受益

不久之后,比特币用户可以从一个名为“Taproot”的技巧中受益。首先由比特币核心贡献者和前Blockstream CTO Gregory Maxwell提出,Taproot将扩展比特币的智能合约灵活性,同时提供更多隐私。在区块链中,即使是最复杂的智能合约,也常常与常规交易无法区分。

虽然这是一项重大任务,但这不仅仅是理论。几位最多产的比特币核心贡献者- 包括Pieter Wuille,Anthony Towns,Johnson Lau,Jonas Nick,Andrew Poelstra,Tim Ruffing,Rusty Russell以及Gregory Maxwell – 正在制定Schnorr签名提案,其中包括Taproot,所有在一个协议升级。

这是Taproot是什么以及它是如何工作的。

MAST

所有比特币基本上都被“锁定”在脚本中:嵌入在区块链中的交易中的几行代码,用于定义如何在下一个交易中使用硬币。支出条件通常涉及提供签名以证明硬币的所有权。但是其他众所周知的条件例如包括时间锁(硬币只能在特定块高度或日期之后花费)或multisig(只有在一组私钥中的某些私钥提供签名时才能使用硬币)。

可以混合和匹配不同的条件,以创建复杂类型的智能合约。这种合同的一个例子可能是,如果爱丽丝和鲍勃都签字,可以花钱币, 要么 如果一个星期后爱丽丝独自签字, 要么 如果鲍勃独自签名同时还提供一个秘密号码。首先满足这三个条件中的哪一个,就是如何花钱币。

自2012年以来,脚本(条件)通常一开始并不公开;只有硬币的新所有者才知道如何花钱。这是通过一个名为P2SH(付费到脚本哈希)的技巧完成的,其中最初只有脚本的哈希包含在区块链中。这个看似随机乱码的数字可以存放硬币。当主人花钱时,他会透露整个剧本 以及 同时对脚本的“解决方案”。然后,任何人都可以使用初始哈希来检查提供的脚本是否确实是锁定硬币的原始脚本,并且可以立即得出满足脚本要求的结论。

然而,当硬币花费时,目前有必要揭示可能已经满足的所有可能条件 – 包括未达到的条件。这有两个主要缺点。一,它的数据很重,特别是如果有很多条件的话。第二,它对隐私不利。每个人都可以学习所有不同的资金支出方式,例如,可以揭示使用何种钱包,甚至更多。

MAST(Merkelized Abstract Syntax Tree)是一种提议的解决方案,它使用Merkle树(由密码学家Ralph Merkle发明的数十年的紧凑数据结构)来解决这些缺点。简而言之,资金可以用于的所有不同条件都是 个别地 散列(而不是组合成单个散列)并包含在Merkle树中,最终产生单个散列:Merkle根。这个Merkle根“锁定”硬币。

独特的好处是,如果 任何 显示Merkle树中的数据,Merkle根和一些附加数据(称为Merkle路径)可用于验证Merkle树中是否包含该特定数据。 Merkle树的其余部分仍然是哈希和隐藏的。

使用MAST,这意味着只需要显示满足的条件。如果,在上面的初始示例中,Alice一个星期后单独花费资金,她只是揭示了条件(以及Merkle路径)。没有人知道这笔钱也可以由爱丽丝和鲍勃一起度过,或者如果他加了一个秘密号码,就可以单独和鲍勃一起度过。这使得MAST比复杂的P2SH智能合约更具数据效率,并增加了启动隐私。

然而,对于Schnorr,Taproot可以做得更好:交易可以隐藏MAST结构存在。

SCHNORR

Schnorr签名方案长期以来一直是比特币开发商的愿望清单,目前正在开发中作为软叉协议升级进行部署。许多密码学家认为Schnorr签名方案是该领域的最佳方案,因为其数学特性提供了强大的正确性,它不具有可塑性并且验证相对较快。

作为比特币背景下最着名的优势,Schnorr的“线性数学”允许签名聚合:同一事务中的几个签名可以合并为一个。类似的技巧可以应用于multisig事务。将公钥和签名组合成“阈值公钥”和“阈值签名”,可以使多重事务与任何常规事务无法区分。

签名方案可以更有趣的方式使用。例如,可以使用数据来“调整”私钥和公钥。作为简化示例,可以通过将两者相乘来调整私钥及其对应的公钥。 “私钥x 2”和“公钥x 2”仍然对应,“私钥x 2”仍然可以签署可以用“公钥x 2”验证的消息。任何人都不知道原始密钥对被调整甚至看不出任何差异;调整后的键看起来像任何其他键对。

这就是Taproot的功能。

直根

Taproot基于一个有趣的实现:无论多么复杂,几乎任何MAST构造都可以(或应该)包括允许所有参与者就结果达成一致并且只是一起签署结算交易的条件。在前面的例子中,如果Bob知道Alice可以自己在下周申请所有资金,那么他现在也可以与她合作一起签字。 (在许多典型的智能合约设置中,如果他不这样做,他甚至会受到惩罚。复杂性实际上只是为了让每个人都诚实。)

Taproot类似于MAST和 总是 包括所有参与者可以合作筹集资金的条件:“合作关闭”。

通过利用Schnorr签名,这就是它变得有趣的地方。

首先,合作关闭将利用Schnorr的门槛技巧使其看起来像是一个人从一个人到另一个人的常规交易。因此,所有参与者的公钥被加在一起,产生“阈值公钥”。对应于该阈值公钥,所有参与者签名的组合 – 他们的“阈值签名” – 允许他们花费资金。

到目前为止一切都那么好,但是将资金花费在正常交易上是他们唯一能做的事情 – 还没有类似MAST的结构。这就是其他Schnorr技巧的用武之地。

可以花费资金的所有替代方式 – 非合作结果 – 这一次被合并到一个不同的脚本中。然后,此脚本被散列并用于 门槛公钥。如前面的示例中所使用的,不是“公钥x 2”,而是导致“阈值公钥x脚本。”(我们仍然在简化。)这个“阈值公钥x脚本”当然对应于“阈值签名x脚本”。

现在,如果钱是合作花费的,所有参与者将他们的签名合并到“阈值签名”中并用脚本调整它。由此产生的“门限签名x脚本”允许他们花费资金。然而,重要的是,对于外部世界,所有这些仍然只是一个普通的公钥和常规签名 – 一个常规交易。

只有当合作关闭证明不可能时,才能显示阈值公钥的真实含义:调整。

在这种情况下,两者 原版的 阈值公钥和脚本显示。这证明了使用此特定脚本调整了“阈值公钥x脚本”。所以,就像P2SH中的哈希一样 向世界证明,如果满足本脚本中规定的替代条件,资金应该是可用的。 (而且,与P2SH一样,这些条件当然可以立即用于支付资金。)

或者,不是用脚本调整阈值公钥,而是可以用Merkle树的Merkle根调整阈值公钥,该Merkle树包括可以花费资金的所有不同条件:MAST结构。那么,为了花费资金,只需要披露已经满足的支出条件。

因此,Taproot提供了MAST的所有好处,而在正常情况下,没有人会知道常规交易隐藏了如此复杂的智能合约作为后备。

这是Taproot概念的概要;具体实施可能有所不同。有关详细信息,请阅读 最初的Taproot提案 由Gregory Maxwell或观看 这个演讲 作者:Pieter Wuille。




ELLELL独家报道

隐藏内容仅限 扫码支付会员浏览!

下方微信扫码支付10元后可注册浏览!

微信扫码支付10元查看更多隐藏内容!微信
扫码付费会员注册
马上注册!
扫码付费会员注册这个计划后浏览本站所有内容
单次订阅
仅仅 60美元

单次一个月付费会员!

获得一整月期限的全站所有付费内容浏览权限!
周期订阅计划
月付100美元

周期性推荐会员!

月付100美元获得一整年期限的全站所有付费内容浏览权限!
海迪U美
微信打赏 支付宝扫码打赏

如果文章对您有帮助,欢迎移至上方按钮打赏ELLELL

海迪U美
微信打赏

如果文章对您有帮助,欢迎移至上方按钮打赏ELLELL

关注我们微信公众号:ellell_cc

模特经纪平台