首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以用zkSNARK隐藏函数执行?

是否可以用zkSNARK隐藏函数执行?
EN

Ethereum用户
提问于 2016-11-03 20:29:01
回答 1查看 288关注 0票数 2

我读到,假设将zCash/zkSNARK与Ethereum集成在一起,就可以隐藏事务的发送方、接收方和值。

我的问题是,是否也可以隐藏事务中发送的其他数据,比如要执行的函数的名称及其参数。在这种情况下,这将如何影响合同的状态。

EN

回答 1

Ethereum用户

回答已采纳

发布于 2016-11-03 21:47:26

zkSNARKs在零知识中证明了某一论点是正确的.

这里的零知识意味着它不会泄露任何关于论点的信息,除了它是否是真实的。举个例子--如果你从一张牌上选了一张牌,我问你这是否是一颗心,你可以向我展示这是真的,而不泄露关于这张牌的任何其他信息(比如,如果是王牌,2,什么的),向我展示所有不是心脏的牌。这是零知识证明(zkp)的一个例子.

在ZCash中,我认为zkSNARK证明了您拥有大于或等于您试图在给定事务中花费的ZEC数量的所有权。

我不认为提交您所调用的函数的zkp将不足以实际调用该函数。也许您可以提交由于调用函数而发生的状态更改,同时提交一个zkSNARK,证明您以合法的方式调用了合法的函数,从而导致了状态更改?

这种情况需要您证明比‘我拥有n个ZECs和n>k,具有k个事务值’更复杂的东西。结果是,任何NP函数都可以在零知识中得到证明,而且我相当肯定zkSNARK是足够普遍的,这是/很快就会成为一种可能性。来自libsnark自述

计算可以表示为NP语句,形式如下:

  • C程序foo在执行时,如果给定输入条和一些额外的输入qux,则返回退出代码0。
  • “布尔电路foo可以满足某些输入qux的要求。”
  • “算术电路foo接受部分赋值条,当扩展到完全赋值qux时。”
  • “当扩展为完全赋值qux时,部分赋值条满足约束foo的集合。”

您甚至不必集成ZCash和Ethereum,只需使用libsnark并让人接受您奇怪的函数调用。它可能只需要一笔不小的工作量;)

票数 2
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/9810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档