http://www.againpeco.com

Schnorr签名与一分PK10隐私的必然性

数字签名是在线主权的支柱。公钥密码学在1976年的出现,为创建全球通信媒介、互联网以及全新的货币形式一分PK10铺平了道路。虽然从那时起公钥加密的基本属性并没有太大变化,但现在密码学家的工具箱中有许多开源数字签名方案。
 
在中本聪开始构思一分PK10时,要考虑的关键设计选择之一,就是在这个开放的、无许可的金融系统中使用哪种签名方案。要求很明确;中本聪需要一种使用广泛、易于理解、足够安全、轻量级,最重要的是开源的算法。在当时可用的所有选项中,他选择了最符合该标准的选项:椭圆曲线数字签名算法(ECDSA)。
 
当时,ECDSA由OpenSSL本地支持,OpenSSL是由一群赛博朋克老手开发的一组开源加密工具,用于改善在线通信的隐私性。相对于其他流行的方案,ECDSA的好处是具有更精简的计算要求和更短的密钥长度;这些都是数字形式的货币的有用属性。同时,它还提供了与RSA等方案相当的安全性:例如,256位ECDSA密钥与3072位RSA密钥具有相同的安全性,但其大小只是后者的一小部分。
 
Pieter Wuille和其他人在一条被称为secp256k1的改进曲线(如椭圆曲线)上的努力使得一分PK10的ECDSA更快、更有效。然而,ECDSA仍然存在固有的缺陷,人们始终有理由去取代它。经过几年的研究和实验,出现了一种旨在提高一分PK10交易隐私性和效率的新签名方案:Schnorr数字签名方案。
 
在本文中,我概述了Schnorr签名的多种实现及其相应的好处。然后,我探索了MuSig,这是一种新的多重签名标准,可作为Taproot等新型一分PK10技术的构建模块。最后,我描述了Schnorr的完全实现版本将如何打破大发3d分析中使用的试探,同时帮助在一分PK10的主层(main layer)建立一个强大的费用市场。

SCHNORR签名的兴起

尽管Schnorr数字签名方案比ECDSA具有许多优势,但它肯定不是新的。它由德国密码学家和学者Claus-Peter Schnorr发明,在20世纪80年代,他在法兰克福大学担任教授和研究员。他提出的签名方案是David Chaum、Taher EIgamal、Amos Fiat和Adi Shamir的研究和工作的整合。然而,在发布之前,Claus Schnorr为他新发明的方案申请了多项专利,多年来,该方案一直禁止其直接使用。
 
十分有趣的是,ECDSA的前身DSA是ElGamal和Schnorr方案的混合体,该方案仅用于规避Claus Schnorr的专利。事实上,在Schnorr的美国专利发布仅两个月后,DSA的创始人美国国家标准与技术研究院(NIST)也为其解决方案申请了专利。这里有一些基本的赛博朋克历史:在那之后,Claus Schnorr对他的专利采取了防守措施,并直接回应了码农朋克邮件列表(原始赛博朋克邮件列表的一个分支)里对他的批评者。他的回答可以在这里(://privacy.nb.ca/cryptography/archives/coderpunks/new/1998-08/0006.html)和这里(://www.privacy.nb.ca/cryptography/archives/coderpunks/new/1998-08/0009.html)阅读。此处(https://csrc.nist.gov/csrc/media/publications/shared/documents/itl-bulletin/cslbul1994-11.txt)还可以找到描述专利问题的内部NIST备忘录。
 
2008年,在Schnorr签名方案推出近二十年后,Claus Schnorr的专利已经过期。巧合的是,2008年也正是我们最喜欢的赛博朋克——中本聪——正在实现一分PK10的那年。尽管在当时本来可以使用Schnorr签名,但它们还尚未被标准化或广泛运用,这可能是中本聪用ECDSA来替代的动机。虽然密码学家和数学家经常将其描述为极差(atrocious),但ECDSA已经(现在仍然)被广泛使用,它在当时为一分PK10提供了更安全的选择。

一分PK10上的SCHNORR

十年过去,Schnorr方案在今天不那么深奥了,像ed25519(https://tools.ietf.org/html/rfc8032)这样的标准化实现成为一些竞争币的流行选择。关于可能在一分PK10上实现Schnorr的非正式谈话可以追溯到2014年BitcoinTalk上的这个话题(https://bitcointalk.org/index.php?topic=511074.0),但到了Pieter Wuille撰写Schnorr BIP(https://github.com/sipa/bips/blob/bip-schnorr/bip-schnorr.mediawiki)的时候,经过多年的研究和实验,这项提案才得以正式化。本BIP草案描述了潜在Schnorr实现的规范和技术细节,该实现将比ECDSA具有以下优势:
 
· 安全性证明:当使用足够随机的哈希函数(随机预言模型),并且签名中使用的椭圆曲线离散对数问题(ECDLP)足够困难时,Schnorr签名的安全性很容易证明。ECDSA不存在这样的证明。

· 不可延展性: ECDSA签名具有内在的延展性,这可能使第三方在无法访问私钥的情况下改变现有的有效签名并双花资金。这个问题在BIP62(https://github.com/bitcoin/bips/blob/master/bip-0062.mediawiki)中正式讨论过。相比之下,Schnorr签名可证明是不可延展的。

· 线性: Schnorr签名具有这样一个明显特性,即多方可以协作生成对其公钥总和有效的签名。这是各种用于提高效率和隐私的更高级构造(如多签名和其他智能合约)的构成要素。
 
Schnorr提供的安全性证明及其不可延展性保证与ECDSA相比具有明显优势。只有在这两个好处的基础上才能证明软分叉是合理的。然而,Schnorr的线性属性格外令人兴奋。 实质上,这使得一笔多重签名(multisig)交易中的多个签名者能够将他们的公钥组合成一把代表该团体的聚合密钥;这一属性被称为密钥聚合(key aggregation)。
 
虽然融合密钥的能力可能听起来微不足道,但我们不应该低估密钥聚合的好处。由于ECDSA本身不支持多重签名,因此它必须通过被称为Pay-to-ScriptHash(P2SH)的标准化智能合约(是的,一分PK10也有智能合约 )来在一分PK10中实现 。这使得用户可以添加被称为质押权(encumbrances)的支出条件来指定资金的使用,如“只有Alice和Bob双方都对此消息签名的解锁余额才能使用。”
 
P2SH的第一个问题是它需要知道参与multisig的所有签名者的公钥,这不是一个有效率的系统。聚合这些密钥将允许更有效率的验证,因为网络只需要验证一个密钥,而不是n个密钥。这也意味着更少的大发3d足迹、更低的交易成本和改良的带宽。
 

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。