我读到,假设将zCash/zkSNARK与Ethereum集成在一起,就可以隐藏事务的发送方、接收方和值。
我的问题是,是否也可以隐藏事务中发送的其他数据,比如要执行的函数的名称及其参数。在这种情况下,这将如何影响合同的状态。
发布于 2016-11-03 21:47:26
zkSNARKs在零知识中证明了某一论点是正确的.
这里的零知识意味着它不会泄露任何关于论点的信息,除了它是否是真实的。举个例子--如果你从一张牌上选了一张牌,我问你这是否是一颗心,你可以向我展示这是真的,而不泄露关于这张牌的任何其他信息(比如,如果是王牌,2,什么的),向我展示所有不是心脏的牌。这是零知识证明(zkp)的一个例子.
在ZCash中,我认为zkSNARK证明了您拥有大于或等于您试图在给定事务中花费的ZEC数量的所有权。
我不认为提交您所调用的函数的zkp将不足以实际调用该函数。也许您可以提交由于调用函数而发生的状态更改,同时提交一个zkSNARK,证明您以合法的方式调用了合法的函数,从而导致了状态更改?
这种情况需要您证明比‘我拥有n个ZECs和n>k,具有k个事务值’更复杂的东西。结果是,任何NP函数都可以在零知识中得到证明,而且我相当肯定zkSNARK是足够普遍的,这是/很快就会成为一种可能性。来自libsnark自述:
计算可以表示为NP语句,形式如下:
您甚至不必集成ZCash和Ethereum,只需使用libsnark并让人接受您奇怪的函数调用。它可能只需要一笔不小的工作量;)
https://ethereum.stackexchange.com/questions/9810
复制相似问题