解释SNARKs 第1部分:同态隐藏

原文出自:https://blog.z.cash/snark-explain/
作者:Ariel Gabizon
译者:Matter实验室

Constructions of zk-SNARKs involve a careful combination of several ingredients; fully understanding how these ingredients all work together can take a while.

zk-SNARKs 的结构包含许多元素的精妙组合;完全了解这些元素需要花费一些时间。

If I had to choose one ingredient whose role is most prominent, it would be what I will call here Homomorphic Hiding(HH) [1]. In this post we explain what an HH is, and then give an example of why it is useful and how it is constructed.

[1] Homomorphic hiding is not a term formally used in cryptography, and is introduced here for didactic purposes. It is similar to but weaker than the well-known notion of a computationally hiding commitment. The difference is that an HH is a deterministic function of the input, whereas a commitment uses additional randomness. As a consequence, HHs essentially ”hide most x’s” whereas commitments ”hide every x”.

如果你不得不选择 一个最重要的元素,那么你可以把它称为 同态隐藏 (HH) [1]。在这篇博文中,我们将解释 HH 是什么,并解释它为什么如此重要,同时阐述它的构成。

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

An HH E(x) of a number x is a function satisfying the following properties:

  • For most x’s, given E(x) it is hard to find x.
  • Different inputs lead to different outputs – so if x≠y, then E(x)≠E(y).
  • If someone knows E(x) and E(y), they can generate the HH of arithmetic expressions in x and y. For example, they can compute E(x+y) from E(x) and E(y).

具有HH属性 E(x) 是一个关于 x 的函数,它有如下特点:

  • 对于大部分的 x,给定某个 E(x) 通常很难求解出 x.
  • 不同输入将会得到不同输出 – 因此,如果 x≠y,则 E(x)≠E(y)
  • 如果某人知道了 E(x)E(y),则他可以生成xy的算术表达式的 HH 函数。比如,他们可以使用 E(x)E(y) 来计算 E(x+y)

Here’s a toy example of why HH is useful for Zero-Knowledge proofs: Suppose Alice wants to prove to Bob she knows numbers x,y such that x+y=7 (Of course, it’s not too exciting knowing such x,y, but this is a good example to explain the concept with).

  1. Alice sends E(x) and E(y) to Bob.
  2. Bob computes E(x+y) from these values (which he is able to do since E is an HH).
  3. Bob also computes E(7), and now checks whether E(x+y)=E(7). He accepts Alice’s proof only if equality holds.

以下是关于为什么 HH 可以用于零知识证明的一个简单的例子: 假设 Alice 需要向 Bob 证明她知道数字 x,y 满足 x+y=7 。(当然,知道 x,y, 的具体数字并不会令人非常激动,但这是解释这个概念非常简洁的例子)。

  1. Alice 发送 E(x)E(y) 的值给 Bob。
  2. Bob 从得到的数值中计算出 E(x+y) 的值 (因为 E 是一个 HH)。
  3. Bob 同样计算出了 E(7), 并检查 E(x+y)=E(7)等式是否成立。只有等式成立,他才认可Alice的证明。

As different inputs are mapped by E to different hidings, Bob indeed accepts the proof only if Alice sent hidings of x,y such that x+y=7. On the other hand, Bob does not learn x and y, as he just has access to their hidings [2].

[2] Bob does learn some information about x and y. For example, he can choose a random x’, and check whether x=x’ by computing E(x’). For this reason the above protocol is not really a Zero-Knowledge protocol, and is only used here for explanatory purposes. In fact, as we shall see in later posts, HH is ultimately used in snarks to conceal verifier challenges rather than prover secrets.

由于不同的输入被 E 映射到了不同的匿数,Bob只有在Alice发送满足x+y=7这个条件的 x,y 的匿数时才确切的认可这个证明。 另一方面,Bob 并不知道 xy的值,因为他只获得了他们的匿数 [2]。

    • [2]Bob 确实可以获取与 x 和 y 相关的一些信息。比如,他可以选择一个随机的 x',并通过计算 E(x') 的方式检查 x=x' 等式是否成立。出于这种原因,上面的协议并不是一个真正的零知识证明协议,它仅仅用于解释。事实上,我们会在以后的文章中看到,HH 最终用在 snark 隐藏验证者挑战数时使用,而不在隐藏证明者秘密时使用。

Now let’s see an example of how such hidings are constructed. We actually cannot construct them for regular integers with regular addition, but need to look at finite groups:

现在让我们从一个例子中了解匿数是如何构成的。事实上,我们不能使用常规的整数和常规的加法来构造他们,因此,我们需要看看“有限群”:

Let n be some integer. When we write A mod n for an integer A, we mean taking the remainder of A after dividing by n. For example, 9 mod 7=2 and 13 mod 12=1. We can use the mod n operation to define an addition operation on the numbers {0,…,n−1}: We do regular addition but then apply (mod n) on the result to get back a number in the range {0,…,n−1}. We sometimes write (mod n) on the right to clarify we are using this type of addition. For example, 2+3=1(mod4). We call the set of elements {0,…,n−1} together with this addition operation the group Z(+,n).

假设 n 是一个整数。当我们对整数 A 写下 A mod n 时,我们的意思是在 A 除以 n 后取余数。比如 9 mod 7=213 mod 12=1。 我们可以使用 mod n 在正数集 {0,…,n−1} 上定义加法操作:我们在做常规加法后,对结果应用(mod n)来获取一个在{0,...,n-1}范围中的数。 我们有时会在右边写下 (modn) 来声明我们使用的是此种类型的加法。 比如,2+3=1(mod4)。 我们称带有这种加法操作的集合 {0,…,n−1}Z(+,n)

For a prime p, we can use the mod p operation to also define a multiplication operation over the numbers {1,…,p−1} in a way that the multiplication result is also always in the set {1,…,p−1} – by performing regular multiplication of integers, and then taking the result mod p. [3] For example, 2⋅4=1 (mod 7).

[3]When p is not a prime it is problematic to define multiplication this way. One issue is that the multiplication result can be zero even when both arguments are not zero. For example when p=4, we can get 2*2=0 (mod 4).

对于一个质数 p,我们可以使用 mod p 在集合{1,....,p-1}上定义一个乘法操作,这样操作的结果也会在集合 {1,…,p−1} 中 —— 通过对整数的常规乘法,并对结果进行mod p操作。[3] 比如,2⋅4=1 (mod 7) .

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

This set of elements together with this operation is referred to as the group Z(*,p). Z(*,p) has the following useful properties:

这样的集合和操作一起被称为群 Z(*,p)Z(*,p)具有以下这些有用的属性:

  1. It is a cyclic group; which means that there is some element g in Z(*,p) called a generator such that all elements of Z(*,p) can be written as gaga for some a in {0,..,p−2}, where we define g^0=1.
  2. The discrete logarithm problem is believed to be hard in Z(*,p). This means that, when p is large, given an element h in Z(*,p) it is difficult to find the integer a in 0,..,p−2 such that g^a=h (mod p).
  3. As ”exponents add up when elements are multiplied”, we have for a,b in 0,..,p−2 ; ( g^a )⋅( g^b )=g^(a+b (mod p−1)).
  1. 它是一个循环群;这意味着,Z(*,p)其中有一些被称为生成器(generator)的元素g,当我们定义g^0=1时,Z(*,p)所有的元素都能被写成g^a的形式,其中a{0,...,p-2}的元素 。
  2. 离散对数问题在 Z(*,p) 中被认为是困难的。这意味着,当 p 值较大时,给定一个在Z(*,p)中的元素h,很难在 0,..,p−2 中找到整数 a ,满足 g^a=h (mod p)
  3. 由于 “元素相乘时它们的指数会相加”,对于来自0,..,p-2a,b,等式( g^a )⋅( g^b )=g^( a+b (mod p-2) )成立。

Using these properties, we now construct an HH that ”supports addition” – meaning that E(x+y) is computable from E(x) and E(y). We assume the input x of E is from Z(p−1), so it is in the range {0,…,p−2}. We define E(x)=g^x for each such x, and claim that E is an HH: The first property implies that different x’s in Z(p−1) are mapped to different outputs. The second property implies that given E(x)=g^x it is hard to find x. Finally, using the third property, given E(x) and E(y) we can compute E(x+y) as E(x+y)=g^( x+y (mod p−1) )=( g^x )⋅( g^y )=E(x)⋅E(y).

使用这些特性,我们现在建立一个 “支持加法” 的 HH – 这意味着 E(x+y) 可以由 E(x)E(y) 计算得到。 我们假设 E 的输入 x 来自 Z(*,p-1),因此它的范围是 {0,..,p−2}。 我们对每个这样的 x 定义 E(x)=g^x ,并称这样的 E 是一个 HH: 第一个特性表明,在 Z(*,p−1) 中的不同 x 会映射到不同的输出。 第二个特性表明,给定一个 E(x)=g^x ,很难计算出 x。 最终,使用第三个特性,对于给定的 E(x)E(y),我们可以计算出 E(x+y) ,因为 E(x+y) as E(x+y)=g^( x+y (mod p−1) )=( g^x )⋅( g^y )=E(x)⋅E(y)


译者总结


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

推荐阅读更多精彩内容