21期:零知识证明详解一:同态隐藏

简介:本文翻译自zcash官方博客,讲解zcash中所使用的zk-SNARKs的原理第一部分,此处是原文链接。友情提示:本系列文章偏技术化,适合对技术和数学非常感兴趣的同学阅读。
zkSNARK是zero-knowledge succint non-interactive arguments of knowledge的简称,意思是:简洁的非交互式的零知识证明。
(本文授权BH好文好报群摘编、转载以及相关转授权推文行为)

正文

要理解zk-SNARKs,需要先理解其他的一些知识点,而要完全理解这些知识点,需要花点时间和耐心。

如果非要我选择一个最重要的知识点,那么我会选择同态隐藏[1]。在这个文章中我将会详细解释同态隐藏,并给出一个例子。

同态隐藏的定义:E(x)x的函数,该函数满足:

  • 通过E(x)很难推算出x
  • 不同的x会得到不同的E(x)
  • 如果知道E(x)E(y),那么就可以计算出E(x+y)

为什么同态隐藏很有用呢?假设Alice想向Bob证明她知道xy这两个数字,并且x+y=7,可以这么做:

  1. Alice把E(x)E(y)发送给Bob
  2. Bob通过上面两个值,计算出E(x+y)。(因为E是同态隐藏函数,并且Bob也知道这个函数,所以Bob可以从E(x)E(y)计算出E(x+y))
  3. Bob也计算出E(7),如果E(x+y) == E(7),那么Bob就承认Alice知道xy

因为不同的输入,会经由E函数产生不同的结果(由于这个结果相当于隐藏了原来的输入,后面我把这种结果叫做隐藏数),因此Bob仅仅在收到了Alice发送过来的xy以及x+y的隐藏数之后,才能接受Alice提供的证据。也就是说,Bob不需要知道x,y,他只需要知道它们的隐藏数即可。

现在,我们看看这种隐藏数是如何得到的。常规的整数加法确实没办法,不过我们可以看下有限群

n是整数。当我们对整数 A 写下 A mod n 时,我们的意思是在 A 除以 n 后取余数。比如 9 mod 7 = 213 mod 12 = 1。我们可以用mod n在集合{0, ..., n-1}上定义一个加法:我们先做常规加法,然后拿结果mod n,那么这个结果也在集合{0, ..., n-1}当中。我们有时会把(mod n)写在右边,这样可以清楚的表示我们在做这种类型的加法。例如: 2+3=1(mod 4)。 我们把这个集合{0, ..., n-1}以及这种加法运算合在一起,称作 群\mathbb{Z}_n

对于一个质数p,我们也可以使用mod p{1, ..., p-1}上面定义一个乘法:我们拿常规乘法的结果,做mod p操作,那么他的结果也会在集合{1, ..., p-1}[2]。例如, 2*4 = 1(mod 7)

这个集合以及这种乘法运算在一起,被称作 群\mathbb{Z}^{*}_{p}\mathbb{Z}^{*}_{p}具有如下特性:

  • 它是一个循环群;也就是说,在\mathbb{Z}^{*}_{p}中有一些元素可以经过运算生成其他元素,这类元素被成为生成元,其他的元素都可以被写为{g}^{a}a属于集合{0, ..., p-2},同时我们定义 g^0 = 1
  • \mathbb{Z}^{*}_{p}中,离散对数问题被认为是比较困难的问题,也就是说,当 p 很大时,给定\mathbb{Z}^{*}_{p}中的一个元素h,我们很难找到这样一个a,使得a属于{0, ..., p-2},并且 g^a = h(mod\ p)
  • 由于“同底的幂的乘积,相当于把幂指数相加”,所以当 a, b属于{0, ..., p-2}时,g^a*g^b=g^{a+b(mod\ p)}

通过这些特性,我可以构造一个加法的同态隐藏——也就是说,我们可以通过E(x)E(y)计算出E(x+y)

我们可以假设x属于\mathbb{Z}^{*}_{p-1},那么x属于{0, ..., p-2}。我们定义E(x)=g^x,那么E就是一个同态:

  • 根据第一条特性,可以得出,在\mathbb{Z}^{*}_{p-1}中,不同的输入x,得到的隐藏数g^x也是不同的。
  • 根据第二条特性,当得到E(x)后,我们很难求出x
  • 最后,根据第三条特性,给定E(x)E(y),我们可以这样计算出E(x+y): E(x+y) = g^{(x+y) mod (p-1)} = g^x*g^y=E(x)*E(y)

译者补充:
根据数论知识,当p为质数时,\mathbb{Z}^{*}_pmod p下的乘法是一个循环群。

早赞声明:为方便早赞、避免乱赞,“BH好文好报群”为点赞者、写作者牵线搭桥,实行“先审后赞、定时发表”的规则,也让作品脱颖而出、速登热门!加群微信:we01230123(天平)。


  1. 同态隐藏并不是密码学中常用的短语,在这里出于解释说明的目的被引入。它与知名的短语“可计算的隐藏承诺”意思相近,但没有后者短语语义强烈。它们的不同点在于,HH 是由输入决定的函数,而承诺则使用了额外的随机性。因此,HH 可以基本“隐藏绝大部分 x”,而承诺则可以“隐藏每一个x”。

  2. 当 p 不是质数时,用以上的方式定义乘法是有问题的。其中的一个问题是即便两个参数都不为零,乘积的结果仍可能为零。比如当 p = 4 是,我们可以得到 2*2=0 (mod 4)。

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

推荐阅读更多精彩内容

  • Constructions of zk-SNARKs involve a careful combination ...
    Matter实验室阅读 2,222评论 0 8
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,029评论 0 2
  • 散漫对我个人的理解是什么事就这样吧!爱咋地咋地!我死猪不怕好开水烫的态度。我活了二十年差个整四舍五入一下也二十一了...
    破摔阅读 210评论 0 0
  • redis(Remote Dictionary Server)是一个由Salvatore Sanfilippo写的...
    LittlePy阅读 1,000评论 0 0
  • 数九寒冬,冷风呼啸,阴沉的天气越发让人感觉寒冷。今天是大姑父下葬的日子,按照礼数,我和婆婆嫂子们一起来哭丧悼念。 ...
    禾茗同学阅读 459评论 2 5