主页 > imtoken官网下载广告 > 比特币签名是什么意思 - 可用于比特币的 Schnorr 签名方案

比特币签名是什么意思 - 可用于比特币的 Schnorr 签名方案

imtoken官网下载广告 2023-04-12 07:42:47

比特币签名是什么意思? 2018年,区块链协议公司Blockstream的密码学家Gregory Maxwell和Pieter Wuille提出了一种名为MuSig的Schnorr签名方案,理论上可以替代目前比特币ECDSA签名算法。 如今,Blockstream 已将 MuSig 从学术论文转变为可用代码比特币是什么概念,并将其开源。

对此,来自 Blockstream 的数学家 Andrew Poelstra 与社区分享了这项技术的进展。 以下是他分享内容的翻译:

莱特币是比特币?_比特币是什么概念_q币和比特币是货币吗

(图片来自:Blockstream)

目前,比特币等区块链普遍采用ECDSA签名验证算法。 这显然是中本聪在 2008 年根据当时的环境做出的技术决定。 然而,ECDSA 签名有一些严重的技术限制。 特别是,多重签名和阈值签名很难用 ECDSA 生成。 ECDSA 签名具有复杂的代数结构,使其不灵活且难以使用,迫使开发人员在跨链原子互换或闪电网络等应用中使用比特币脚本,通过更灵活的签名方案实现更紧凑和私密这些应用程序。

2018年,区块链协议公司Blockstream的密码学家Gregory Maxwell、Pieter Wuille等人提出了名为MuSig的Schnorr签名方案,理论上可以替代目前的比特币ECDSA签名算法。 这种多重签名方案提供可证明的安全性,甚至可以抵御恶意签名者的共谋子集,并产生与普通单签名者 Schnorr 签名无法区分的签名(增强隐私)。

经过近一年的发展,Blockstream 已经将 MuSig 从一篇学术论文变成了可用的代码。 本周,其开发人员会将代码合并到 secp256k1-zkp(secp256k1 的一个分支)中。 机密交易 (CT) 技术扩展到其 Elements 和 Liquid 侧链产品。

q币和比特币是货币吗_莱特币是比特币?_比特币是什么概念

需要注意的是,目前的比特币核心代码库仍然使用secp256k1。 因此,目前MuSig还没有应用到比特币上,但这也是Blockstream期待的目标。

假设比特币启用这种签名方案,它将允许闪电网络在无脚本脚本中应用。

MuSig签名方案的优势

根据Blockstream官方发布的声明,MuSig签名方案的应用将着重于以下两个优势:

无论签名者设置如何,验证者都会看到相同的短、恒定大小的签名。 在区块链系统中,验证效率是最重要的考虑因素。 使用签名者的详细信息来增加验证者的负担是不合理的,除非出于安全的需要,否则没有必要。 此外,MuSig 签名方案能够提高隐私性,因为它们隐藏了确切的签名者策略。

莱特币是比特币?_比特币是什么概念_q币和比特币是货币吗

为通用公钥模型提供可证明的安全性。 这意味着签名者可以完全灵活地使用普通密钥对进行多重签名,而无需提供有关生成或控制这些密钥的具体方式的任何额外信息。 关于密钥生成的信息可能很难在比特币的上下文中提供,因为各个签名者有不同且限制性的密钥管理策略。 此外,对密钥生成细节的依赖可能会与 Taproot 交互不良,Taproot 是一种提议的比特币缩放方案,其中公共签名密钥可能具有额外的隐秘语义。

神话和安全 API 开发

与多重签名协议的所有数学描述一样,MuSig post-release 假设参与者在整个签名过程中都可以访问内存,内存是持久的、易于更新的,并且不能被攻击者“重置”到以前的状态。 它还假设签名者可以访问与制服无法区分的随机源。 不幸的是,现实世界并没有那么简单,Blockstream 花费了大量精力设计了一个 API,该 API 可以在各种场景中使用比特币是什么概念,而不会因未说明的假设而导致密钥丢失。

与 Schnorr 签名或 ECDSA 一样,MuSig 签名方案在其结构中使用了一个秘密的“nonce”,它必须统一随机生成。 任何与统一标准的偏差,即使是很小的偏差,都可能导致钥匙丢失和资金被盗。

Blockstream 的主要设计目标是创建一个安全的防误用 API,即使在受限环境中也不会鼓励危险的使用模式。

莱特币是比特币?_q币和比特币是货币吗_比特币是什么概念

均匀随机性

对于单个签名,实现均匀随机随机数的标准方法很简单:获取一些秘密数据和待签名的消息,将这些数据通过密码哈希函数传递,并获得每个消息唯一的均匀随机值被签都是独立的。

然而,对于多重签名,这种简单而强大的解决方案变成了一种负担。 恶意签名者可能会在同一消息上请求两次多重签名,从而在第二次迭代中调整其对签名的贡献。 如果第一个签名者通过在消息旁边散列一个秘密来选择他的随机数,他最终会在两个非常不同的签名中使用相同的随机数(本质上是导致 PS3 被黑客攻击的相同故障模式。)不幸的是,与单一签名者的情况不同,没有简单的解决方案,因为单个签名者必须在知道要生成的签名的所有细节之前选择他们的随机数。

解决这个问题的传统方法是使用硬件随机数生成器,这种生成器在散列法流行之前就已经使用了。 不幸的是,此类方案成本高昂,受环境偏差或其他外部影响的影响,最重要的是,我们无法验证它们是否正常运行。

有一些创造性的解决方案可以验证这一点,Blockstream 将在以后的文章中探讨这些解决方案。 目前,选项是要求 API 用户为每个签名会话提供唯一的“会话 ID”。 nonce 是通过散列签名者的秘密、签名者集合、要签名的消息以及此会话的唯一输入而生成的。 有权访问随机数生成器的用户可以使用它来生成会话 ID,而有权访问持久内存的用户可以简单地使用计数器。

比特币是什么概念_莱特币是比特币?_q币和比特币是货币吗

目前,开发人员希望尽快产生一个真正强大的解决方案。

关于重放攻击

即使有可靠的随机源,仍然有可能从多重签名参与者中提取私钥(如果有可能从过程中的一个点重放签名协议),这种类型的攻击称为“重放”。 release attack”以对在可重启虚拟机中运行的签名者发起攻击,以及支持间歇性签名和从可序列化状态恢复的虚拟机。它甚至可能在没有主动攻击者的情况下意外发生,例如运行从相同状态克隆的两个虚拟机,或者在不同步的分布式数据库上执行代码。

具体来说,如果一个签名者贡献了一个多重签名,并且签名过程在他的随机数被选中后的某个时刻重新开始,其他签名者对签名的贡献可以被修改。

这些类型的攻击不会通过单个签名发生,因为它们是在单个步骤中生成的,没有可以重新启动的中间状态。 这些额外的挑战是多轮加密协议所独有的。

莱特币是比特币?_比特币是什么概念_q币和比特币是货币吗

如果不研究新的机制,目前的MuSig签名方案无法保护登录虚拟机的用户。 同样,这个限制似乎可以被 Blockstream 的开发人员移除,他们目前正在积极研究解决方案。

结论和未来的工作

上述所有讨论都隐含了这样一种观点,即多方协议面临着比单边协议困难得多的新挑战。 就数学复杂度而言,MuSig 比 Bulletproofs 简单得多。 但就实施复杂性而言,MuSig 更进一步,需要在反脆弱性和 API 灵活性之间进行更多权衡。

本文仅介绍多重签名部分,在以后的文章中,开发人员还将介绍阈值签名,这是一个相关概念,其中 n 个签名者的任何子集,只要有足够的签名者,都可以生成签名,而不需要整个签名者的贡献签名组。

在以后的文章中,我们还将讨论一些使非随机性更加安全和可验证的技术。 特别是,通过使用一种称为合同签署的技术,主机可以消除任何偏离不受信任的硬件钱包随机数生成器的可能性。

此外,通过利用零知识证明的力量,应该可以消除偏向随机性和重放攻击带来的风险,消除对持久内存的需求,并将 MuSig 协议从 3 轮通信减少到 2 轮。

读者可以在 Github (-zkp/tree/secp256k1-zkp/src/modules/musig) 上查看 MuSig 的代码,并发表评论或提出改进建议。