1. 首页
  2. 资讯
  3. 区块链

Schnorr即将开启的多签时代意味着什么

“没有Schnorr,Taproot就不会让你一路走到你想去的地方。”

——Pieter Wuille
本文约4000字,阅读全文需约10分钟。

“Schnoor签名、Taproot和带有多签的签名聚合很可能作为一个升级包被同时添加到比…

没有Schnorr,Taproot就不会让你一路走到你想去的地方。”

——Pieter Wuille
本文约4000字,阅读全文需约10分钟。

Schnoor签名、Taproot和带有多签的签名聚合很可能作为一个升级包被同时添加到比特币中,这是一些非常令人期待的加密创新”, Andreas M. Antonopoulos在今年年初提到比特币的下一次升级时难掩兴奋。

Schnorr即将开启的多签时代意味着什么

知名比特币布道者Andreas M. Antonopoulos

Antonopoulos是《精通比特币》(Mastering Bitcoin)的作者,同时也是加密货币世界里重要的技术专家和备受尊敬的人。他预测比特币的升级将在6个月后以软分叉的形式实现,包含Schnoor在内的升级将为用户带来如今比特币尚不拥有的在隐私方面的好处。

这次升级的BIP已经被创建,相关规范正在最终确定中。比特币核心开发者Pieter Wuille和其他开发者编写了实现代码,第一个原型也已经被创建,以Schnoor为核心的比特币豪华升级包已在路上。

那么,广受比特币开发者青睐的Schnoor究竟是什么?它带来的又是什么?

01

Schnoor签名究竟是什么

 

比特币是通过数字签名来解锁UTXO中的未花费余额,从而完成交易的。

以下图为例,在交易B中,Bob转给Carol一个比特币。Bob需要分两步来完成这笔交易:

 

Schnorr即将开启的多签时代意味着什么

1. 证明自己拥有这一个比特币。

Bob为什么拥有这一个比特币,因为Alice给了他这一个比特币;Alice在交易A的「加锁」部分把给Bob的这一个比特币用Bob的公钥哈希锁上,该公钥哈希也是Bob的钱包地址。

Bob在交易B的「解锁」部分提供自己的公钥以及用私钥创建的签名,就能证明这一个比特币是自己的,从而完成解锁,可以使用这一个比特币。

2. 把这一个比特币给Carol。

Bob在交易B的「加锁」部分用Carol的公钥哈希把这一个比特币锁上,即表明这个比特币是属于Carol的了。

当Carol要使用这个比特币时,比如想转给Dave,Carol就需创建一笔交易C,先在「解锁」部分用自己的公钥及私钥签名解锁这个比特币,再在「加锁」部分用Dave的公钥哈希把这个比特币锁上。

不难发现,比特币需要利用公钥进行加锁,利用私钥签名进行解锁,从而实现加密货币的交易。公钥、私钥及其签名如何产生?通过数字签名算法。

Schnoor即是一种数字签名算法,它将在下一次升级中取代比特币现在使用的签名算法ECDSA。Schnorr由德国数学家、密码学家Claus Schnorr提出,该算法可以与ECDSA使用同一个椭圆曲线:secp256k1,因此升级起来的变动不会很大。

Schnorr最突出的特点在于它是「线性」的,也就是说,它可以把多个公钥或多个私钥签名聚合成一个新的公钥或一个新的签名(也可以理解为把多个需要同时解开的锁变成一个锁,把用于解锁的一串钥匙变成一把钥匙),而且这个新的公钥或签名还满足线性特征。

做一个不是特别适合但能说明问题的比喻,在一笔使用Schnorr的多签交易中,如果参与方Alice的公钥或签名是1,Bob的是2,Carol的是3,Dave的是4,那么这笔交易对外显示的公钥或签名是10(1+2+3+4=10),而不是1、2、3、4。

02

Schnoor签名算法的好处

 

Schnorr 开发者Andrew Poelstra认为,人们之所以对Schnoor感兴趣,是因为它提高了比特币的可伸缩性,并允许人们创建具有非常多参与者的多签交易,这里边的参与者不仅指多个人,也可能是Liquid网络、闪电网络、智能合约等等。

此外,Andrew 认为Schnorr 签名在结合Taproot 和Scriptless Scripts后,会让所有比特币交易看起来都一样,无论这是一个普通交易还是一个复杂交易,这种方式将极大改善比特币的隐私情况。

这些优势源于在多签的情况下,如果使用的是ECDSA,用N个公钥加锁,就需要有与之对应的N个签名来做验证解锁,验证的工作也需要进行N次;如果使用的是Schnorr,N个公钥可以聚合为一个公钥,验证时也只需用一个聚合签名做一次验证。

这种「线性」的特质让Schnorr在性能、体积、隐私等方面均优于ECDSA。

性能:Schnoor的性能优势显而易见,它减少了一个多签交易的验证工作量,此外还有可能实现多个交易的批量验证,也就是用一个区块中所有交易的聚合签名一次性验证所有交易,从而提升比特币的验证速度。

体积:Schnorr使用的是聚合公钥和聚合签名,这会减少多重签名的大小,通过将无关数据移出区块链提高系统的可伸缩性,节点将拥有更多的带宽同时还能减少存储量。Andrew认为如果每个人都采用这种方法,等于变相将比特币的容量增加了 10%至20%。

隐私:Schnoor的隐私优势在于它在交易脚本中使用聚合公钥和聚合签名完成加锁和解锁操作,某个用户的原公钥和原签名都不会暴露。外界只能看到10,而不能看到1、2、3、4,外界甚至无法知道这是一笔多签交易还是一笔非多签交易。

Schnoor签名还有更多有趣的使用方式,比如它能够在被调整后使用。人们可以把一个聚合公钥乘以2作为新的聚合公钥来上锁,解锁时只需要把聚合签名也乘以2就能完成解锁。这样一来其他人就无法知道原聚合公钥和原聚合签名是什么,他们也看不出公钥或签名是否被调整过。

03

Schnorr与Taproot的组合拳

 

币印矿池创始人潘志彪同样认为这次升级意义重大,他在个人微博中写到:“MAST、Schnorr、Taproot,组合起来,燃到爆”,Schnorr如何与Taproot等技术手段组合起来使用?这套组合拳又能给比特币带来什么好处?

先从了解它们是什么开始。Schnorr是签名算法,它是这些技术中最基础也是最核心的;MAST、Taproot、Graftroot、Scriptless scripts等则都是脚本结构,它们可以通过利用Schnorr让自己的功能淋漓尽致的发挥。

比特币脚本是比特币交易的载体:一笔比特币交易是通过执行一段比特币脚本来实现的,解锁就是执行「输入脚本」,加锁就是执行「输出脚本」。脚本结构是指比特币脚本的数据结构。

 

Schnorr即将开启的多签时代意味着什么

如前文所述,当人们使用自己的未花费余额进行比特币交易时,需要在输入脚本部分提供自己的公钥和私钥签名,以证明自己拥有这些余额。

P2SH是比特币最基本的脚本结构,它向外展示整个脚本的内容,包括公钥和私钥签名的信息,节点通过这些信息来验证该笔交易。但同时,节点和任何人都可以获取这笔交易的全部细节信息。

因此我们说比特币是透明的。虽然它能够把物理实体的个人与比特币账户隔离,实现物理个体的匿名,但如果站在比特币账户的角度,P2SH是不为账户提供隐私的,所有人都可以知道这笔资金是哪个/哪些账户以什么方式使用的。

因为P2SH的缺点,开发者提出了一种新的脚本结构MAST,它是一种树状的结构,具体而言是一棵默克尔树,即哈希树,树上的每一个节点存储的都是哈希值。其结构如下图所示。

 

Schnorr即将开启的多签时代意味着什么

树状结构

比特币交易使用MAST结构是指在多签情况下,把一笔资金不同的使用条件单独进行哈希处理,生成一个哈希值储存在这棵树的叶子节点中;这些哈希值逐层向上递归,最终生成一个哈希值放在树的最顶端的节点中,即默克尔根中。

这样一来,当验证某笔交易时就不需要暴露全部的脚本信息,只需要提供默克尔根和抵达某使用条件的默克尔路径上的数据,其他信息仍然是哈希密文状态。MAST脚本结构不仅提供了隐私性,还增加了数据处理效率。

现在可以讨论Taproot了。

Taproot是一种特殊的MAST,基于Schnorr签名。它可以包含复杂的交易条件和资金使用细节,就像MAST一样,再把所有这些内容作为一个新的资金使用条件(新的锁)提供给外界使用,这个新的使用条件和该使用条件下的解锁方法(新的钥匙)是通过Schnorr的线性特征来支持的。

在最后的呈现上,Taproot无需披露任何脚本信息,也无需暴露原公钥、原签名,它的输出是一个聚合签名加锁,也只要用一个聚合签名解锁。

再次做一个不是特别适合但能说明问题的比喻。孙悟空可以把猴毛变成猴子,而Taproot做的是把猴子变成猴毛,也就是说,我们把普通交易看做一根猴毛,把MAST支持的复杂交易看做一只功能强大的猴子,Taproot可以把MAST这个猴子变成猴毛,即Andrew说的让所有的比特币交易看起来都一个样,不管它本身是多么复杂。

这对比特币隐私,包括多签交易下的账户隐私、智能合约隐私,以及Liquid网络、闪电网络等的隐私都是极大的改善。因为智能合约、Liquid网络、闪电网络,以及更多链外扩容的方案都是一种多签,一种复杂交易。

04

组合拳开启多签大幕

 

在现实生活中,我们常常会提倡某种「生活方式」,在加密货币这个世界的生活中,或许我们该把多签当作一种生活方式来倡导,让多签成为加密货币的常识性和习惯性的资金使用方式。

以Schnorr和Taproot为基础的多签对交易隐私的提升在前文已经阐述,它可以隐藏参与者的公钥和私钥签名信息,也可以隐藏资金被使用的细节。

多签的另一个好处是提高安全性。不管是加拿大Quadriga CX交易所创始人离世,导致1.6亿美元的加密货币被锁事件,还是从Mt.gox开始就一直持续不断的交易所钱包被盗事件,都可以通过多签得到改善。

多签提供了一种加密货币的「寻回」方法,让我们在无法通过某条路径或某种方式解锁比特币时,还能有其他的解锁方式。这就像在现实生活中,如果我们弄丢了储蓄卡取不出钱的时候,还能用存折本取钱。

(注:当然现在是补办储蓄卡,但补卡这种方式和多签的方式是完全不同的。加密货币没有补卡这种方式,因为私钥本身就是终极的唯一的凭证,不像银行在账户凭证之上还有用户身份这一层的凭证可用于补卡)。

多签也可以提供严苛的加密货币「使用」条件,常规情况下只有这些条件同时被满足时才能解锁比特币。这就像进入银行的金库,需要刷卡和刷视网膜打开金库大门,需要密码和钥匙打开保险柜。

这些都是多签带来的好处,而Schnorr和Taproot的组合进一步升级了这种好处,让多签能以更高效、更隐私的方式实现。

需要注意的是,即使是升级之后,一笔未使用多签的普通交易也是无法得到Schnorr和Taproot带来的好处的,其隐私级别与升级前是一样的。

因此一方面需要提倡多签,而另一方面,即使普通交易不使用多签,多签也在大量应用场景中被需要,比如通过智能合约使用比特币,通过Liquid网络、闪电网络,以及更多链外扩容的方式使用比特币。多签本身的地位正在变得越来越重要。

而Schnorr和Taproot的组合——后续该组合还可能包含Graftroot等更多多签脚本结构——将极大地加强多签的性能,让比特币上的复杂交易成为可能。

复杂交易在过去很容易就可以被识别出来,但升级后它们将和普通交易看起来一样,交易将变得私密,比如当用户打开或者关闭闪电网络通道时,除了参与方之外没有人知道发生了什么,其他人看见的只是一个普通的加锁公钥。Wuille称Schnorr和Taproot是比特币在隐私性上的巨大胜利。

Wuille同时也认为Schnorr和Taproot是比特币智能合约的巨大胜利。它们将允许创建具有复杂使用条件的多签交易,在Schnorr线性特征的支持下,可能衍生出许多新的应用以及链下创新。

此外,在Schnorr和Taproot的支持下,复杂交易不仅有高的执行效率,还不需要占用额外的比特币区块链空间。Schnorr使用的是聚合公钥和聚合签名,只需一次验证;Taproot支持很大的脚本树,但占用的空间却很小。

不难发现,虽然比特币之前就支持多签,但包含Schnorr和Taproot在内的比特币升级包无疑会全面开启多签的大幕,而多签带来的,不仅是一个更安全、更具隐私、更有伸缩性的比特币区块链,还是一种支持智能合约、Liquid网络、闪电网络,以及未来更多比特币应用方式的基础设施。

这是一个值得期待的、更好的未来。

————————

作者特别感谢币印矿池创始人潘志彪先生对本文的帮助。

参考:

1.《理解比特币脚本》,汪海波

2.《Schnorr签名介绍》、《Taproot简介》,比特币实验室

3.《Taproot Is Coming: What It Is, and HowIt Will Benefit Bitcoin》,Aaron van Wirdum

4.《独家对话Schnorr签名开发者 Andrew Poelstra:Schnorr 将使比特币扩容 10%-20%》,

5.《What is Bitcoin’s Graftroot? CompleteBeginner’s Guide》,Brian Curran

 

– END-

作者:李画(币信特约撰稿人)

声明:登载此文出于传递更多信息之目的,观点仅代表作者本人,绝不代表Hi区块链赞同其观点或证实其描述。
提示:投资有风险,入市须谨慎。本资讯不作为投资理财建议。

特此通告:由于运营管理等问题,本站已转让出售。