1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 零知识证明在区块链中的应用

零知识证明在区块链中的应用

时间:2022-02-13 17:59:12

相关推荐

零知识证明在区块链中的应用

零知识证明在区块链中的应用

一、引言二、相关理论1. 区块链2、零知识证明 三、区块链中零知识证明的应用1、zk-SNARK2、ZeroCash 四、总结参考文献

一、引言

在国家重视和政策扶持下,区块链技术的迅猛发展,区块链作为一个共享数据库,存储于其中的数据或信息拥有“不可篡改”“全程留痕”“可追溯”“公开透明”“去中心化”等特征。基于这些特征,区块链技术奠定了坚实的“信任”基础,创造了可靠的“合作”机制,拥有广阔的运用前景。零知识证明由于能在区块链应用中增强隐私性和安全性的潜力,也得到了广泛关注。

本文首先简要地介绍了区块链以及零知识证明的相关理论知识,接着对于当前区块链中零知识证明的应用进行阐述,包括zk-SNARK算法和ZeroCash区块链实现。最后,对于零知识证明在区块链中的应用进行总结和未来展望。

二、相关理论

1. 区块链

从本质上讲,区块链(Blockchain)是一种按时间顺序将数据块连接起来的数据结构,并以密码学的方式保证其不可篡改。在数据方面看来,区块链是一种近乎不可被篡改的分布式数据,而且这里的分布式特点不仅仅体现在数据的分布式存储,而且表现为数据的分布式记录。在技术方面看来,区块链技术是多种技术共同整合的结果,并不是一种新型的单一技术。这些技术通过一种新的形式结构整合在一起,构成了一种新的数据结构用于数据的记录和存储。

区块链具有以下特性:

去中心化区块链能够实现完全去中心化,不需要存在中心节点,采用分布式的数据存储结构,且所有的节点均保存着相同的区块信息。不可篡改性每个区块的块头部分均存储着Merkle树根节点的Hash值,其Merkle树的叶子节点则由每一条存储在区块链中的交易信息的相应Hash值构成,这样便可以通过验证Merkle树根节点的Hash值确保交易数据的准确性,实现不可篡改。不可伪造性在区块链不仅存储着交易数据的Hash值,而且其中包含交易双方的签名。而对于每一个使用者而言签名都是独立且唯一的,具有不可伪造性。可验证性区块链的可验证性一方面是指数据来源的可验证,可以验证电子货币在每一笔交易中的输入和输出。例如,在比特币中所有交易的输出均会作为下一笔交易的输入,而交易的输入均是前一笔交易的输出,即交易的可追溯性。除了保障数据来源的可验证外,还有确保交易金额的可验证,保障每一笔交易时的输入资金都是真实可靠的。匿名性区块链中的匿名性主要采用一种伪匿名的方式。区块链利用假名技术来将账号和真实身份的关系切断。例如,区块链中用户账号便是通过对用户公钥进行Hash运算得到的固定长度的Hash值。

2、零知识证明

零知识证明(Zero-Knowledge Proof)是由S.Goldwasser、S.Micali以及C.Rackoff在20世纪80年代初首次提出的。它指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。最终,他们能够证明通过证明者到核实者之间的一些交互,他们可以从根本上减少两者之间需要传递的知识数量。他们主要关注的是信息泄漏,也就是验证者在验证一个声明是否有效的过程中会了解到多少信息。

例如对于现在登录网站而言,在Web服务器上存储了客户的密码的哈希值,为了验证客户实际上知道密码,目前大部分网站采用的方式是服务器对客户输入的密码进行哈希计算,并与已存结果对比,但是这种方式的弊病在于服务器在计算时就可以知道客户的原始密码,一旦服务器被攻击,用户的密码也就泄露了。如果能够实现零知识证明,那么就可以在不知道客户密码的前提下,进行客户登录的验证,即使服务器被攻击,由于并未存储客户明文密码,用户的账户还是安全的。

零知识证明可以分为交互式非交互式两种。对于交互式而言,零知识证明协议的基础是交互式的。它要求验证者不断对证明者所拥有的“知识”进行一系列提问。证明者通过回答一系列问题,让验证者相信证明者的确知道这些“知识”。然而,这种简单的方法并不能使人相信证明者和验证者都是真实的,两者可以提前串通,以便证明者可以在不知道答案的情况下依然通过验证。

三、区块链中零知识证明的应用

1、zk-SNARK

zk-SNARK是“zero knowledge Succinct Non-interactive Argument of Knowledge”的缩写,是非交互式零知识证明中的一种,一个将实际的零知识证明类问题转为计算机程序问题的理论。作为目前密码学及其应用领域中最令人激动的成果之一,它使得人们可以对形如“给定一个公开的谓词和一个公开输入,我知道某个秘密输入,使得为真”的语句进行证明和验证。其实现过程大致可以分为以下几步:

将要验证的程序拆解成一个个逻辑上的验证步骤,将这些逻辑上的步骤拆解成由加减乘除构成的算数电路。通过一系列的变换将需要验证的程序转换成验证多项式乘积是相等的,如证明t(x)h(x)= w(x)v(x)。为了使得证明更加简洁,验证者预先随机选择几个检查点s,检查在这几个点上的等式是否成立。通过同态编码/加密的方式使得验证者在计算等式时不知道实际的输入数值,但是仍能进行验证。在等式左右两边可以同时乘上一个不为0的保密的数值k,那么在验证(t(s)h(s)k)=(w(s)v(s)k)时,就无法知道具体的t(s)、h(s)、w(s)、v(s),因此可以使得信息得到保护。

zk-SNARKs协议由三个算法组成:Setup、Prover、Verify。zk-SNARKs的典型流程如图所示。

2、ZeroCash

目前区块链中一些著名公链,例如BTC和ETH的交易,在交易成功后,我们去区块链浏览器或调用对应的RPC接口查看对应的交易记录,可以获得交易发送者地址、接收者地址和交易金额等数据。这些地址仅仅只是一串字母和数字,从而起到一定的匿名效果,但是这仅仅只是一种伪匿名,通过一系列的相关交易和对应的显示社会关系还是可能会暴露用户的身份,从而ZeroCash区块链便应运而生了。

ZeroCash是基于零知识证明来进行隐私保护的区块链,采用了zk-SNARKs的非交互式的零知识证明来证明某些特定的资产归自己所有,目的是彻底解决交易被追踪从而暴露用户隐私的问题。ZCash拥有一个匿名交易系统,它支持多种交易类型,其中一种就是能够隐藏交易双方地址和交易数值的交易。这是完全的隐藏,而不是说数据还存放在ZCash的节点数据库中,而不向外显示出的隐藏。而是连节点都不知道交易的内容。Zcash的强大隐私保证源于Zcash中的屏蔽事务可以在区块链上完全加密,但仍然可以通过使用zk-SNARK证明在网络共识规则下验证为有效。

在ZCASH中,摒弃了之前的UTXO方式,而是使用了一种基于UTXO,被称为NOTE(支票)的新方式代替。NOTE代表了当前账户对资产的支配权,与UTXO不同,账户余额的存储方式不再是“未消费的交易输出”,而是“未被作废的支票(NOTE)”;一个NOTE是由所有者公钥PK、所拥有金额V、和唯一区分支票的序列号r组成,表示为NOTE=(PK ,v ,r)

ZCash交易分为两类:透明地址交易和隐藏地址交易。两个透明地址之间的交易则与比特币交易没有区别,透明地址交易的输入、输出直接是公开可见的NOTE信息;对于隐藏地址交易,隐蔽地址之间的交易也会出现在公有区块链上,所以大家都知道有一笔隐蔽交易发生了,手续费也会支付给矿工,但交易的地址、资金的数额以及备注字段都被加密过,是不可见的。

四、总结

在数字经济全球化背景下,区块链的出现首次从技术上解决了基于信任的中心化模型带来的安全问题,并使得通过互联网进行价值转移成为可能,然而区块链的公开透明特性也给人们的隐私保护带来了巨大的挑战,因此如何实现隐私保护成为了阻碍区块链进一步发展的难题。将零知识证明应用于区块链已然为解决隐私安全问题做出了重大贡献。本文重点围绕零知识证明和区块链技术展开,阐述了零知识证明与区块链的相关理论知识,并且对零知识证明在区块链中的应用做了说明。未来区块链的隐私保护仍然任重而道远,如何实现快速高效、可信的零知识证明算法以及如何实现能够抵抗量子计算的零知识证明算法,都是需要进一步解决的问题。而且区块链+零知识证明的组合让用户重新掌握他们的个人数据成为了可能,可以在无需透露个人信息的情况下达成金融协议、创建在线账户或验证身份等。

参考文献

[1] Sasson E B , Chiesa A , Garman C , et al. Zerocash: Decentralized Anonymous Payments from Bitcoin[C]// IEEE Symposium on Security and Privacy (SP). IEEE, .

[2] Bensasson E , Chiesa A , Tromer E , et al. Succinct Non-Interactive Zero Knowledge for a von Neumann Architecture[J]. Sasson, .

[3] 李康, 孙毅, 张珺,等. 零知识证明应用到区块链中的技术挑战[J]. 大数据, , 004(001): P.57-65.

[4] Alshaikhli I F T , Makarin R H , Mohd Bakri S K , et al. Zero-knowledge-proof[J]. Cryptography Past Present & Future, .

[5] Satoshi Nakamoto. Bitcoin: A peer-to-peer electronic cash system. Consulted, 1:, .

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。