主页 > imtoken最新版本 > 比特币的下一次升级将包含什么 Taproot

比特币的下一次升级将包含什么 Taproot

imtoken最新版本 2024-01-26 05:15:59

比特币病毒解决了吗_比特币缺点解决方案_比特币分叉对比特币的影响

比特币的下一次升级将包含什么 Taproot

在不久的将来,比特币用户可能会享受到一种叫做“Taproot”的技术。 该技术由比特币核心开发者、Blockstream 前 CTO Gregory Maxwell 最先提出,将扩展比特币智能合约的灵活性,同时提供更好的隐私保护。 在区块链领域,即使是最复杂的智能合约也很难与常态区分开来。

虽然这是一个非常庞大的工程,但它不仅是理论上的,而且是可以实现的。 比特币最多产的几位贡献者,包括 Pieter Wuille、Anthony Towns、Johnson Lau、Jonas Nick、Andrew Poelstra、Tim Ruffing、Rusty Russell 和 Gregory Maxwell,正在研究一种称为 Schnorr 签名的方案,该方案还包括 Taproot。 据悉,这些升级将在下一次协议更新中呈现。

本文将解释什么是 Taproot 及其工作原理。

P2SH

所有比特币本质上都被“锁定”在脚本中:几行代码可以嵌入到区块链的交易中,定义这些比特币将如何在下一次交易中使用。 花费这些比特币的条件通常包括提供签名以证明所有权。 但也可以设置其他条件,比如timelocks(这部分比特币只能在某个区块高度或日期后才能使用)或者multisig(多重签名,要求一组私钥中的大多数私钥提供签名)下来使用)。

您还可以混合选择设置不同的条件,创建复杂类型的智能合约。 例如,如果 Alice 和 Bob 都签名,或者一周后 Alice 单独签名,或者 Bob 单独签名并提供密码,则可以使用比特币。 满足这三个条件中的任何一个,就是这部分比特币的使用方式。

自 2012 年以来,初始脚本(条件)一般不公开可见; 只有这些比特币的新主人知道如何使用它们。 这是通过一种称为 P2SH(Pay to Script Hash)的技术实现的,最初只有脚本的哈希值包含在区块链中。 这串看似随机打乱的数字实际上包含一小部分比特币。 当所有者使用时,他会同时展示整个脚本和脚本的“解决方案”。 然后任何人都可以使用初始哈希来检查提供的脚本确实是锁定比特币的原始脚本,并且可以立即得出脚本的执行满足脚本的结论。

然而,当使用比特币时,目前有必要表明需要满足的所有条件——包括尚未满足的条件。 这有两个主要缺点。 第一,数据量大,尤其是条件多的时候。 其次,这对隐私不利。 每个人都可以知道资金是如何使用的,例如使用了哪个钱包,更多的信息将会被披露。

桅杆

为了解决这两个缺点,开发者提出了一种使用默克尔树的解决方案:MAST(Merkelized Abstract Syntax Tree)。 简而言之,所有资金条件都被单独散列(而不是组合成一个散列)并包含在一个 Merkle 树中,从而产生一个散列:Merkle 根,用这个 Merkle 根“锁定”比特币。

这样做的好处是,如果你需要展示Merkle树中的任何数据,你可以使用Merkle根和一些附加数据(Merkle路径)来验证Merkle树中是否包含特定数据。 Merkle 树信息的其余部分仍处于散列密文状态。

对于 MAST,这意味着只需要揭示某些满足条件。 如果在上面的例子中,爱丽丝在一周后花掉了资金,她只需要揭示这个条件(和 Merkle 路径)。 没有人知道这笔钱到底是怎么花的,可能是Alice和Bob一起花的,也可能是Bob一个人花的。 这使得 MAST 在数据处理方面比复杂的 P2SH 智能合约更高效,同时也增加了隐私。

然而比特币缺点解决方案,在 Schnorr 签名的情况下,Taproot 可以做得更好:因为 MAST 结构可以隐藏在交易中。

Schnorr 签名

长期受到众多比特币开发者青睐的Schnorr签名方案仍在开发中,将通过软分叉协议升级部署。 许多密码学家认为 Schnorr 签名方案是该领域最好的方案,因为它的数学特性提供了很强的正确性,不受延展性的影响,并且验证速度相对较快。

在比特币领域,Schnorr 签名最显着的优势是它的“线性数学”,它支持签名聚合:同一笔交易中的多个签名可以合并为一个签名。 类似的方法也可以应用于多重签名交易。 将公钥和签名组合成“门限公钥”和“门限签名”可以使多重签名交易与常规交易无法区分。

这个签名方案还有很多有趣的用途。 例如,可以使用其他数据来“调整”私钥和公钥。 举个简单的例子,将私钥与其对应的公钥乘以2,可以得到新的公私钥。“私钥×2”和“公钥×2”仍然对应,“私钥×2” " 仍然可以签署使用“公钥 x 2”验证的信息。 不知道原始密钥对被调整过的人甚至看不出有什么不同; 这些调整后的密钥看起来与任何其他密钥对相同。

这导致 TapRoot。

直根

Taproot 基于一个有趣的见解,即几乎任何 MAST 结构,无论多么复杂,都可以(或应该)包含一个条件,允许所有参与者就结果达成一致并共同签署结算交易。 在前面的例子中,如果鲍勃知道爱丽丝下周可以自己花掉所有的资金,他最好现在就和她签约。 (在许多典型的智能合约设置中,如果他不这样做,他甚至会受到惩罚。复杂性实际上只是为了让每个人都诚实。)

Taproot 类似于 MAST,一般允许所有参与者合作花费资金,一种“合作终止合约”。

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

首先,合作终止合约将利用 Schnorr 签名的阈值方法使其看起来像正常交易。 因此,将所有参与者的公钥叠加生成一个“门限公钥”。 对应于这个门槛公钥,所有参与者签名的组合——他们的“门槛签名”——允许他们花费这些资金。

但他们唯一能做的就是将资金用作正常交易——目前还没有类似 MAST 的结构。 这是 Schnorr 签名的另一个作用。

所有使用资金的替代方式(非合作结算)将合并到不同的脚本中。 然后,散列这个脚本并用它来调整阈值公钥。 与前面示例中使用的“公钥 x 2”不同,这将导致“阈值公钥 x 脚本”(仍在简化中)。 当然,这个“门限公钥x脚本”对应的是“门限签名x脚本”。

现在,如果合作使用资金,所有参与者将他们的签名组合成一个“门槛签名”,并用脚本对其进行调整。 由此产生的“门槛签名 x 脚本”允许他们花费资金。 然而,重要的是,对于局外人来说,所有这些仍然看起来像一个普通的公钥和一个普通的签名,即一个普通的交易。

只有在无法合作终止合约的情况下,其他人才会知道这是阈值公钥:它已被调整。

在这种情况下,原始门槛公钥和脚本将被公开(因为其余参与者仍然希望获得资金)。 这证明“阈值公钥 X 脚本”是用这个特定脚本调整的。 因此,就像 P2SH 中的哈希率一样,这一调整向世界证明,如果满足脚本中指定的其他条件,资金应该是可以使用的。

或者,不是使用脚本调整阈值公钥,而是可以使用 Merkle 树的根值来调整阈值公钥,Merkle 树包含可以花费资金的所有不同条件:MAST 结构。 然后比特币缺点解决方案,要使用这些资金,只需披露已满足的支出条件。

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

比特币病毒解决了吗_比特币分叉对比特币的影响_比特币缺点解决方案

自2012年

最值得信赖的区块链、加密货币信息来源

长按二维码