用于实现零知识证明的计算机实现的系统及方法技术方案

技术编号:26228344 阅读:82 留言:0更新日期:2020-11-04 11:11
本发明专利技术涉及对复合语句的有效零知识验证,该复合语句同时涉及算术电路可满足性和有关公钥有效性的从属语句(密钥语句证明)二者。该方法使得证明者能够以零知识证明该特定语句。更具体地,本发明专利技术涉及一种用于实现语句(S)的零知识证明或验证的计算机实现的方法,在其中,证明者在将对语句的见证(w)保密的同时向验证者证明语句为真。本发明专利技术还涉及验证证明的验证者所采用的对等的方法。该方法包括证明者向验证者发送包括语句的数据集,该语句是对于给定的功能电路输出和椭圆曲线点,功能电路输入等于对应的椭圆曲线点乘数。数据包括针对语句的电路的各个线承诺和/或成批的承诺、输入和输出。证明者可以将语句中使用的该椭圆曲线或每个椭圆曲线的规范包括在数据中,或者已经提前共享语句中使用的该椭圆曲线或每个椭圆曲线的规范。然后,响应于来自验证者的挑战,证明者发送公开。备选地,证明者附加地包括证明密钥。利用从证明者接收到的数据,验证者能够确定电路得到满足并计算椭圆曲线点且验证语句,由此确定证明者持有对语句的见证。在接收到数据时,验证者通过计算来确定数据符合该语句。

【技术实现步骤摘要】
【国外来华专利技术】用于实现零知识证明的计算机实现的系统及方法
本说明书总体上涉及适用于在计算机处理器(例如,区块链网络的节点)或成组的此类处理器中实施的计算机实现的方法和系统。提供了一种生成证明的改进方法,该方法能够实现对语句(statement)的有效零知识验证。该方法适用于并入到现有的针对不需要使用双线性配对友好椭圆曲线的电路可满足性的基于离散对数的零知识证明协议中。本专利技术特别适合于但不限于由证明者执行的用于准备证明的方法和由验证者执行的用于验证证明的方法以及两个或更多个参与者之间的协作。各方之一可以在不透露所述语句的情况下证明知道密钥或语句,以便在所述参与者之间产生安全的去信任交换。
技术介绍
在本文献中,术语“区块链”用来包括所有形式的电子的、基于计算机的、分布式的账本。这些包括基于共识的区块链和交易链技术、被许可的和未被许可的账本、共享账本及其变型。尽管已经提出并开发了其他区块链实现,但是区块链技术最广为人知的应用是比特币帐本。尽管为了方便和说明的目的在本文中可能提及比特币,但是应当注意,本专利技术不限于与比特币区块链一起使用,并且替代的区本文档来自技高网...

【技术保护点】
1.一种计算机实现的方法,用于实现语句(S)的零知识证明或验证,在其中,证明者在将对语句的见证(w)保密的同时向验证者证明语句为真,所述方法包括:/n所述证明者向验证者发送以下各项:/n由具有m个门和n个线的算术电路表示的语句(S),所述算术电路被配置为实施功能电路并确定对于给定的功能电路输出(h)和椭圆曲线点(P),至功能电路的线的功能电路输入(s)是否等于对应的椭圆曲线点乘数(s);/n针对电路的线的单独的线承诺和/或成批的承诺;/n功能电路输出(h);以及/n证明密钥(PrK),/n这使得验证者能够确定电路得到满足并计算椭圆曲线点(P)且验证语句,从而确定证明者拥有对语句的见证(w)。/...

【技术特征摘要】
【国外来华专利技术】20180323 GB 1804739.9;20180323 GB 1804742.3;2018031.一种计算机实现的方法,用于实现语句(S)的零知识证明或验证,在其中,证明者在将对语句的见证(w)保密的同时向验证者证明语句为真,所述方法包括:
所述证明者向验证者发送以下各项:
由具有m个门和n个线的算术电路表示的语句(S),所述算术电路被配置为实施功能电路并确定对于给定的功能电路输出(h)和椭圆曲线点(P),至功能电路的线的功能电路输入(s)是否等于对应的椭圆曲线点乘数(s);
针对电路的线的单独的线承诺和/或成批的承诺;
功能电路输出(h);以及
证明密钥(PrK),
这使得验证者能够确定电路得到满足并计算椭圆曲线点(P)且验证语句,从而确定证明者拥有对语句的见证(w)。


2.根据权利要求1所述的计算机实现的方法,其中,所述证明者发送单独的线承诺,并且使用∑协议与验证者进行通信以证明知道见证(w)。


3.根据权利要求1或2所述的计算机实现的方法,其中,所述证明者从验证者接收挑战值(x),并以公开进行响应。


4.根据权利要求1或2所述的计算机实现的方法,其中,所述证明者向验证者发送随机值(x),以使得所述验证者能够确定所述语句为真并计算椭圆曲线点(P)。


5.根据权利要求4所述的计算机实现的方法,其中,所述随机值(x)是至少一个承诺的函数。


6.根据权利要求4或5所述的计算机实现的方法,其中,所述随机值(x)是通过哈希化由证明者生成并发送给验证者的所有承诺的级联来计算的。


7.根据前述权利要求中的任一项所述的计算机实现的方法,其中,所述承诺Wi是:
Wi=Com(wi,ri)
其中
Com是对功能电路的承诺,
wi是线值,
ri是随机数,对于每个线承诺,所述随机数都不同,以及
i是线名称,
以使得
Com(w,r)=w×G+r×F
其中
F和G是椭圆曲线点。


8.根据权利要求7所述的计算机实现的方法,其中,针对所述算术电路中的线l的输入为:
ko=rlxF,
其中
ko是密钥公开的输入,
rl是随机数,以及
F是椭圆曲线上的点。


9.根据权利要求8所述的计算机实现的方法,其中,所述验证者确认电路得到满足,并且能够通过椭圆曲线点减法来计算线l的公钥:
pkl=Com(wl,rl)-kol


10.根据权利要求1所述的计算机实现的方法,其中,所述证明者发送成批的线承诺,并生成随机数以计算对于每个线的椭圆曲线点,从而形成证明密钥(PrK)。


11.根据权利要求10所述的计算机实现的方法,其中,对于见证的成批的承诺是



其中
r是由证明者生成的随机数,
证明者计算对线值wi(对于i=1,…,n)的矢量w的承诺,
其中,wh将要被密钥公开,
Ki是计算的椭圆曲线点,
wi是线值,其中wn是密钥被公开的,
F是椭圆曲线上的点。


12.根据权利要求11所述的计算机实现的方法,其中,针对所述算术电路中的线n的输入为:



其中
kon是密钥公开的输入,
r是随机数,以及
F是椭圆曲线上的点。


13.根据权利要求12所述的计算机实现的方法,其中,所述验证者经由椭圆曲线算术来计算密钥语句线的公钥公开:
pkn=Com(w)-kon


14.根据任一前述权利要求所述的计算机实现的方法,其中,所述证明者附加地向至少一个线发送完全公开的承诺。


15.根据任一前述权利要求所述的计算机实现的方法,其中,所述方法使用Pedersen承诺。


16.根据任一前述权利要求所述的计算机实现的方法,其中,所述语句仅将一个算术电路用于所述功能电路。


17.根据任一前述权利要求所述的计算机实现的方法,其中,所述功能电路实现哈希函数,并且优选地,实现SHA-256哈希函数。


18.根据任一前述权利要求所述的计算机实现的方法,其中,所述方法被证明者用来...

【专利技术属性】
技术研发人员:T·特维森
申请(专利权)人:区块链控股有限公司
类型:发明
国别省市:安提瓜和巴布达;AG

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1