给定一个位序列(0或1),例如:
0110100110110001如何才能证明我们有这个位序列,而不实际显示位序列呢?
我知道有几个证明介质的例子,比如zk-SNARKs的多项式,然而,如何定义上述问题的证明介质呢?
编辑:这个比特序列是从某个输入x导出的,它通过一些算术电路C,其中一组环境条件(即延迟)决定了通过路径的传播,这样(例如)到目标的第一条路径将与1,否则0相关联,这最终构成了一个比特序列。
发布于 2020-06-03 02:17:59
如果我的理解是正确的,你是在要求证明你有通过一个公开过程运行一个秘密输入的结果,而没有透露任何关于这个结果的信息。
为了使这个证明成为有趣的证据,您必须输出一些值,然后证明它与隐藏的值之间的关系。如果您不这样做,那么您只是在证明您在公共过程中运行了任何值。因为任何人都可以通过公共过程运行值,所以这不会很有趣。这有意义吗?
换句话说,重要的是你要弄清楚你的证据的有趣之处。也就是说,是否有一些固定的秘密信息,你需要证明你想要证明的东西?
如果您发现,例如,在公钥c下的位字符串的加密pk。然后证明c是某些位字符串y在pk下的加密,这似乎很有趣。您可能还必须证明pk是诚实生成的。假设唯一的解密,这种证据组合将修复见证(x,sk),这将导致输出(c,pk)。
这个证明可以被定义为一个NP语言,其中值(c,pk)有见证(x,sk)。然后你可以使用标准的零知识。
https://crypto.stackexchange.com/questions/81099
复制相似问题