比特币提款的卡会被冻结吗,比特币taproot升级有什么用

  

  很快,比特币用户可能会受益于一种名为“Taproot”的技术。这项技术最早是由比特币核心的贡献者、Blockstream的前CTO Gregory Maxwell提出的。它将扩大比特币智能合约的灵活性,同时提供更多隐私。   

  

     

  

  虽然这是一个非常大的工程,但它不仅仅是一个理论。比特币代码的几个最多产的贡献者,包括Pieter Wuille、Anthony Towns、Johnson Lau、Jonas Nick、Andrew Poelstra、Tim Ruffing、Rusty Russell和Gregory Maxwell,正在研究一个名为Schnorr Signature的方案,该方案将包含在Taproot中。据报道,这些升级将在下一次协议更新中显示。   

  

  本文将简要介绍什么是直根,以及它是如何工作的。   

  

  桅杆   

  

  所有的比特币基本上都被“锁定”在脚本中:它定义了在下一次交易中将如何使用这些硬币。成本条件通常提供一个签名来证明货币的所有权。其他众所周知的条件包括时间锁定(硬币只能在特定的块高度或日期后使用)或多签名(硬币只能在一组私钥中的一些私钥提供签名时使用)。   

  

  不同的条件可以混合和匹配,以创建复杂类型的智能合约。这种合同的一个例子是,如果爱丽丝和鲍勃都签了,或者一周后爱丽丝单独签了,或者鲍勃单独签了,同时提供了一个秘密号码,那么这笔钱就可以用了。这三个条件先满足哪一个,它的使用方式就对应哪一个。   

  

  从2012年开始,脚本(条件)一开始就没有公开,只有货币的新主人知道如何使用。这是通过一种叫做P2SH(向脚本哈希付费)的技术实现的。起初,区块链中只包含脚本哈希。这个看似随机的数字负责保管钱。当主人花费这些硬币时,会同时显示整个剧本和剧本的“解”。然后,任何人都可以使用初始哈希来检查所提供的脚本是否确实是锁币的原始脚本,并可以立即得出满足脚本要求的结论。   

  

  尽管如此,钱用完了,还是要把所有可能的条件都揭示出来,包括那些不满足的条件。主要有两个缺点。第一,它的数据量很大,尤其是在很多条件下。二是不利于隐私。每个人都会学到各种不同的使用资金的方法。比如这些方法可以揭示用的是什么样的钱包,甚至更多的内容。   

  

  MAST(基于Merkel的抽象语法树)就是提出的解决方案,它使用Merkel树(密码学家Ralph Merkel发明的一种紧凑数据结构)来解决这些缺点。简而言之,所有使资金可用的不同条件都被单独散列(而不是组合成单个散列)并包含在一个默克尔树中,最终生成单个散列:默克尔根,它“锁定”货币。   

  

  唯一的优点是,如果显示了Merkel树中的任何数据,Merkle根和一些附加数据(称为Merkle路径)可以用于验证特定数据是否包含在Merkel树中。默克尔树的其余部分仍然被散列和隐藏。   

  

  对于MAST,这意味着只需要显示满足的条件。如果在上面的第一个例子中,爱丽丝在一周后花掉了这些资金,她只是透露了这个条件(以及默克尔路径)。没人知道这笔钱到底是怎么花的。可能是爱丽丝和鲍勃一起度过的。如果鲍勃加了一个秘密号码,他现在可能已经独自度过了。这使得MAST在数据处理方面比复杂的P2SH智能合约更高效,同时增加了隐私性。   

  

  然而,使用Schnorr签名方案,Taproot可以做得更好:因为事务可以隐藏MAST结构。   

  

  Schnorr签名方案   

  

  Schnorr签名方案一直是比特币开发者关注的焦点。目前,他们正在开发这个方案。根据计划,该方案将通过软叉部署。在很多密码学家看来,Schnorr签名方案是这个领域中最好的,因为它提供了很强的数学正确性,没有事务扩展性,验证速度也比较快。   

  

  在比特币的背景下,Schnorr签名方案最显著的优点是允许签名聚合:即同一笔交易中的几个签名可以合二为一。类似的技术也可以用于多签名交易。将公钥和签名组合成“门限公钥”和“门限签名”,可以使多重签名交易与任何常规交易没有区别。   

  

  这个签名方案还可以以更有趣的方式使用。例如,数据可用于“调整”私钥和公钥。作为一个简化的例子,私钥及其对应的公钥可以通过相乘来调整。私钥x 2和公钥x 2仍然对应,私钥x 2仍然可以对可以被公钥x 2验证的消息进行签名。任何不知道密钥对调整的人都不会看到异常。调整后的密钥看起来与任何其他密钥对没有区别。   

  

  这就是启用TapRoot的原因。   

  

  主根   

  

  TapRoot基于一个有趣的认识:无论多么复杂,几乎所有的MAST结构都可以(或者应该)包含一个条件,允许所有参与者就结果达成一致,并简单地一起签署一个结算交易。在前面的例子中,如果鲍勃知道爱丽丝下周可以自己拿走所有的资金,他最好现在就和她签约。(在很多典型的智能合约设定中,如果他不这么做,甚至会受到惩罚。这种复杂性的目的是让每个人保持诚实。)   

  

Tabroot类似于MAST,它总是会包含一个条件,这使得所有参与者都可以合作来花费资金。

  

而通过使用Schnorr签名,它会变得非常有趣。

  

首先,合作结算将利用Schnorr方案的阈值技巧,使它看起来像一笔正常的交易。因此,所有参与者的公钥被叠加到一起,从而导致“阈值公钥”。与这种阈值公钥相对应的是,所有参与者签名的组合(他们的“阈值签名”)允许他们花费资金。

  

到目前为止还不错,但把这些资金当作正常交易来花掉,是它们唯一能做的事(在没有MAST结构的情况下)。这就是Schnorr签名方案的另一个把戏。

  

所有可供选择的资金使用方式(非合作输出)被合并到不同的脚本。然后,这个脚本经哈希并用于调整阈值公钥。与前面示例中使用的“公钥x 2”不同,这将导致“阈值公钥x脚本”(我们仍在简化)。此“阈值公钥x脚本”当然与“阈值签名x脚本”对应。

  

现在,如果资金是合作使用的,所有参与者都将他们的签名组合成“阈值签名”,并用脚本对其进行调整。产生的“阈值签名x脚本”允许他们花费资金。然而,重要的是,对于外部世界而言,所有的这些,看起来仍然像一个普通的公钥和一个常规的签名,即一笔常规的交易。

  

只有在合作结束(cooperative close)证明是不可能的情况下,才可以显示阈值公钥的实际情况:调整。

  

在这种情况下,将显示原始阈值公钥和脚本。这证明“阈值公钥X脚本”是用这个特定脚本进行调整的。因此,就像P2SH中的哈希值一样,这种调整向全世界证明了,如果满足脚本中指定的其他条件,资金就应该是可花费的。

  

或者,可使用默克尔树的Merkle根来调整阈值公钥,而不是使用脚本来调整阈值公钥,该Merkle根包含了可以使用资金的所有不同条件:即MAST结构。那么,要花掉这些资金,只需要揭示已满足的支出条件。

  

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

  

以上就是TapRoot概念的简单介绍,其实施细节可能会有所不同。有关这种技术的更多详细信息,请阅读GregoryMaxwell的原始Tabroot提案,或者观看Pieter Wuille的视频讲解。

相关文章