我很高兴地宣布,第一个零知识条件支付(ZKCP)已经在比特币网络上成功运行。
零知识有条件支付是一种交易协议,允许买方使用比特币向卖方购买信息,且方式私密、可扩展、安全,不需尚力财经小编2022要信任任何人:传递的信息只是是否已经支付,不需要买卖双方相互信任,也不需要第三方仲裁。
想象一个电影式的“公文包交换”(一方的公文装着现金,另一方装着秘密文件),但不会出现一方利用报纸进行诈骗,导致双方疯狂追逐的场景。
一个示例应用是从一个失败的供应商那里购买电子书阅读器的DRM主密钥,这样当供应商的服务器上线时,他们可以将自己的文件上传到阅读器。这种类型的销售本质上是不可逆的,有可能跨越多个管辖区,参与者的财务稳定性不确定,这意味着双方要么承担大量风险,要么做出艰难的决定。使用零知识条件支付协议可以避免大量的交易成本。
在今天的一次交易中,我从Sean Bowe (Sean Bowe是Zcash的团队成员)那里用0.1个比特币购买了一个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本零知识有条件支付协议背后的所有实施工作均由美国彼得维尔的肖恩鲍(Sean Bowe)共同完成请参考现场演示的幻灯片。背景我在2011年首次提出ZKCP协议,那是一篇关于比特币Wiki的文章,以此为例来说明现有的比特币脚本原语的威力。零知识证明我的ZKCP协议需要为任意程序建立一个零知识证明。专业的零知识证明有很多种:常见的数字签名就是一个例子,保密交易也是。一般计算中使用的零知识证明是一个加密系统,它允许一个人运行一个混合了公共和私有输入的任意程序,并向他人证明这个特定的程序已经接受了这些输入,而不会透露任何关于它的操作或私有输入。如果这看起来像是不可能的魔术,出于科普的目的,我想出了一个非常简单但效率不高的零知识证明系统,它使用了布尔电路和密码哈希,或者参见Matthew Green对零知识证明例子的图形解释。2012年,Gennaro,Gentry,Parno,和Raykova发表了一篇论文(《二次交叉过程和简明的NIZKs(非交互式零知识证明)无需概率验证》),描述了一个特别有效的结构。从那时起,几个团队继续推进这项工作,创建编译器并提高性能,最重要的是,产生像libsnark这样的实用工具。GGPR的12密码需要一个值得信任的设置,但对于ZKCP应用程序,实际上没有真正的限制,因为买家可以执行它。由于这项工作,ZKCP现在可以成为一个实用的工具。高级阅读:GGPR 12论文微软可验证计算小组SciPR Lab
Libsnark
因为这些高效的零知识证明是前沿技术,它们依赖于新的强加密的假设,它们的
ZKCP如何工作
买方将首先创建一个程序,该程序可以决定给定的输入是否是买方想要购买的数据。 这个程序只会验证这些信息,而不会生成这些信息(买家甚至不需要有生成这些信息的想法)。比如,写一个验证数独解是否正确的程序很简单,但是写一尚力财经小编2022个数独求解器就很难,因为数独是一个NP难的问题。这里的买家只需要写解决方案的验证程序。
买方执行用于证明系统的可信设置,并将获得的设置信息发送给卖方。
卖家选择一个随机的加密密钥,对买家想要购买的信息进行加密。
使用这个零知识证明系统后,卖家会证明一个复合语句:
Ex是一个满足买家程序的输入加密。是y Ex的解密密钥的sha256哈希。卖方将Ex,Y证书及其钥匙发送给买方。一旦买家电脑验证了证书,买家就知道自己是否掌握了Y的SHA256输入,然后他就可以解密他想要的答案了。
所以买家本来是想为他的程序买一个输入的,但是现在,他会很高兴,因为他买了原来的哈希映像。这也证明了比特币已经提供了一种安全出售哈希图像的方式。
买方通过以下ScriptPubkey完成付款:
OP _ sha 256 OP _ EQUALOP _ IFOP _ ElseOP _ CHECKLOCKTIME VERIFY OP _ DROP OP _ end ifop _ CHECKSIG这种付款的效果是,如果卖方提供Y的散列原始图像并用他的密钥签名,他可以为了避免永久占用买方的资金,例如,如果卖方不能在一天内收取他的付款,买方可以收回付款。
结果,卖家收款时,被迫透露了买家解密答案所需的信息。如果他没有,买家可以拿回他的钱。
此ScriptPubkey也适用于跨链原子互换或闪电支付通道。
比特币核心钱包已经在PR#7601支持这些交易。这种钱包支持是通过https://github.com/zcash/pay-to-sudoku.
的数独ZKCP客户端和可用服务器完成的,买家的程序可以任意长,也可以任意复杂,不会给比特币的区块链带来额外的负担。唯一的影响是设置和证明所需的时间会增加,而这一切都发生在比特币之外。除了买方和卖方,没有人会知道买方的程序(也就是说,他们尚力财经小编2022不会知道被出售信息的性质)。
限制和替代方案
这种方法有两个主要的局限性。首先是互动性:在和卖家来回沟通之前,买家不可能简单的做一个广播报价就让对方接受付款。其次,零知识证明系统虽然应用速度还不错,但是速度不够快。例如,在我们的演示中,这个零知识证明系统证明了SHA256和数独限制的五种执行,在笔记本上运行大约需要20秒。(证明的验证时间只需要几毫秒)。
ZKCP的一个替代协议是Peter Todd在2014年提出的“paypub”协议。在paypub协议中,它不使用零知识证明。买家展示他们想要购买的数据的随机子集,当卖家收到付款时,他们将被迫解锁。Pay避免了零知识证明交易的复杂性,也可以让信息交易只需要人来验证。但在造假成本上依然脆弱,应用场景有限。
总的来说,我认为像这种“无需信任”的智能合同有很大的价值,我期待人们会发现它令人兴奋的应用,并且这项技术会越来越实用。
原文:https://bitcoincore。org/en/2016/02/26/零知识-内容-支付-公告/作者:格雷戈里麦克斯韦编译:洒脱喜稿源(译):资讯(http://www.8btc.com/zkcp)
标签: do