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

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

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

通过签名,用户才能发送或接收比特币。中本聪在《比特币白皮书:一种点对点的电子现金系统》第二章《交易》里定义:

我们定义,一枚电子货币是这样的一串数字签名:每一位所有者通过对前一次交易和下一位拥有者的公钥(Publickey)签署一个随机散列的数字签名,并将这个签名附加在这枚电子货币的末尾,电子货币就发送给了下一位所有者。而收款人通过对签名进行检验,就能够验证该链条的所有者。

当初,有许多签名方案可供选用。其中,比较突出的是RSA,ECDSA和Schnorr。中本聪希望比特币的签名方案,既能够保证较高的安全性,又不会占用太多空间,并且已经标准化,已经被广泛使用和采用。

观点:若每周收盘价高于11500美元,将看涨比特币:比特币在周五(8月7日)遭遇短暂回调,从11800美元跌至11300美元。这一事件是由于股市对白宫继续就微信和TikTok在美国的运营问题炮轰中国公司的消息做出反应。

之后,比特币重新回到11500美元的支撑位。距离本周收盘价只有几个小时了,Arcane Crypto首席执行官Torbj?rn Bull Jenssen解释说,比特币的周收盘价超过11500美元将是看涨的。“比特币最近突破10500美元左右的技术阻力位,正逐步形成自2018年1月以来首次突破11500美元的周收盘价。这是非常看涨的!从潜在的市场发展来看,BTC到年底达到2万美元以上的历史新高(ATH)并非不可能。”(Ethereum World News)[2020/8/9]

昔日,ECDSA算法胜出

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

Schnorr算法,是密码学家Claus-PeterSchnorr在1989年提出的数字签名算法,并申请了专利保护。虽然,相对于ECDSA算法,Schnorr算法更安全、更具扩展性,但是因为之前的专利保护Schnorr算法并没有普及,没有被标准化,也没有被广泛采用。

声音 | 分析师:根据stock-to-flow模型,比特币将在减半后飙升至5万美元:加密货币分析师PlanB日前发推称,减半已经反映在比特币价格中,并使用了stock-to-flow模型来预测价格。然而,他认为只有10%的市场参与者能够理解这个模型及其背后的数学原理。在图表中,PlanB使用了一个较低的数字来预测BTC价格在减半后的飙升——5万美元,而不是许多人认为的10万美元。他在公式中使用了BTC的月度市场数据。然而,PlanB指出,选择保守型(5万美元)还是激进型(10万美元)预测只是个人偏好问题。(U.Today)[2020/1/2]

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

如今,Schnorr算法卷土重来

多重签名的需求

最初的比特币,只能用一个私钥签署交易。无论是谁,只要获得该私钥,就能够支配对应公钥名下的比特币。然而,一个安全可靠的系统必须具备单点故障免疫。如果一旦丢失或泄露私钥,就失去了对其比特币的合法拥有权,这对大额账户来说,相当不友好。

声音 | Easy Crypto Hunter首席执行官:英国脱欧或将比特币推至120万美元:金色财经报道,Easy Crypto Hunter首席执行官Josh Riddett在接受采访时表示,比特币和其他形式的加密货币可能会在未来五到十年内成为主要的支付方式,并称英国脱欧最终可能导致比特币达到100万英镑(约合120万美元) 。英国脱欧已再次被推迟至2020年1月31日。他认为,如果英国脱欧通过,英国公民将开始购买加密货币。他还相信,大量买家的涌入将推动BTC的发展超出任何人的预期,但这不太可能立刻发生。[2019/11/7]

于是,2011年12月20日,比特币核心开发团队,在比特币核心代码里,添加了多重签名功能。 

多重签名是指一个交易需要两个或者更多签名才能生效。多一个签名,多一份保障。

比如,使用多重签名技术,小明、小张和隔壁老王,三人共同监管1个BTC,如果要动用这个BTC,至少需要他们中的两人同意。就算小明的私钥被盗,这个BTC还是安全的。尽管黑客掌握了小明的私钥,他也无法转出这个BTC,而小张和老王可以共同签名转走它。

动态 | 币安OTC平台用户和商家接受国内两大主流支付应用购买比特币:币安首席执行官赵长鹏确认,用户很快将能够使用微信和支付宝购买加密货币。知情人士透露,该计划目前只针对Android用户,并处于测试阶段,但最终将在iOS和Web上全面推出。金色注:币安OTC的平台不直接接入或者支持支付宝或微信支付。准确来讲应该是,平台上的用户和商家接受支付宝或微信支付。(The Block Crypto)[2019/10/9]

ECDSA算法不适合多重签名

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

比如,3人中的2人签名,必须用各自的公钥来验证各自签名的合法性,不能一次性验证两个签名是否都正确。

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

动态 | 罗马尼亚现有47家供应商接受比特币交易:据coinmap.org收集的数据显示,罗马尼亚在17个地区有47家供应商接受比特币交易,其中大部分都在罗马尼亚首都布加勒斯特或附近。[2018/8/10]

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

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

Schnorr算法更适合多重签名

与ECDSA相比,Schnorr签名有如下优点:

更安全:Schnorr签名有安全性证明——假设椭圆曲线离散对数问题很难,则在随机预言模型中可以轻松证明Schnorr签名的安全性。ECDSA不存在此类证明。

不可恶意攻击。ECDSA签名是可延展的,可以将给定公钥和消息的现有有效签名,更改为对同一密钥和消息有效的另一个签名。比特币一直存在延展性攻击,直到SegWit激活后才得以修复。BIP62和BIP66对此有详细描述。而Schnorr签名,证明是不可被恶意篡改的。

线性。Schnorr签名算法是线性的!这点非常酷,基于这点可衍生出许多应用,其中最重要的就是多重签名。多签时,采用ECDSA,就会有N个签名,验证同样需要做N次。

但是,如果使用Schnorr,由于线性特性,则可以进行签名叠加,仅保留最终的叠加签名。同一个交易无论输入数量多少,均可叠加为一个签名,一次验证即可。

比如:小明、小张、老王的多重签名如果设定签名数为3,在ECDSA中,需要签名3次,验证3次;而在Schnorr中,可以三方协作,产生对其公钥总和有效的签名,而且验证一次即可。

极大的提高了效率和隐私。

密钥聚合

借助Schnorr签名方案,多签环境中的所有参与者,都可以将其密钥组合为“单个密钥”。要花费这笔资金,只能使用这个密钥。此属性称为“密钥聚合”。

为了验证所有密钥的总和,比特币核心引入一个名为OP_CHECKDLS的新代码,它包括离散日志签名验证系统,以使用更少的操作码更有效地验证签名,执行效率更高。

密钥聚合属性,也可以在单个交易事务中使用。在该交易,只需一次签名验证,即可花费所有输入。

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

交互式聚合签名

在Schnorr签名方案下,可以将一笔交易的所有输入签名组合为称为IAS的单个签名,该签名代表所有输入签名的总和。

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

一些分析家说,这种交叉输入聚合,可以释放多达25%的空间,可用于容纳更多交易,从而增加每秒的交易数量。

结论

2014年,比特币核心开始讨论如何实现Schnorr签名。经过深入研究,PieterWuille提交SchnorrBIP。

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

Schnorr签名方案、及密钥聚合、以及IAS签名,通过更少的签名和更易于验证的方式,优化了比特币交易,更好的保护了交易的隐私性,更具扩展性,改善了比特币的架构,为更健康的比特币生态系统打下基础。

参考文章

比特币多重签名的现状Schnorr签名与比特币多签详细介绍Schnorr签名介绍TheFutureofBitcoin:SchnorrSignatures,KeyAggregation&InteractiveAggregateSignaturesSchnorr签名与比特币隐私的必然性

「注意」我是金马,别人离开币圈的时候,正是我深耕的时候。你的熊市,让我陪你度过可好?币圈金马奖,和你一起走币圈这条光明大道。

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

银河链

Ethereum把73亿人塞到一栋楼里面,会发生什么?

在所有的问题中我们都涉及到了但从来没有讨论过的一点是:你需要多大的建筑才能把所有的人装下? 纽约可以容纳地球上全部73亿人口大家在这儿感觉是怎样的?emmmm...就像是这样: 很好.

[0:15ms0-1:716ms