当前位置:首页 > 比特币新闻 > 正文

Schnorr签名的威力:强化比特币可扩展性和隐私的签名算法

来源: 互联网时间:2016-08-05 14:28:00

隔离见证已经进入最后的测试阶段,很快就会在比特币网络中激活。这是一个好消息,因为它用一种创新的方式提升了比特币的区块容量,可以让比特币网络容纳更多的交易,同时还解决了交易延展性问题。

the-power-of-schnorr-the-signature-algorithm-to-increase-bitcoin-s-scale-and-privacy

而且它还引入了脚本版本控制——这是对比特币协议的一个扩展,这为新类别的创新提供了条件。

其中一项创新在比特币开发者的心愿单顶端好长时间了,它就是:Schnorr签名。

在即将到来的隔离见证实现后,Schnorr签名将会紧随其后到来,它将改善比特币的可扩展性、效率和隐私,所有这些改善一气呵成。

我们来看一下它所能实现的改善。

签名

首先,我们先回顾一下:什么是签名?

比特币有赖于一种名叫“公钥加密学”的数学理论,这种密码系统使用两种密钥:私钥和公钥。

一个私钥对应一个公钥,它们以数学方式相连。一个私钥很容易推导出对应的公钥,但一个公钥是不可能推导出与之相对的私钥。这是一个“单行道”。

为了能花掉某个地址中的比特币,你必须证明这个地址对应私钥的所有权归你,为了在不曝露这个私钥的情况下,证明这个私钥的所有权,就需要使用密码签名。

使用这个交易数据和这个私钥进行一种计算,这样就产生了一个签名。这时就能用到公钥的神奇功能:知道公钥,任何人都可以验证创建这个签名的私钥是否是正确的那一个。不需要知道这个私钥本身就可以完成这一步。

正因为如此,这个私钥的拥有者就可以签名一个交易花掉比特币而不必担心其它人知道这个私钥并偷走比特币了。这个私钥永远不会泄露,而且这个签名只对这一个交易有效。

Schnorr签名

那么什么是Schnorr签名呢?

Schnorr来源于它的发明人的姓名Claus-Peter Schnorr,它是一种签名策略:一系列连接私钥、公钥和签名的数学规则。很多密码学家认为Schnorr签名在相关应用中是最好的,因为它有很高水平的正确性,没有延展性问题,验证速度相当快,最重要的是支持多重签名:可以把多个签名聚合成一个新的签名。

然而,到目前为止,Schnorr签名还不能在比特币中使用,另外一种类型的签名策略——椭圆曲线数字签名算法(ECDSA)集成在比特币协议中,改变这些需要硬分叉。

隔离见证此时就发挥了作用。

隔离见证会把所有的签名数据转移到一个交易上的独立空间中:见证数据(witness)将不会被嵌入“老的”比特币协议中。多亏有了脚本版本控制,所有见证中的规则都可以通过软分叉来改变,包括这种签名策略的类型。

这就为Schnorr敞开了大门。

容量

Schnorr对比特币最大的好处是多重签名聚合。

很多比特币交易包含多个输入,这些输入记录着这些比特币的来源地址。(这相当于在实体世界中把零钱攒在一起支付一个大的交易一样。)到目前,这些输入都需要有各自的签名,这意味着一个交易必须包含所有这些签名,网络必须传输所有这些签名,同时一个区块必须包含所有这些签名。

但是,使用Schnorr签名,所有的这些输入只需要一个合并签名就可以替代所有这些不同的签名。很明显这将带来数据上的优势,因为,一个交易只需要一个签名就行了,而且,网络只传输这一个签名,一个区块只包含这一个签名。这意味着为交易腾出了更多的空间。

举例来说:BitcoinCore给出隔离见证方案,可以让所有的见证数据大小减少75%。因此1MB的见证数据可以压缩到0.25MB,这就在原来的区块多腾出了了0.75MB空间给交易数据。然后,聚合的Schnorr签名又可以减少见证数据量,按照1MB可以减少0.5MB来算,那么通过这两次减小,见证数据可以压缩到0.125MB,原来的区块可以腾出的空间就上升到0.845MB。(相当于区块容量提升大约17%)

能腾出多少空间取决于区块中所包含的的交易的类型。比特币Core开发者 Eric Lombrozo粗略的估算,Schnorr签名最终会把总容量提高至少40个百分点——而且是在隔离见证增加60%到100%容量之后。

多重签名

上面所描写的容量提升只是针对一般交易,也就是包含多个输入的交易。在多重签名交易中,Schnorr的威力更加强大(多重签名交易中,一个输入需要多个签名,通常这些签名来自不同的人)。

就像正常的交易一样,多重签名交易将只需要单个签名替代多个签名,不管它本来需要多少签名,也不管这个交易涉及的人有多少。

这为更为复杂的智能合约架构打开了大门,这只需要一点点的数据需求量。不管是多重签名交易类型是2/3,还是3/15,或者100/100等,所有类型需要的签名数据量是相同的,和单签名交易类型所需量一样。

隐私

Schnorr签名带来的第三大优势是:刺激了隐私保护。

就像上文所说,一个交易可以包括多个输入。通常情况下,与这些输入相连的地址都属于同一个人。(就像上文提到的零钞和硬币的例子)。

比特币Core开发者Gregory Maxwell发明了一种隐私强化方法——CoinJoin,它可以让不同的用户把他们的交易组合进一个交易中。这个交易包含来自不同交易的多个输入,然后把钱发送的多个输出中,传送给不同的收款人。

这相当于一个组织的人,把各自的钱和硬币放在一个篮子中,去不同的商店购物。每一个个体将会得到他付过钱的商品,不必每个个体自己去购买商品。

如进展顺利,CoinJoin将成为在比特币协议中加强隐私的一种方式,因为哪个输入支付了哪个输出变得不明确,更不要说哪个人支付了那个谁谁。

CoinJoin并不是一个新概念,但到目前CoinJoin的使用还存在困难,大部分的人视其为可有可无的功能,因为大部分人的这种不理会态度,那些想使用此功能的人就被认为别有目的;这首先给CoinJoin造成打击。

然而Schnorr签名可以为CoinJoin带来新的优势。它让所有CoinJoin交易的参与者不仅可以组合他们的交易,而且可以组合他们的签名。这意味着这个交易的体积比所有个体交易组合要小得多。同样,这也意味着矿工打包这个交易所有的费用要小很多。

通过使用Schnorr签名,CoinJoin不仅可以加强隐私,最重要的是可以降低每个人的交易费用。实际上,为了使用最优隐私选项,需要支付一个成本,这只是一个人人可以选择的选项,它大大加强了比特币的隐私保护。

免责声明:

1.本文内容综合整理自互联网,观点仅代表作者本人,不代表本站立场。

2.资讯内容不构成投资建议,投资者应独立决策并自行承担风险。