Schnorr签名的前世今生:为什么说比特币的隐私性是不可避免的?

2019-03-15 17:37 栏目:经验之谈 来源: 查看()

数字签名是网络主权的支柱。 1976年公钥密码学的出现是全球通信媒介——互联网和新形式的货币——比特币的诞生铺平了道路。虽然从那时起公钥加密的基本属性没有太大变化,但在密码学家的工具箱中有许多开源数字签名方案。

Schnorr签名的前世今生:为什么说比特币的隐私性是不可避免的?

当Satoshi Nakamoto开始创建比特币时,要考虑的关键设计选择之一是在这个开放的,免许可证的金融系统中使用哪种签名方案。要求很明显; Sakamoto需要一种广泛使用,易于理解,足够安全,轻量级且最重要的开源算法。在当时的所有替代方案中,他做出了最符合这一标准的选择:椭圆曲线数字签名算法(ECDSA)。

当时,ECDSA得到了OpenSSL的支持,OpenSSL是一种由密码学朋克开发的开源加密工具,用于改善在线通信的隐私性。与其他流行的解决方案相比,ECDSA具有更少的计算要求和更短的密钥长度的优势;它对数字货币很有用。同时,它还为RSA(加密算法)方案提供了一些安全性:例如,256位ECDSA密钥的安全性相当于3,072位RSA密钥,但它只是一个小的RSA密钥容量。部分。

Pieter Wuille等人在改进曲线(如椭圆曲线)secp256k1方面的努力使得比特币的ECDSA更快,更高效。然而,ECDSA仍然存在固有的缺陷,需要被其他选择所取代。经过多年的研究和实验,出现了一种新的签名方案,以提高比特币交易的隐私性和效率.—— Schnorr数字签名方案。

在本文中,我将概述Schnorr签名的各种部署及其相应的优点。然后,我将解释新的多重签名标准MuSig可以为Taproot等新的比特币技术带来什么。最后,我将谈谈Schnorr如何打破区块链分析中使用的启发式方法,以及如何帮助比特币的主协议层创建一个强大的收费市场。

Schnorr签名的兴起
 
尽管Schnorr数字签名方案与ECDSA相比具有许多优势,但它并不是一个新的优势。 20世纪80年代,德国密码学家兼学者Claus-Peter Schnorr在法兰克福大学担任教授和研究员时发明了这种机制。他的签名计划是David Chaum,Taher EIgamal,Amos Fiat和Adi Shamir的组合。然而,在出版之前,Claus-Peter Schnorr为他的新发明申请了几项专利,这使得它无法直接使用多年。

有趣的是,EDSSA的前身DSA是ElGamal和Schnorr方案的组合,旨在规避Claus Schnorr的专利。事实上,在Schnorr的美国专利发布仅仅两个月后,DSA的创建者,国家标准与技术研究院(NIST),也为其解决方案申请了专利。这是密码朋克的简短历史:在此之后,Claus-Peter Schnorr在捍卫他的专利方面变得非常积极,直接回应了对Coderpunks邮件列表的批评;这是原始密码朋克邮件。列表的一个分支。

2008年,在Schnorr的签名计划推出近20年后,Claus-Peter Schnorr的专利已经过期。巧合的是,2008年也是我们最喜欢的密​​码朋克Nakamoto推出比特币的一年。尽管Schnorr签名在当时已经可以自由使用,但它既没有标准化也没有广泛使用。这可能是Nakamoto转向ECDSA的原因之一。虽然密码学家和数学家经常使用“非常可怕”来描述ECDSA,但它们在当时(现在)被广泛使用,并为比特币提供了更安全的选择。

Schnorr和比特币
 
十年后,Schnorr计划不那么神秘,ed25519等标准化部署已成为某些竞争性货币的首选。关于Schnorr在比特币上实施的非正式讨论可以追溯到2014年BitcoinTalk论坛,但直到Pieter Wuille提出Schnorr BIP,这项已经研究和测试多年的技术正式首次亮相。本BIP描述了实施Schnorr的规范和技术细节,它比ECDSA具有以下优势:

- 安全性证明:当使用足够随机的散列函数(随机预言模型)和签名中使用的椭圆曲线离散对数问题(ECDLP)时,可以很容易地证明Schnorr签名的安全性。但是ECDSA没有这样的证据。

- 不可延展性:ECDSA签名具有固有的可扩展性,允许无权访问私钥的第三方更改现有的有效签名并花钱。 BIP62正式讨论了这个问题。相比之下,Schnorr标志被证明是不可扩展的。

- 线性:Schnorr签名具有显着特征,多个参与者可以协作以生成对其公钥总和有效的签名。这是提高效率和隐私的基础,例如多签名和其他智能合约。

Schnorr的安全认证和不可扩展性保证与ECDSA相比具有明显的优势。基于这两个优点,执行软叉是正确的。然而,Schnorr的线性特性尤其令人兴奋。从本质上讲,这允许多签名事务中的多个签名者将其公钥组合成聚合密钥;此功能称为密钥聚合。

虽然组合键的能力听起来微不足道,但聚合键的优点不应低估。由于ECDSA本身不支持多个签名,因此它们必须通过名为Pay-to-ScriptHash(P2SH)的标准化智能合约部署在比特币中(是的,比特币也有智能合约)。这允许用户添加称为保留的支出条件以指定资金的使用方式,例如“仅当Alice和Bob都在此消息上签名时才解锁余额”。

P2SH的第一个问题是它需要参与多重签名的所有签名者的公钥,这不是一个有效的系统。聚合这些密钥将实现更有效的验证,因为网络只需要验证一个密钥而不是n。这也意味着在区块链中占用更少的空间,从而降低交易成本并提高带宽。

P2SH的第二个问题是它提供的隐私保护很少。作为BIP 13,P2SH事务需要一个以3开头的不同地址。这允许区块链观察者不仅识别网络中的所有P2SH事务,还识别多个签名中的特定身份:

Schnorr签名的前世今生:为什么说比特币的隐私性是不可避免的?

在上面的例子中,网络可以知道(1)多签名事务的存在(2)它由多少签名者组成(3)签名者的身份。这不利于操作安全,特别是对于2FA(双因素认证)等应用。它对隐私也有害。

另一方面,密钥聚合允许签名者保持匿名,并且不会泄露解锁余额所需的密钥,从而影响操作安全性。最重要的是,密钥聚合允许多签名事务与常规事务没有区别:

Schnorr签名的前世今生:为什么说比特币的隐私性是不可避免的?

Schnorr在比特币中的第一个版本将消除当前与ECDSA一起使用的OP_CHE高仿CKSIG和OP_CHE高仿CKMULTISIG操作码,并将其替换为名为OP_CHE高仿CKDLS的新代码。 DLS是一个离散的日志签名,不需要太多细节,它允许使用更少的操作码更有效地验证签名。

早在2018年初,Gregory Maxwell,Andrew Poelstra,Yannick Seurin和Pieter Wuille发表了一篇白皮书,讨论了一种新的基于Schnorr的多重签名方案MuSig。自MuSig发布以来,他们一直致力于将这种多签名方案转换为可用代码。

在密钥聚合的背景下,MuSig最有趣的方面是在区块链之外创建私人智能合约的可能性。实质上,MuSig使多签名参与者能够为聚合密钥链添加障碍,这不需要使用比特币共识规则。

2018年12月,Anthony Towns是第一个提出激活Schnorr的“半正式”提案的核心开发者,该提案已发布在比特币开发者的邮件列表中。我预计未来几个月会有更多关于软叉的讨论。

总结:MuSig在比特币中的第一个版本将支持密钥聚合,它可以立即(1)增加多个签名的隐私(2)提高事务验证的效率(3)通过消除ECDSA的固有问题来提高安全性(4)实现智能合同解决方案,如Taproot。

但这只是开始。

交叉输入聚合:比特币隐私的下一步
 
如上所述,秘密密钥聚合对于花费单个输入的多个签名是非常有用的特征。由于比特币交易通常具有多个输入,因此Schnorr的未来迭代也可用于创建交互式聚合签名(IAS)方案,其中同一事务中的所有输入可同时使用一个签名。

类似地,签名者之间的交互完全在链下发生,但现在,签名可以获取事务的所有输入。每个输入仍然有自己的公钥,但可以由Schnorr IAS使用:

Schnorr签名的前世今生:为什么说比特币的隐私性是不可避免的?

Greg Maxwell,Pieter Wuille,Anthony Towns和其他人一直致力于改进Taproot智能合约方法以推动这一功能。他们将此方案称为广义Taproot或G'root,这使得将来更容易从密钥转换为交叉输入聚合。

与密钥聚合一样,交叉输入聚合进一步提高了比特币交易的效率。但最重要的是,它可以在比特币的基础层实现强大的隐私保护机制。

交叉输入聚合最激动人心的一个方面是它可以改善比特币上的CoinJoin交易。 CoinJoin是一种隐私保护技术,它将多个发送者和接收者组合成一个单一的交易。目标是使区块链观察者难以跟踪特定的发送者和接收者。

该技术最初由Greg Maxwell于2013年在BitcoinTalk上提出,并且已经在多个平台上提供,包括JoinMarket,SharedCoin,ShufflePuff,DarkWallet和CoinShuffle。对CoinJoin的后续更改,例如Wasabi钱包的Chaumian CoinJoin,已经大大改进了原始模型。但是,它仍然需要依靠足够的用户来混淆他们的余额。

今天CoinJoin面临的另一个问题是整个交易类型的可识别性(和潜在的审查)。当前在区块链分析中使用的最常用方法是基于特定输入确定两个或更多地址是否属于同一实体。例如,如果Alice将Bob转为1.928723 BTC,则区块链观察者可以跟踪该特定输入的小数位,绘制事务图或UTXO的历史分解和所有权更改。

为防止这种情况发生,CoinJoin的部署需要统一的金额,以便CoinJoin中的每个人都能发送相同数量的货币。例如,Wasabi钱包用户在CoinJoin交易中为100名参与者发送0.1比特币。虽然仍然难以确定发送方和接收方之间的链接,但区块链观察者可以确定CoinJoin交易是否已经通过统一金额发生,并建议其客户审查所有参与者。

交叉输入聚合可以帮助解决这个问题,因为它在协议层引入了额外的混淆机制。从本质上讲,交叉输入聚合可以构建基于Schnorr的CoinJoin事务,其中n个签名者看起来像普通的单一签名者事务。这也使得CoinJoin更容易在流行的钱包中实现,这可能会增强整个匿名网络集或使用该技术的用户数量。

一致性问题可以通过其他技术进一步解决,例如Pay-to-EndPoint(P2EP),它结合了CoinJoin和Nakamoto早期的隐私工作(参见P2IP),在CoinJoin中发送和接收双方都需要提供交易输入。

P2EP是向后兼容的,当与Schnorr一起使用时,它在比特币的基础层提供足够的隐私。

一石二鸟
 
我们有理由相信,比特币的大规模普及取决于其隐私保护的力度。与此同时,Lightning Networks的普及以及支付本身的潜力已经为比特币被挖掘后对链条的解决需求产生了不确定性。因此,对比特币的隐私和比特币的长期可持续性的需求可能是比特币最令人担忧的两个问题。幸运的是,Schnorr启用的隐私机制解决了这两个问题。

我花了很多时间研究复杂的隐私技术,包括Ring Signatures,Confidential Transactions,Bulletproofs,zkSNARKs,STARKs和MimbleWimble。虽然某些技术已经足够成熟,可以部署在比特币基础层,但仍然存在特殊的风险和权衡。如您所知,比特币不喜欢硬分叉,因此很难想象所有这些技术都部署到比特币协议的情况。

对于同态加密或非交互式零知识证明系统的使用,似乎有人担心它会阻碍比特币货币基础的可验证性。换句话说,如果交易金额是加密的,则难以核实比特币供应上限是否仍为2100万。同样,当交易金额被隐藏时,通胀循环和双重开花活动变得更加难以确定。这是一个相当大的权衡,在比特币基础上实现高水平的隐私可能导致社区分裂。

那么,如果您不需要部署这些技术,您可以为比特币基础层获得足够的隐私?

Schnorr肯定会提供帮助。如果大多数比特币交易使用Schnorr的交叉输入聚合功能和P2EP,那么通过随时间查看区块链几乎不可能影响混淆机制。比特币的供应仍然可以验证,其交易也将提供更强的隐私保护。

如果存在隐私要求,我们也有理由假设比特币用户和企业可能希望被动地参与比特币交易,允许他们的钱包在后台不断混合余额。在这种情况下,对隐私的需求将直接增加链上的交易成本。与SegWit一样,用户可能是第一个采用这种技术的用户,但公司必须在某些时候加入以保持相关性。

随着时间的推移,这些技术将使区块链分析失效,并且像物理现金一样,比特币公司不需要继续遵守AML/KYC规则。当您将现金存入银行账户时,银行将不会跟踪账单上是否有药品交易记录,即使找到了,也不会阻止您将这些预付款存入银行。除了区块链分析的激增和Schnorr的技术缺陷之外,没有理由让比特币遵守这一点。

当涉及在特定地址和UTXO上实施AML/KYC时,当焦点转移到个人而不是平衡时,它变得无关紧要。比特币公司将完全建立在隐私之上。事实上,我相信,当这种情况发生时,隐私和可互换性将成为比特币公司未来价值主张的一个组成部分。

最终,在比特币的基础层采用更强大的隐私机制后,用户将获得更多的权力,同时,可能有助于在比特币被挖掘后创建一个活跃的费用市场。我的猜测是,这一切都始于Schnorr的激活,似乎每个项目都对它感兴趣。

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发