首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >zk程序验证研究

zk程序验证研究
EN

Cryptography用户
提问于 2018-05-18 08:30:44
回答 1查看 425关注 0票数 2

您能否提供一个用zk-SNARKs进行程序验证的示例,以解释:

  • 核实执行的真正含义是什么;
  • 这种新技术的含义是什么?
  • 它是如何工作的,因为目前我还没有理解zk-SNARKs和不对称密码系统可以生成的证明之间的区别,因为它们也是零知识。zk只是更普遍吗?如果是这样的话,您能提供一个示例用例来强调使用zk-SNARKs可以做什么,而zk-SNARKs却不能用非对称密码系统完成?
EN

回答 1

Cryptography用户

发布于 2018-09-22 15:38:47

我认为使用zk来验证计算(程序)执行的系统最简单也是最好的例子是由微软和IBM研究小组开发的皮诺曹系统。在这个URL中,您可以访问它们的源文件,其中有一些示例。

关于你的问题,验证执行的意思是你检查你的目标程序或电路的计算是否正确。假设您有一个程序P(.),您需要使用一些输入来运行这个程序,例如x。由于某些原因(例如,低功耗设备,省钱),您将计算外包,并要求一些云计算服务(如Amazon服务、Google、Microsoft)为您执行此程序,并返回结果。云使用输入x执行程序,并将y=P(x)返回给您。但是,如果您不信任服务器,则无法确信yP(x)的正确答案。为了解决这个问题,云(服务提供商)需要给出一个正式的证据,证明P(x)的执行是正确的。

请注意,只有当检查由服务提供者生成的证据比由验证者自己重新计算P(x)更容易(更轻)时,外包计算才有意义。

zk-SNARKs (如Pinocchio )使用基于配对的密码技术,使得验证尺寸非常短(小于1KB),对验证器(客户端)非常有效,在当前的智能手机或笔记本电脑上验证时间大约为0.1秒。

为了清楚地了解如何使用zk-SNARKs来证明电路的执行是正确的,我强烈建议查看皮诺曹系统。要获得快速的概述,请查看以下幻灯片。在一个非常高的层次上,下图显示了Pinocchio系统(使用zk)所采取的步骤,以给出一个计算的证明。

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

https://crypto.stackexchange.com/questions/59324

复制
相关文章

相似问题

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