您好,欢迎您来到国盈网!
官网首页 小额贷款 购房贷款 抵押贷款 银行贷款 贷款平台 贷款知识 区块链

国盈网 > 区块链 > Gregory Maxwell:首个成功运行的零知识条件支付(ZKCP)

Gregory Maxwell:首个成功运行的零知识条件支付(ZKCP)

区块链 岑岑 本站原创

我很高兴地宣布,第一个零知识条件支付(ZKCP)已经在比特币网络上成功运行。

零知识条件支付(zero-knowledge conditional payment)是一种交易协议,允许买方使用比特币以私密、可扩展、安全的方式从卖方处购买信息,无需信任任何人:传递的信息只是是否已经支付,无需买卖双方的相互信任,也无需第三方仲裁。

想象一个电影式的“公文包交换”(一方的官方文件里有现金,另一方的秘密文件),但不会出现一方用报纸作弊导致双方疯狂追逐的场景。

一个示例应用程序是从失败的供应商那里购买电子书阅读器的DRM主密钥,以便当供应商的服务器在线时,他们可以将自己的文件上传到阅读器。这种类型的销售本质上是不可逆的,并且可能会跨越多个管辖区。参与者的财务稳定性是不确定的,这意味着双方要么承担大量风险,要么做出艰难的决定。使用零知识条件支付协议可以避免大量的交易成本。

在今天的一次交易中,我用0.1比特币从Sean Bowe (Sean Bowe是Zcash的团队成员)那里购买了1616数独谜题的解决方案,作为2016年巴巴多斯金融密码学大会现场演示的一部分。我在加州远程演示了这笔交易。

转让涉及两项交易:

8 E5 F5 f 792 a C4 e 98 CCA 87 f 10 ABA 7947337684 a5a 07333 ab 897 FB 9 c9d 616 ba 9 e 200554139 D1 E3 e 6e 499 F6 FFB 0 e 0e 706 EB 8 c 897293 a 7 f 6a 26d 25 e这份零知识有条件支付协议背后的所有实施工作都是由美国彼得维尔的肖恩·鲍完成的。

请参考现场演示的幻灯片。

背景我最早提出ZKCP协议是在2011年,是一篇关于比特币Wiki的文章,以此为例说明现有比特币脚本原语的威力。

零知识证明我的ZKCP协议需要为任何程序建立一个零知识证明。专业的零知识证明有很多种:常见的数字签名就是一个例子,保密交易也是。

在一般计算中使用的零知识证明是一种加密系统,它允许一个人运行一个混合了公共和私有输入的任意程序,并向其他人证明这个特定的程序已经接受了这些输入,而不会透露任何关于它的操作或私有输入。

如果这看起来像是不可能的魔术,出于科普的目的,我想出了一个非常简单但效率低下的零知识证明系统,它使用了布尔电路和加密哈希,或者参见马修·格林(Matthew Green)对零知识证明例子的图形解释。

2012年,Gennaro、Gentry、Parno和Raykova发表了一篇论文(《二次交叉过程和简明的NIZKs(非交互式零知识证明)无需概率验证》),描述了一个特别有效的结构。从那以后,几个团队继续推进这项工作,创建编译器并提高性能,最重要的是,产生像libsnark这样的实用程序。GGPR的12密码需要一个值得信任的设置,但对于ZKCP应用程序,实际上没有真正的限制,因为买家可以执行它。由于这项工作,ZKCP现在可以成为一个实用的工具。

高级阅读:

GGPR 12号文件

微软可验证计算小组

SciPR实验室

Libsnark

因为这些高效的零知识证明是尖端技术,它们依赖于新的强加密假设,并且它们的

ZKCP是如何工作的?

买方将首先创建一个程序,该程序可以决定给定的输入是否是买方想要购买的数据。这个程序只验证信息,不产生信息(买家甚至不需要有产生信息的想法)。比如,写一个验证数独解是否正确的程序非常简单,但是在尚力财经边肖写一个2022数独解算器就非常困难,因为数独是一个NP难问题。这里的买家只需要写解决方案的验证程序。

买方执行用于验证系统的可信设置,并将获得的设置信息发送给卖方。

卖家选择一个随机的加密密钥来加密买家想要购买的信息。

在使用这个零知识证明系统后,卖方将证明一个复合陈述:

Ex是满足买方程序的输入加密。是y Ex的解密密钥的sha256哈希。

卖方将Ex和y证书及其密钥发送给买方。一旦买家电脑验证了证书,买家就知道自己是否掌握了Y的SHA256输入,然后就可以解密自己想要的答案了。

所以买家本来是想为他的程序买一个输入的,但是现在他会很高兴,因为他买了原来的哈希镜像。这也证明了比特币已经提供了一种出售哈希图像的安全方式。

买方通过以下ScriptPubkey完成支付:

OP _ sha 256 OP _ EQUALOP _ IFOP _ else OP _检查锁定时间验证OP _ DROP OP _ end ifop _ CHECKSIG

这种支付的效果是,如果卖家提供Y的哈希原始图像,并用他的密钥签名,就可以避免永久占用买家的资金。例如,如果卖方不能在一天内收到货款,买方可以收回货款。

结果卖家在收钱的时候被迫透露了买家解密答案所需的信息。如果他没有,买家可以拿回他的钱。

这个ScriptPubkey也适用于跨链原子交换或者闪电支付通道。

比特币核心钱包已经在PR#7601支持这些交易。这种钱包支持是通过https://github.com/zcash/pay-to-sudoku..

数独ZKCP客户端和可用服务器都可以完成,买家程序可以任意长,也可以任意复杂,不会给比特币的区块链带来额外的负担。唯一的影响是设置和证明所需的时间会增加,而这一切都发生在比特币之外。除了买方和卖方,没有人会知道买方的程序(也就是说,他们不会知道被出售信息的性质)。

局限性和替代方案

这种方法有两个主要的局限性。首先是互动性:在和卖家来回沟通之前,买家不可能简单的做一个广播报价,让对方接受付款。其次,零知识证明系统的应用速度虽然不差,但是还不够快。例如,在我们的演示中,这个零知识证明系统证明了SHA256和数独限制的五种执行,在笔记本上运行大约需要20秒。(证明的验证时间只需要几毫秒)。

ZKCP的一个替代协议是Peter Todd在2014年提出的“paypub”协议。在paypub协议中,它不使用零知识证明。买家展示他们想要购买的数据的随机子集,当卖家收到付款时,他们将被迫解锁。Pay避免了零知识证明交易的复杂性,也让信息交易只需要人来验证。然而,它在欺诈成本方面仍然很脆弱,应用场景有限。

总的来说,我觉得这种“无信任”的智能合约很有价值。我期望人们会发现它令人兴奋的应用,这项技术会越来越实用。

原文:https://bitcoincore。Org/en/2016/02/26/零知识-内容-支付-公告/作者:Gregory Maxwell编译:洒脱(译):信息(http://www.8btc.com/zkcp)

本网站声明:网站内容来源于网络。如有侵权,请联系我们,我们会及时处理。

温馨提示:注:内容来源均采集于互联网,不要轻信任何,后果自负,本站不承担任何责任。若本站收录的信息无意侵犯了贵司版权,请给我们来信(j7hr0a@163.com),我们会及时处理和回复。

原文地址"Gregory Maxwell:首个成功运行的零知识条件支付(ZKCP)":http://www.guoyinggangguan.com/qkl/163814.html

微信扫描二维码关注官方微信
▲长按图片识别二维码