http://www.7klian.com

大隐隐于市 ——浅谈环签名道理与隐私掩护

从而按照 k,ci,ski  可以求出 si (如图 2)即
假如相等则签名有效,假如不等则签名无效。
换句话说,正因为我们拥有私钥 ski, 所以可以结构出一个  si,共同随机生成的s0, s1, …, si-1, si+1, …, sn-1,使得以下式子都创立:
零常识证明办理的问题是,我有一个奥秘,我需要向你证明我知道这个奥秘,可是我又不能让你知道这个奥秘。而环签名办理的问题是,我对你说了一句话,可是你只知道是某一群人中有人对你说了这句话,而不知道这群人里详细哪小我私家说的。简言之就是,我把本身藏进了人群里。环签名通过将实际签名者的公钥藏进一个公钥荟萃,来到达掩护签名者身份的目标。
k·g = si·g+ci·pki                                   (等式①) 
因此,假如上述 n 个等式创立,那么也有意味着,生成这 n 个等式的人至少拥有这 n 个公钥中一把私钥。
环签名方案则去掉了群组打点员,不需要环成员之间的相助,签名者操作本身的私钥和荟萃中其他成员的公钥就能独立的举办签名,荟萃中的其他成员大概不知道本身被包括在了个中。这种方案的优势除了可以或许对签名者举办无条件的匿名外,环中的其他成员也不能伪造真实签名者签名。外部进攻者纵然在得到某个有效环签名的基本上,也不能伪造一个签名。

图 1 计较 ci+1, … , cn-1, c0, …, ci-1, ci  进程

今朝,利用环签名方案的项目包罗门罗币 Moreno、布尔币 Boolberry、StealthCoin、XCurrency 等,平台也增加了一个类 CryptoNote 环签名。
总结
si = k – ci*ski
pk0, pk1, pk2, …, pki-1, pki, pki+1, …, pkn-1
pki = ski·g
cx = Hash(m, sx-1·g+cx-1·pkx-1)           (等式②)

图 2 按照私钥 ski, k, ci求解 si 进程

Signature = {c0, pk0, …. pkn-1, s0, …., sn-1}
双方约去 g,变为
一票反对场景:譬喻,某协会主席提出一种议案,但假如协会成员中有人提出阻挡意见则议案需被打消。但投阻挡票的会员又不想袒露本身的身份,因此他可以用环签名的技能,将本身的阻挡票用本身的私钥和其他协会成员的公钥举办签名。签名之后所有协会成员都可以看到协会中有人阻挡该项议案,但不知道确切的阻挡者是谁。

环签名生成进程
留意:这一步无需随机生成 si,因为 si 会在后头通过计较获得。
不知通过本日的分享,您是否对区块链世界的隐私掩护,以及环签名 Ring Signature 有了更多的相识了呢?此后我们还会和各人探讨更多技能方面的常识。假如您想更进一步的和我们一起进修摸索,就快来存眷 PPIO 公家号,插手 PPIO 开拓者社区或Discord 群组,和我们一起缔造出色。

ci+2 = Hash(m, si+1·g+ci+1·pki+1)
紧接着,依次计较 ci+2, … , cn-1, c0, …, ci-1, ci: (如图 1) 

环签名固然可以用来做到必然水平的匿名性,不外究竟真实的签名者照旧会袒露在环中。且在今朝的公有链市场上,与环签名对比,零常识证明依然是最佳的匿名方案之一。只是在某些场景下,假如对隐私的要求没有那么高,同时签名方的计较本领又很弱,环签名不失为一个不错的选择。
环签名(Ring Signature)方案由 Rivest,Shamir 和 Tauman 三位暗码学家 于2001年首次提出。环签名也被称为 CryptoNote,由群签名演化而来,典范的应用案例是门罗币。群签名是操作果真的群公钥和群签名举办验证的方案,个中群公钥是果真的,群成员可以生成群签名,验证者能操作群公钥验证所得群签名的正确性,但不能确定群中的正式签名者。但是群打点员可以取消签名,揭破真正的签名者群签名,这是群签名的要害问题地址。
· 接下来 ,签名方想对一动静 m 举办签名,可是又不想在果真签名的同时,让别人知道本身简直切身份,因此 签名方 抉择用环签名的方法将本身藏到一群人中。于是 签名方 找来 n-1 个其他人的公钥(这些公钥最好之前在系统中已经呈现过和利用过,否则 签名方 藏在一堆新人中,照旧会很容易的被识别出来),并编好序号,并将本身的公钥随机地插入个中,配合组合了一个包括 n 个公钥的荟萃。不妨假设这 n 个公钥为
留意:私钥 ski 在这里发挥了浸染,假如没有 ski,si也无法求出。

c1 = Hash(m, s0·g+c0·pk0)
k·g = si·g+ci*ski·g
ci+1 = Hash(m, si·g+ci·pki) = Hash(m, k·g)
反之,假如这 n 个公钥中的任何一把私钥 签名者都没有,那么他也就无法求出  si 使得{c0, pk0, …. pkn-1, s0, …., sn-1}形成一个 环。
· 接下来引入第2个式子,
门罗币(Monero):门罗币是应用环签名的典范代表,环签名技能使得门罗被公认为是一个私密性强,不行追踪的。环签名辅佐门罗币实现了生意业务的隐私性:通过区块链系统中无枢纽点无法追查生意业务的发送方,当其它节点验证生意业务时,只能确定签名是诸多公钥中的一个,却无从定位到哪个公钥才是详细的发送方。
该 hash 函数的一个参考实现为:将 m 和 A 的字节数据拼接,然后用传统的 hash 函数(如keccak256),获得的值再对 N 取模(这里的 N 是椭圆曲线上有限群的阶)。
签名验证进程
· 最后动静 m 的环签名数据为:

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