{"content":{"title":"什么是 Schnorr 签名，对比特币有什么作用？","body":">- 原文链接：https://river.com/learn/what-are-schnorr-signatures/\r\n>- 译者：[AI翻译官](https://learnblockchain.cn/people/19584)，校对：[翻译小组](https://learnblockchain.cn/people/412)\r\n>- 本文永久链接：[learnblockchain.cn/article…](https://learnblockchain.cn/article/8711)\r\n    \r\n## 数字签名\r\n\r\n比特币使用数字签名来实现在[区块链](https://learnblockchain.cn/tags/区块链)上转移代币。数字签名用于证明特定代币的所有权并授权将其转移给新所有者。\r\n\r\n我们将电子代币定义为一系列数字签名。每个所有者通过对上一笔交易的哈希和下一个所有者的公钥进行数字签名来将代币转移给下一个所有者。\r\n\r\n– 中本聪在[比特币白皮书（2008 年）](https://river.com/learn/bitcoin.pdf) 中解释 UTXO 模型\r\n\r\n目前，比特币使用[椭圆曲线数字签名算法（ECDSA）](https://learnblockchain.cn/tags/ECDSA)。通过 Taproot 升级，比特币将集成 Schnorr，这是第二种具有多个优势的签名方案。\r\n\r\n➤ [了解更多关于 Taproot 升级的信息](https://learnblockchain.cn/article/8712)。\r\n\r\n## ECDSA\r\n\r\n自比特币问世以来，ECDSA 一直用于保护比特币。ECDSA 之所以被选择用于比特币，有几个原因：\r\n\r\n*   **开源。** ECDSA 没有受专利或版权保护，因此在比特币中使用它没有法律问题。\r\n*   **经过充分测试。** 当比特币首次设计时，ECDSA 已被广泛认知和应用，并且经过多年的测试，其安全性得到了充分验证。\r\n*   **OpenSSL。** ECDSA 已在 OpenSSL 中实现，这是比特币使用的开源[密码学](https://learnblockchain.cn/tags/密码学/)库。这使得为比特币实现 ECDSA 变得更加简单。\r\n\r\n然而，ECDSA 也有一些缺点，而 Schnorr 对此进行了改进。因此，开发人员决定比特币应该实现一种不同的签名方案，即 Schnorr。\r\n\r\n## Schnorr 签名的优势\r\n\r\n与 ECDSA 类似，Schnorr 数字签名方案使用椭圆曲线密码学（ECC）。Schnorr 签名在计算效率、存储和隐私方面比 ECDSA 提供了几个优势。\r\n\r\n### 密钥和签名聚合\r\n\r\nSchnorr 签名提供的最重要优势是密钥聚合。典型的数字签名包含一个公钥、待签名的消息和一个签名，表明公钥的所有者签署了给定消息。当多方希望签署相同的消息（例如从 [multisig](https://learnblockchain.cn/tags/%E5%A4%9A%E7%AD%BE/) 地址支出）时，它们必须分别包含自己的公钥和签名。因此，如果三方希望签署相同的消息，则证明将包括三个公钥和三个签名。出于计算和存储原因，这对每个节点来说都不是最佳选择，因为每个节点必须执行三次签名验证（一项昂贵的操作）并存储三组签名和公钥。\r\n\r\n密钥聚合消除了多个公钥和签名的需求。Schnorr 公钥和签名可以聚合，以便如果三方希望签署一笔交易，它们可以信任地将它们的三个公钥组合成一个单一的公钥。然后，使用它们的三个私钥，它们可以签署相同的消息。最后，它们可以将它们的三个签名组合成一个单一的签名，该签名对于聚合公钥是有效的。验证者只需验证一个签名和一个公钥，就可以确保所有三方签署了消息， 查看以下动画：\r\n\r\n![Schnorr 公钥和签名可以聚合动画](https://img.learnblockchain.cn/attachments/migrate/1720787330387)\r\n\r\n密钥聚合的隐私影响是显著的。因为多方可以聚合密钥和签名，多签交易可以完全类似于单签交易。因此，所有 Schnorr 支出将彼此类似，使得链分析无法区分多签支出和单签支出。这将使链分析使用的几种启发式方法失效，包括[共同输入所有权启发式](https://river.com/learn/terms/c/common-input-ownership-heuristic/)和[脚本类型启发式](https://river.com/learn/terms/s/script-type-heuristic/)。这种隐私优势将延伸到所有使用 Schnorr 的比特币用户，但不适用于使用 ECDSA 交易类型的用户。\r\n\r\n### 批量验证\r\n\r\n当节点接收到新区块时，通常会逐个验证该区块中的每笔交易和签名。这是一个耗时且资源密集的过程。\r\n\r\n密钥聚合使比特币节点能够批量验证签名，这种方法显著减少了验证具有多个输入的交易所需的时间和计算资源。\r\n\r\n\r\n> 由于 Taproot 是软分叉，即使在激活 Schnorr 后，大多数比特币用户和钱包仍将继续使用 ECDSA。区块将继续同时具有 Schnorr 签名和 ECDSA 签名，从而在短期内限制了批量验证的好处。\r\n\r\n## 为什么比特币没有早些使用 Schnorr？\r\n\r\n自 1990 年发明以来，Schnorr 签名一直受专利保护，严重限制了它们的使用并扼杀了创新。由于 ECDSA 是开源的，因此被广泛使用、经过严格测试且值得信赖。尽管 Schnorr 专利于 2008 年到期，即比特币问世的同一年，但人们认为 Schnorr 签名缺乏足够的普及和测试，无法确保其足以保护像比特币这样关键系统的安全。\r\n\r\nSchnorr 签名通过 2021年 11 月 Taproot 升级引入比特币。\r\n\r\n\r\n## 小结\r\n\r\n*   数字签名用于在区块链上转移比特币。比特币先前使用 ECDSA 作为数字签名算法。\r\n*   在不久的将来，比特币将在 ECDSA 签名之外启用 Schnorr 签名。Schnorr 签名相对于 ECDSA 具有多个优势。\r\n*   Schnorr 将提高所有比特币用户的隐私。对于使用 Schnorr 和 Taproot 的用户，Schnorr 还将实现费用节省。\r\n\r\n> 我是 [AI 翻译官](https://learnblockchain.cn/people/19584)，为大家转译优秀英文文章，如有翻译不通的地方，在[这里](https://github.com/lbc-team/Pioneer/blob/master/translations/8711.md)修改，还请包涵～"},"author":{"user":"https://learnblockchain.cn/people/21620","address":null},"history":null,"timestamp":1720790823,"version":1}