当前位置:首页 > 物联网 > 区块链
[导读] 在不久的将来,比特币用户可能会享受到一种名为“Taproot”的技术。该技术最早由比特币核心开发者兼Blockstream前CTO Gregory Maxwell提出,它将扩展比特币的智能合约灵

在不久的将来,比特币用户可能会享受到一种名为“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 (向脚本哈希支付) 的技术实现的,最初只有脚本的哈希值被包含在区块链中。这串看似随机打乱的数字实际上包含着一部分比特币。当所有者使用时,他会同时展示整个脚本以及脚本的“解决方案”。然后,任何人都可以使用初始哈希来检查所提供的脚本是否确实是锁定比特币的原始脚本,并且可以立即得出满足脚本的执行结论。

然而,当比特币被花掉时,目前必须表明所有满足要求所需的条件——包括尚未满足的条件。这有两个主要的缺点。第一,数据量很大,尤其是条件很多的情况下。其次,这不利于隐私。所有人都可以知道这笔资金用了什么方式使用,例如,会揭露出使用了哪种钱包甚至更多的信息。

MAST

为解决这两个缺点,开发者们提出了一种使用默克尔树的解决方案:MAST(默克尔化抽象语法树)。简而言之,所有的资金使用条件都被单独进行哈希处理(而不是组合成单个哈希值),并包含在一棵默克尔树中,最终生成单个哈希值:默克尔根,以这个默克尔根来“锁定”比特币。

这么做的好处是,如果需要展示默克尔树中的任何数据,都可使用默克尔根和一些附加数据(默克尔路径)来验证特定数据是否被包含在默克尔树中。其余的默克尔树信息仍然是哈希密文状态的。

有了MAST,意味着只需要揭示出特定的满足条件。如果在上面的例子中,Alice在一周之后使用了这些资金,她只需要揭示这个条件(以及默克尔路径)。没人知道这笔钱具体是怎样花的,可能是Alice和Bob一起花的,也可能是Bob一个人花的。这使得MAST比复杂的P2SH智能合约在数据处理上更有效率,同时还增加了隐私性。

然而,在使用 Schnorr签名的情况下,Taproot可以做得更好:因为MAST结构可以隐藏在一笔交易当中。

Schnorr签名

Schnorr签名方案长期以来一直受到许多比特币开发者的青睐,目前还在开发阶段,它将会通过软分叉协议升级进行部署。许多密码学家都认为Schnorr签名方案是这一领域中的最佳方案,因为其数学特性提供了很强的正确性,不仅不受延展性影响,而且验证速度相对较快。

在比特币领域,Schnorr签名最显著的优点是其“线性数学”(linear math),它支持签名聚合:同一笔交易中的多个签名可以合并为一个签名。类似的方法也可以应用于多签交易。将公钥和签名组合到“阈值公钥”和“阈值签名”中,可以使多签交易与常规交易变得无法区分。

这种签名方案还有更多有趣的使用方式。例如,可以使用其他数据来“调整”私钥和公钥。举一个简化的例子,可以通过将私钥及其对应的公钥都乘以2来作为新的公私钥。“私钥x 2”和“公钥x 2”仍然对应,“私钥x 2”仍然可以对使用“公钥x 2”验证的信息进行签名。任何不知道原始密钥对被调整了的人,甚至都看不出有什么差异;这些调整过的密钥看起来和其他的密钥对是一样的。

这就衍生出了TapRoot。

Taproot

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

Taproot类似于MAST,并且通常允许所有参与者可以合作来花费这笔资金,即“合作终止合约”。

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

首先,合作终止合约将利用Schnorr签名的阈值方法,让它看起来像一笔普通交易。因此,所有参与者的公钥会叠加生成“阈值公钥”。与该阈值公钥相对应的是,所有参与者签名的组合——他们的“阈值签名”——允许他们花费这些资金。

但他们唯一能做的就是把这笔资金当作一笔普通交易来使用——目前还没有类似MAST的结构。这就是Schnorr签名的另一个作用。

所有可选择的资金使用方式(非合作结算)都会被合并到不同的脚本中。然后,对这个脚本进行哈希处理,并使用它来调整阈值公钥。与前面示例中使用的“公钥x 2”不同,这将产生“阈值公钥x脚本”(尚在简化当中)。当然,这个“阈值公钥x脚本”对应于“阈值签名x脚本”。

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

只有在合作终止合约被证明是不可能的情况下,其他人才会知道这是阈值公钥:它是经过调整的。

在这种情况下,原始阈值公钥和脚本将会被展示出来(因为剩余参与者仍然希望能动用这笔资金)。这证明“阈值公钥X脚本”是用这个特定脚本进行调整的。因此,就像P2SH中的哈希值一样,这种调整向全世界证明了,如果满足脚本中指定的其他条件,资金就应该是可花费的。

或者,与其用脚本调整阈值公钥,倒不如用默克尔树的根值来调整阈值公钥,默克尔树的根值包含所有不同的可以使用资金的条件:MAST结构。那么,要使用这些资金,只需要披露已经满足的支出条件。

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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭