主页 > imtoken钱包怎么登录 > 比特币签名的未来:Schnorr 签名、密钥聚合和交互式聚合签名

比特币签名的未来:Schnorr 签名、密钥聚合和交互式聚合签名

imtoken钱包怎么登录 2023-01-18 16:13:25

最近,我继续阅读比特币白皮书,正在准备一系列比特币视频。希望大家多多关注。

比特币架构的核心——数字签名

通过签名,用户可以发送或接收比特币。中本聪在《比特币白皮书:点对点电子现金系统》第 2 章“交易”中定义:

我们定义一个电子货币(一种电子硬币)是这样一串数字签名:每个拥有者在上一笔交易和下一个拥有者的公钥上签署一个随机散列的数字签名,并将这个签名附加到最后在电子货币中,将电子货币发送给下一个拥有者。收款人可以通过验证签名来验证链的所有者。

一开始,有很多签名方案可供选择。其中,比较突出的是RSA、ECDSA和Schnorr。中本聪希望比特币的签名方案能够在不占用太多空间的情况下保证高安全性,并且已经标准化并被广泛使用和采用。

过去,ECDSA 算法赢了。

RSA算法的密钥体积较大,存储效率较低。 256 位 ECDSA 密钥与 3072 位 RSA 密钥具有相同的安全性。

Schnorr算法是密码学家Claus-Peter Schnorr于1989年提出并申请专利保护的数字签名算法。虽然相比 ECDSA 算法,Schnorr 算法更安全,扩展性更强,但由于之前的专利保护(专利保护于 2008 年 2 月到期),Schnorr 算法并没有得到普及,也没有标准化,也没有被广泛采用。

一个私钥可以存多少个比特币

最后,中本聪选择了开源、标准化、广泛采用的 ECDSA(椭圆曲线数字签名算法)。当时,ECDSA 已包含在 Internet 上广泛使用的 OpenSSL 安全工具集中。

现在,Schnorr 算法卷土重来

多重签名的需要

在原始比特币中,只能使用一个私钥来签署交易。谁拿到了私钥,谁就可以控制对应公钥名下的比特币。但是,一个安全可靠的系统必须对单点故障免疫(单点故障,简称SPOF,是指系统中的单点故障,会使整个系统无法运行)。如果私钥丢失或泄露,其比特币的合法所有权将丢失,这对大账户相当不友好。

因此,2011 年 12 月 20 日,Bitcoin Core 开发团队在 Bitcoin Core 代码中添加了多重签名功能。

多重签名意味着一笔交易需要两个或更多签名才能有效。多一份签名一个私钥可以存多少个比特币,一份保证。

例如,使用多重签名技术,隔壁的小明、小张和老王共同监管 1 个 BTC。如果你想使用这个 BTC,至少需要两个人同意。即使小明的私钥被盗,BTC 仍然是安全的。黑客虽然有小明的私钥,但不能转让这个BTC,但小张和老王可以联合签名转让。

ECDSA 算法不适合多重签名

一个私钥可以存多少个比特币

但是,ECDSA 算法不适合多重签名。因为它不可扩展。

例如,当三个人中的两个签名时,他们必须使用各自的公钥来验证他们签名的合法性。无法同时验证两个签名是否正确。

比如张的私钥sk1,签名σ1,只能通过私钥sk1对应的公钥pk1进行验证。老王的私钥sk2,签名σ2,只能通过私钥sk2对应的公钥pk2进行验证。必须单独验证σ1在pk1中合法,σ2在pk2中合法,不能通过小张和老王的共同签名σ一次性验证。

最初,多签名支持密钥的数量为 3,后来扩展为最多支持 15 个密钥。如今,大量联合或托管账户使用多重签名,大量比特币交易使用多重签名。但是ECDSA在多重签名过程中占用了过多的存储资源和计算资源。

同时,多重签名的地址以数字“3”开头。使用ECDSA多签,入侵者可以识别多签交易,也可以看到所有参与者的公钥,不利于隐私保护。

(图片来源网络,版权删除)

Schnorr算法更适合多重签名

一个私钥可以存多少个比特币

与ECDSA相比,与Schnorr签名相比,具有以下优势:

更安全:Schnorr 签名具有安全性证明——假设椭圆曲线离散对数问题 (ECDLP) 很难,则 Schnorr 签名可以很容易地在随机预言模型安全性中得到证明。 ECDSA 不存在这样的证书。

不要恶意攻击。 ECDSA 签名具有延展性一个私钥可以存多少个比特币,可将给定公钥和消息的现有有效签名更改为对同一密钥和消息有效的另一个签名。比特币一直存在延展性攻击,直到 SegWit 被激活(使用 Segwit 交易)才修复。这在 BIP62 和 BIP66 中有详细描述。而 Schnorr 签名则证明它不会被恶意篡改。

线性。 Schnorr 签名算法是线性的!这很酷,很多应用都可以由此衍生出来,其中最重要的就是多重签名。多重签名时,使用ECDSA,会有N个签名,验证也需要做N次。

但是,如果您使用 Schnorr,由于线性特性,您可以进行签名堆叠,只保留最终的堆栈签名。无论输入多少,同一笔交易都可以叠加为签名,一次验证即可。

比如小明、小张、老王的多重签名设置为3,在ECDSA中,需要签名3次,验证3次;而在 Schnorr 中,三方可以合作生成一个签名,该签名对其公钥之和有效,并且可以验证一次。

大大提高了效率和隐私。

密钥聚合

一个私钥可以存多少个比特币

使用 Schnorr 签名方案,多重签名环境中的所有参与者都可以将他们的密钥组合为“单一密钥”。要花费资金,只能使用此密钥。此属性称为“键聚合”。

为了验证所有密钥的总和,Bitcoin Core 引入了一个名为 OP_CHECKDLS 的新代码,其中包括离散对数签名 (DLS) 验证系统,以使用更少的操作码更有效地验证签名,执行效率更高。

密钥聚合属性,也可以在单个事务事务中使用。在这个交易中,所有的输入都只用一个签名验证。

通过密钥聚合,Schnorr 签名方案不仅通过减少所需的签名数量释放了一些空间,而且还保护了希望使用多重签名方案的用户的信息。

交互式聚合签名

在 Schnorr 签名方案下,交易的所有输入签名都可以组合成一个称为 IAS(“交互式聚合签名”)的签名。表示所有输入签名之和的单个签名。

一个私钥可以存多少个比特币

IAS 可用于交易中的所有输入。使用 OP_CHECKDLS 可以轻松验证新签名。单个比特币交易,通常有多个输入。过去,每个输入都需要单独的签名才能成功完成交易。 IAS 签名可以验证所有输入。

有分析师表示,这种交叉输入聚合,最多可以释放 25% 的空间,可以用来容纳更多的事务,从而提高每秒的事务数。

结论

2014 年,Bitcoin Core 开始讨论如何实现 Schnorr 签名。经过深入研究,Pieter Wuille(一) 著名的比特币核心开发者)提交了 Schnorr BIP。

目前,Schnorr 签名方案已经标准化。最著名和被广泛采用的 Schnorr 签名方案是 ed25519,被许多加密货币使用。

Schnorr签名方案,结合密钥聚合,IAS签名,优化比特币交易,签名更少,验证更容易,更好地保护交易隐私,更具可扩展性,改进了比特币的架构,奠定了比特币交易的基础。更健康的比特币生态系统。

参考文献

Bit 比特币多重签名现状 Schnorr 签名和比特币多重签名 Schnorr 签名详解金马,别人离开币圈的时候,正是我深耕的时候。让我陪你度过熊市怎么样?币圈金马奖将与您一起走上币圈的光明之路。