2. 是否需要初始化可信配置。不需要可信配置虽然更好,会淘汰信任问题和安详问题,不外新的证明要领就大概带来新的计较问题,好比 Bulletproofs 不需要可信配置,但它在高巨大度环境下的验证本钱会很高。
3. 通用零常识证明:NPC 问题你必然留意到了,我们说椭圆曲线数字签名算法具有「零知属性」,却并没有说它是零常识证明协议,因为它的主业是做数字签名,埋没私钥只不外是它必需要实现的一个成果。并且它也只能埋没私钥,假如想让它帮你埋没一个你本身的奥秘,它是做不到的。
当 V 对 P 作随机抽样时,P 可以或许主动用随机数夹杂抽样的 bi,同时又能使 V 完成验证,从而实现零常识性。
3. 所依赖的安详假设。安详假设与安详密切相关,好比 Bulletproofs 依赖的是一个尺度安详假设:离散对数问题,加上一个随机预言模子;而 zk-SNARKs 依赖的是一个不行否证的安详假设问题:指数常识假设。
零常识证明:零常识证明是指让验证者相信某个断言为真,且整个进程不泄露「断言为真」之外的任何常识。为了更容易领略,本文把它简化为埋没奥秘和证明拥有奥秘。
4. 零常识证明协议在三段路程之后,零常识证明对我们而言也许不再是神秘莫测的事物,它背后有着简朴逻辑:1. 单向成果是埋没奥秘的要领;2. 同态映射是证明奥秘的基本;3. 证明 NPC 问题的多项式(但这并非独一的要领)可以实现通用零常识证明。
同态界说:抽象代数中,同态是两个代数布局(譬喻群、环、可能向量空间)之间的保持布局稳定的映射。
证明奥秘之旅;
零常识证明的工程实现极具挑战性,但它背后的逻辑是简朴的。
构建通用零常识证明之旅。
所以 zk-STARKs 的「单向」并不是基于计较不行行的单向,它是因为没有袒露 b1,b2,……,b9 全部,导致无法通过 b1,b2,……,b9 反向计较出 a1,a2,……,a9。在「同态」部门,它也不是抽象代数(或暗码学)中的同态观念,而是基于线性编码纠错理论举办抽样验证。
假如你只想相识零常识证明的根基逻辑,路程到这里就可以竣事了,常识点只有两个:1. 用单向成果埋没奥秘;2. 用同态映射证明奥秘。是不是还算轻松?
上述的这些指标和属性很难被同时满意,因此在设计零常识证明协议,可能选择零常识证明协议 / 要领作为某个协议的成果组件的时候,需要思量特定场景的需求问题。好比对质明时间有较高要求,就大概需要选择占用更多空间、可能具有较小通用性的要领;对可信配置有要求,就大概需要选择有更高证明本钱的要领。
椭圆曲线
假如你愿意,路程到此就可以竣事了;假如你想继承,接下来的这一段有点「野」。
椭圆曲线算法(ECC)是暗码学中被普遍应用的一个具有单向成果的函数,它看起来是这样的:k × P = Q,在已知 P 的环境下,我们可以通过 k 计较出 Q,但难以通过 Q 反向计较出 k。需要留意的是,暗码学中加法或乘法运算的寄义不范围于我们熟悉的实数域上加法或乘法运算的寄义。
这就是暗码学背后的简朴逻辑:单向成果。而单向成果背后的支撑是 P! = NP。
让我们回到本文最开始的谁人单向函数 k × P = Q,它能埋没一个奥秘 k,假如我们把它变巨大一些,好比酿成 t × h = (v0 + a1 × v1 + …… + am × vm)(w0 + b1 × w1 + …… + bm × wm) 这样一个多项式,是不是就有了许多可以埋没奥秘的「空间」,好比把奥秘放在 a1,a2,……,am 中。
简化一下这种干系就是:f(a+b) = f(a) + f(b),即「先计较后加密的功效」f(a+b) 与「先加密后计较的功效」f(a) + f(b) 是沟通的。同态使得我们可以直接对密文举办计较,然后对埋没了奥秘的明文先计较后加密,再通过较量两者是否沟通验证明文中是否真的藏有奥秘。
因此理论上,我们可以或许以任何一个 NPC 问题为基本构建一个通用的零常识证明协议。但这仅仅是理论上的,因为利用它们做证明的难易度是截然差异的。今朝主流的要领是选择布尔电路或算术电路,因为它们实现起来相对容易、电路局限小,zk-SNARKs 和 Bulletproofs 都是选择的这种要领。
为什么需要去相识它?隐私问题自不消提,另一个重要原因则在于,跟着对区块链摸索的深入,我们发明通过暗码学的要领来实现信任是对共鸣算法信任的有效增补,这两种信任可以更低摩擦地团结在一起,因此也更易被实现和应用。这个趋势也可以从近期区块链技能的成长偏向中察觉到。
怎么办?可以引入「配对函数」。好比椭圆曲线配对函数就是对椭圆曲线算法做一系列的调解,生成一个新的映射空间,这个新空间既满意加法同态,也满意类乘法同态(留意,只是类乘法同态),这样一来,除了用加法,我们还可以用类乘法去证明奥秘。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。