为您提供一个绿色下载空间 登录| 注册 退出
当前位置: 首页 > 资讯 > 攻略

零知识证明:区块链隐私保护利器

来源:来自互联网 更新:2022-06-23 08:21:38

用手机看

扫描二维码随时看1.在手机上浏览
2.分享给你的微信好友或朋友圈




零常识证明是一种依据概率的验证办法,验证的内容包含“实践类陈说”和“关于个人常识的陈说”。
验证者依据必定的随机性向证明者提出问题,假如都能给出正确答复,则阐明证明者大概率具有他所宣称的“常识”。


Zerocoin(零币协议)将零常识验证用于铸造零币和换回零币进程中,以躲藏了一笔买卖对应的发送方和接纳方信息,Zerocash(零钞协议)选用更新颖的zkSNARKs技能,将需求验证的买卖内容转换成证明两个多项式乘积持平,结合同态加密等技能在维护躲藏买卖金额的一起进行买卖验证。
缺陷在于若网络收到进犯超发零钞,则无法发现或采纳办法;Zerocoin和Zerocash均需求进行预先的“信赖设置”,没有到达实在的“去信赖”。
英特尔SGX、zkSTARKs等新技能有或许处理上述问题,但仍需经过实践的查验。

零常识证明是一种加密计划,开始在20实践80年代由MIT研究人员在论文中提出。
“零常识协议是一方(证明方)能够向另一方(验证方)证明某事是实在的办法,除了这一详细陈说是实在的实践以外,不泄漏任何额定的信息。


例如关于现在登录网站而言,在Web服务器上存储了客户的暗码的哈希值,为了验证客户实践上知道暗码,现在大部分网站选用的办法是服务器对客户输入的暗码进行哈希核算,并与已存成果比照,可是这种办法的弊端在于服务器在核算时就能够知道客户的原始暗码,一旦服务器被进犯,用户的暗码也就走漏了。
假如能够完结零常识证明,那么就能够在不知道客户暗码的前提下,进行客户登录的验证,即便服务器被进犯,由于并未存储客户明文暗码,用户的账户仍是安全的。


根本的零常识证明协议是交互式的,需求验证方向证明方不断问询一系列有关其所把握的“常识”的问题,假如均能够给出正确答复,那么从概率上来讲,证明方确实很有或许知道其所宣称的“常识”。


例如或人宣称知道一个数独难题的答案,一种零常识证明的办法是验证方随机指定这一次按列、按行仍是按九宫格来检测,每次检测不需求看到数字摆的详细位置,只需求检测出来是否包含了1-9个数字即可,只需验证的次数足够多,那么能够大概率信赖证明方是知道数独标题的解的。
可是这样简略的办法还不能让人信赖证明方和验证方均没有作假,在数独的事例中,两者有或许事前勾结好,然后使得证明方在不知道答案的前提下经过验证。
假如他们想让第三方服气,验证方有必要也要证明自己每次的检测计划是随机的且自己没有和证明方勾结。


由于第三方观察者难以验证交互式零常识证明的成果,因而当咱们向多人证明某些内容时,咱们需求支付额定的尽力和本钱。
而非交互式的零常识证明望文生义,不需求互动进程,避免了勾结的或许性,可是或许会额定需求一些机器和程序来决议实验的序列:例如在数独的比如中,经进程序的办法来决议哪一次按行、哪一次按列来检测,可是这个实验序列有必要保密,不然验证方预先知道了实验的序列就有或许运用这个信息,提早准备,在并不知道实在“常识”的状况下经过验证。


零常识证明的内容能够归纳为两类:“实践”类陈说:例如证明“一个特定的图能够进行三上色。
”或许“一个数N是合数”;关于个人常识的陈说:例如“我知道这个特定图的染色计划”或许“我知道N的因式分解”。


但并不是一切的问题都有零常识证明的加密计划,Goldreich, Micali 和 Wigderson 给出了理论上存在零常识证明解的有用规模。
他们发现关于在多项式时刻内能够验证解的决策问题(问题的答案仅为是/否),存在已知的零常识证明计划。
只需求在这样NP问题中找到想要证明的论说,并转化为三色问题的一个实例,那么就能够运用已有的协议完结零常识证明。
由于三色问题归于NPC问题,任何其他的NP问题都能够转化为这个问题的实例。

在区块链上的买卖中,如比特币和以太坊网络网络,除了运用地址来替换买卖两头的实在身份,使得买卖具有部分匿名性以外,发送、接纳地址和金额都是已知的,他人有或许经过网络上的各种信息、和实践国际产生的交互记载等将比特币地址和实在身份对应起来,也因而具有隐私露出的危险。


Zerocoin规划了一种全新的思路,无法经过买卖前史剖析来取得用户实在身份。


Zerocoin里需求耗费必定价值的要买卖的钱银,以生成具有一起序列号的一枚零币。
零常识证明能够在不泄漏花费了详细哪个钱银的根底上,验证出你确实花了这笔钱。
为了将这笔钱转给他人,逻辑上需求咱们使得这枚零币不能再被他人花费,零币的办法是我们一起维护一个报废列表,存着一切现已花费的零币的序列号。


矿工在验证这笔花费买卖时运用零常识证明的办法,不需求知道详细花掉哪一个零币,也能够验证零币的序列号是否在报废列表里。
由于花费买卖并没有输入地址和签名的信息,整个买卖进程中,矿工也并不知道这个零币的来历,因而也就难以对买卖前史进行剖析而获取用户身份。


在零币里,买卖的金额是能够知道的,而选用zkSNARKs技能的Zerocash连买卖金额都能够隐密,账本仅有揭露记载的仅有内容便是买卖的存在性。
能够证明关于NP中的一切问题存在zkSNARKs。
它引入了多项立异技能,使它们能够在区块链中运用。
最重要的是,zkSNARKs减少了证明的巨细和验证它们所需的核算量。
它的进程能够简述为。


1.即将验证的程序拆解成一个个逻辑上的验证进程,将这些逻辑上的进程拆解成由加减乘除构成的管用电路。


2.经过一系列的改换将需求验证的程序转换成验证多项式乘积是持平的,如证明t(x)h(x)= w(x)v(x)。


3.为了使得证明愈加简练,验证者预先随机挑选几个查看点s,查看在这几个点上的等式是否建立。


4.经过同态编码/加密的办法使得验证者在核算等式时不知道实践的输入数值,可是仍能进行验证。


5.在等式左右两头能够一起乘上一个不为0的保密的数值k,那么在验证(t(s)h(s)k)等于(w(s)v(s)k)时,就无法知道详细的t(s)、h(s)、w(s)、v(s),因而能够使得信息得到维护。


不同于Zerocoin的暗码学原语RSA累加器,zkSNARKs技能较新,未经广泛验证,存在危险,一起由于更强的匿名性,Zerocash的缝隙也更难发现,和Zerocoin比较,Zerocash由于买卖金额信息也是不知道的,所以假如有进犯者无限制地发行零钞,这样的状况是无法检测的。


除此以外Zerocoin 和Zerocash均需求提早内置生成参数,用户在运用这些网络的时分有必要信赖这些参数没有被走漏,可是一旦这些参数被走漏,整个网络将面对毁灭性冲击。
杂乱的信赖设置使得Zerocash存在争议,即便他们规划了一套“典礼”(例如录下砸坏存有密钥电脑的进程)来证明自己。


或许的处理办法包含运用像英特尔SGX和ARM TrustZone这样的现代“可信履行环境”。
就英特尔的SGX技能而言,即便应用程序、操作体系、BIOS或VMM遭到了损坏,私钥也是安全的。
除此以外,最新提出的zkSTARKs技能不需求进行信赖设置。


依据zkSTARKs白皮书中所述,zkSTARKs是初次完结既能够不依靠任何信赖设置来完结区块链验证,一起核算速度跟着核管用据量的添加而指数级加快的体系。
它不依靠公钥暗码体系,更简略的假定使得它理论上更安全,由于它仅有的加密假定是散列函数(如SHA2)是不行猜测的(这一假定也是比特币发掘稳定性的根底),因而也使其具有抗量子性。
作为一种新颖的技能,和zkSTARKs相同,它也需求经过时刻的查验。


参考文献

1. Zcoin中文社区,《Zcoin和Zcash: 相似性和不同处》.

2. Zcash团队,《What are zk-SNARKs?》.

3. 零币技能白皮书《一种经过运用零币协议(zerocoin protocol)来保证账务隐私的加密钱银》

4. Christian Reitwiessner,《zkSNARKs in a nutshell》,

5. Matthew Green,《Zero Knowledge Proofs: An illustrated primer》,

6. 老钱,《一个数独引发的惨案:零常识证明(Zero-Knowledge Proof)》,

玩家评论

此处添加你的第三方评论代码