我在看zk-SNARKs 这里中关于零知识证明的一个外行解释。
其思想是,如果一个人知道一个问题的解决方案(3) (找到一个满足x^3 + x + 5 = 0的x值),那么我们可以用一个电路来证明这一点,以表示计算及其中间变量。关于如何进行零知识证明的更多细节对于这个问题并不重要。
这是零知识证明的一般想法吗?特别地,对于图着色问题,如何取有效着色并表示电路(想必,电路输出0表示有效着色,1输出无效着色)?
发布于 2023-05-21 17:54:22
QAP的优点在于它是NP-完全的。因此,3-着色问题简化为QAP。事实上,NP中的任何问题都可以用QAP约束来表示。
更实际地说,所需要的只是一个图的算术编码和一个着色。然后,剩下的工作是设计算术约束,比如在编写过程中看到的约束,这些约束编码了3种着色要求。
例如,我可以将图表示为节点标签,表示为字段中的元素1, 2, 3, \dots,边缘集表示成对(1,4), (1,6), \dots。对于着色,您可以选择数字1,2,3。
然后,QAP输入-见证对就是那些放置在长向量中的元素(要编码一个元组,只需指定左输入和右输入是相邻的)。
在(1,t_{1,l}, t_{1,r}, t_{2,l}, t_{2,r}\dots, t_{m, l}, t_{m, r};c_{1}, c_{2},\dots, c_{n}, p^{-1})中,1将是一个公共助手元素(当您需要常量时非常有用),t's是表示图形的公共实例输入(其中I‘’th边(a,b)编码为t_{i, l}=a, t_{i,r}=b),着色c's是私人见证输入。
还有一个额外的见证输入p^{-1},我们稍后将使用它。在这里,我省略了所有中间变量,这些变量也必须包含在见证中,但是只要扩展见证来添加它们就足够了。我建议阅读下面的直觉,然后回到这个小问题上。现在,棘手的部分是如何对证人有效性检查和着色约束进行编码。
https://crypto.stackexchange.com/questions/106590
复制相似问题