区块链 区块链技术 比特币公众号手机端

零知识证明 - zkHack V Puzzle 2 - Don't Lookup

liumuhui 8个月前 (01-28) 阅读数 98 #区块链
文章标签 零知识证明zkHack

接着看看zkHack V的第二道题。

https://zkhack.dev/zkhackV/puzzleV2.html

1. 题目

基于一个比较小的域,实现了一个Lookup协议。题目给定了一个从0~63的表,尝试证明2^15在表中。

2. Lookup协议

题目中实现的Lookup协议的理论基础是PROTOSTAR论文中的4.3小节:


如果想证明w列表在t表中,需要证明多项式6成立。

证明多项式成立的流程如下图:


第一步:证明者提供w列表,以及这个列表中的元素在表t中相应元素出现的次数m_i。

第二步:在接收到验证者随机挑战r后,计算h_i以及g_i,发送给验证者。验证者验证上图中右下角的三个等式。

协议本身并不复杂,论文也给出了可靠性误差的计算公式:


从可靠性误差的计算公式看出,如果l特别大的话,特别是大于等于|F|的情况下,协议已经失效。

3. l = |F|

仔细观察协议,如果l为|F|,并且witness为重复的元素的话,不论r的取值如何,h_i都相同。h_i的求和必为0。在这种情况下,等效于证明一个空列表是否在t表中。

4. 解决方案

解决方案相对简单,代码修改如下:

对题目感兴趣的小伙伴,可以进一步查看zkHack V网站上的详细分析。

版权声明

本文仅代表作者观点,不代表区块链技术网立场。
本文系作者授权本站发表,未经许可,不得转载。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门