2018-07-28

Schnorr 签名

Schnorr 签名由来

Schnorr 源于 Claus-Peter Schnorr 的发明,是一种签名策略:一系列连接私钥、公钥和签名的数学规则。很多密码学家认为 Schnorr 签名在相关应用中是最好的,具备相当高水平的正确性,没有延展性问题,验证速度快,最重要是支持多重签名,即把多个签名聚合成为一个新的签名。比特币协议使用的是另一种类型的签名策略 ECDSA 椭圆曲线数字签名算法。Schnorr 签名基于与 ECDSA 相同的安全假设,并与比特币已使用的椭圆曲线 secp256k1 兼容。这意味着 Schnorr 签名可以使用相同的私钥创建,并与当前使用的密钥派生方案兼容。

 但截至目前,Schnorr 签名尚不能在比特币中使用,除非硬分叉。大家都知道的 SegWit 隔离见证,会把所有的签名数据转移到某个交易上的独立空间:见证数据 witness 将不被嵌入从前比特币协议中。有了脚本版本控制,所有见证中的规则通过软分叉改变,包括 Schnorr 签名策略。

为交易腾出更多容量

Schnorr 对比特币最大的好处是多重签名聚合。很多比特币交易包含多个输入,这些输入记录着这些比特币的地址来源,这些输入需要有各自的签名。这意味着即使一笔交易,也必须包含所有签名,网络必须传输所有这些签名,同时一个区块也必须包含所有这些签名。这就好像你把零钱凑在一起,去买个百元的大件商品。假如使用 Schnorr 签名,所有输入只需要一个合并签名即可完成。这可以为交易腾出更多空间。__比较目前的状况,重点看下方的数字签名,_Schnorr 签名聚合_预示着效率提升从目前来看,ECDSA 签名的大小各不相同,大多数字符长度为 71-73 个字节,最大为 75 个字节,理论上最小为 8 个字节。Schnorr 签名比 ECDSA 签名更高效、更紧凑。每个签名的最大长度是 64 个字节。再比如 Bitcoin Core 给出的隔离见证方案,让所有的见证数据大小减少 75%,1MB 见证数据可以压缩至 0.25MB,在原来的区块多腾出了 0.75MB 空间。然后,聚合的 Schnorr 签名又可以减少见证数据量,按照 1MB 可以减少 0.5MB 计算,通过这两次,见证数据可以压缩到 0.125MB,相当于区块容量提升约 17%,能腾出多少空间取决于区块中所包含的交易类型。比特币核心开发者 Eric Lombrozo 估算,Schnorr 签名最终会把总容量提高至少 40%,且是在隔离见证增加 60% 至 100% 容量之后。

多重签名问题

上述的容量提升只针对一般交易,也就是包含多个输入的交易。在多重签名交易中,Schnorr 的威力更加强大。多重签名交易中,一个输入需要多个签名,通常这些签名又来自不同的人。像正常的交易一样,多重签名交易只需要单个签名替代多个签名,无论原本需要多少签名,也不管这个交易涉及的人有多少。为更为复杂的智能合约架构敞开了大门,且只需要一点点的数据需求量。不管是多重签名交易类型是 2/3、3/15,或者 100/100,所有类型需要的签名数据量相同,与单签名交易类型所需量一致。

CoinJoin 隐私强化

Schnorr 签名同时满足隐私保护。如上文所述,一个交易可以包括多个输入,通常情况下,与这些输入相连的地址都属于同一个人。比特币核心开发者 Gregory Maxwell 提出一种隐私强化方法 CoinJoin,让不同的用户把他们的交易组合进一个交易。这个交易包含来自不同交易的多个输入,然后把钱发送的多个输出中,传送给不同的收款人。这好比一群人,把各自的钱、硬币放在一起,去不同的商店购物。每一个体不必各自去购买,但也会得到各自付出相应价格的商品。如进展顺利,CoinJoin 将成为在比特币协议中加强隐私的一种方式,但这是后话。Schnorr 签名可以为 CoinJoin 带去优势,让所有 CoinJoin 交易的参与者不仅可以组合他们的交易,而且可以组合他们的签名。交易体积比所有个体交易组合要小得多,这也意味着矿工打包的费用也会小得多。

难以预料的攻击

据 Blockstream 联合创始人 Pieter Wuille 这次在斯坦福的演讲所述,Schnorr 签名在过去的几年中经历了几次「不容易被发现的挑战」。2017 年,在 Schnorr 签名实施时,发现了「流氓密钥攻击」,即参加交易的一方使用一把特别制作的密钥来盗窃资金。这个问题对于简单的多重签名是很好解决的,只需进行一个注册程序,让密钥自己进行签名,但是要支持一笔转账中的多个交易输入就必须要使用公钥,这个办法也就行不通了。他们递交了可能要进行的修订,但被学会驳回,此后 ANSSI 密码学专家 Seurin 加入了比特币核心开发组,与 Pieter Wuille、比特币核心开发者 Gregory Maxwell 及 Blockstream 数学家 Andrew Pwolstra 共同完成了更安全的构造改进。但随后又发现了另一问题。Blockstream 工程师 Russell O’Connor 发现了另一种攻击,有多个参与者的交易中,其中一名参与者可以宣称拥有其他人的密钥,从而使用他人的交易输出。Wuille 称之为「Russell 攻击」,并表示在有多个参与者的交易中,攻击模型非常微妙。现在有几个比特币改进建议 BIPs 正在起着作用,一个代码的实施,在发展过程中需要很长时间,如果上述情况持续下去的话,Schnorr 代码的完成不会花很长的时间。比特币核心开发者 Nicolas Dorier 表示,Schnorr 签名添加到比特币协议上可能要花去很多年的时间。Wuille 也承认有必要用相当长的时间去充分推敲。

转载链接:https://www.chainnews.com/articles/053513188565.htm。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,384评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,845评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,148评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,640评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,731评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,712评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,703评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,473评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,915评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,227评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,384评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,063评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,706评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,302评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,531评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,321评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,248评论 2 352

推荐阅读更多精彩内容