如何利用tcp或udp实现应用层协议_如何利用ZKP(零知识证明)与区块链,实现去中介的交易协议?...

9a3d90cb5bebccec0ed325d2a68e05f0.png

作者:郭宇(安比实验室创始人)

这篇文章解释利用ZKP(零知识证明)与区块链来实现去中介的交易协议的原理,讲讲我们是怎么把这个理论变成实用的代码的,这是一篇概述,希望了解更多的朋友请关注后续。

[注]:如果你相信未来区块链技术能改变世界,请留意看文末

没有第三⽅,能保证交易的公平性吗?

想象⼀下这样⼀个交易场景,⼀个买家拎着现⾦箱⼦,另⼀个卖家也拎着⼀个箱⼦,装着某种贵重货物。在电影中的情节⾥,买卖双⽅会坐在⼀个桌⼦两侧,双⽅倒数⼀、⼆、三,⼀起把箱⼦推给对⽅(很酷的姿势),当然双⽅最好都带武器,防⽌对⽅依然耍赖。除了买家卖家,没有任何第三⽅在场(可能是⼀个⿊市交易),这两⽅互不信任。可以想象,任何⼀⽅都不敢先出⼿,把⾃⼰的箱⼦交给对⽅,因为这样接下来很可能出现的场景是,对⽅拿到箱⼦会⽴即跑路,这样就导致钱货两空的结局。

在上世纪90年代,正值互联⽹早期,电⼦商务已然是⼤家普遍看好的互联⽹应⽤。但在这些早期的在线交易实验中,会出现上述的两⽅交易难题:到底是卖家先发货,还是买家先付款? 当然,卖家收到钱款后拒绝交付商品;或买家收货之后拒绝付款的现象,难以避免。于是如何实现买卖双⽅在线上进行「公平交易」,即实现可靠的 「⼀⼿交钱,⼀⼿交货」 成了⼀个热门经典的学术问题。但是很不幸地是,科学家们早就证明了这样⼀个结论[1-2]:

在没有可信第三⽅的前提下,⽆法实现买卖两⽅的公平交易

所谓「公平交易」是指买卖双⽅在不相识(不互信)的情况下,能够放⼼进⾏交易⽽⽆需担⼼对⽅作弊。如果交易顺利完成,则买家得到商品,同时卖家得到钱款;若协议中途任何⼀⽅退出,或任何⼀⽅作弊,协议都会保证另⼀⽅的利益不会受损。

在 Google 论⽂搜索引擎⾥⾯搜「Fair Exchange」,我们能看到多达两百多万篇学术论⽂。假如我以一天看十篇的速度估算,这一辈子都看不完。

1d4dde04ce2bcd135c169a7bcb0a541d.png

在过去近 30 年的研究⾥,公平交易⽅案中都必须要求存在⼀个绝对可信、可靠的第三⽅。⽀付宝正是起到这样⼀个关键作⽤,担任⼀个⼤家都信赖的第三⽅,⼀旦买卖双⽅发⽣纠纷,⽀付宝负责介⼊事务并解决问题。 当互联⽹电⼦商务蓬勃发展到今天,这⼀类的信任第三⽅已经变成了巨⽆霸。而大家所感受不到的事实是,第三⽅所引⼊的「信任成本」正在急速攀升。毫⽆疑问,对第三⽅的过度依赖会带来严重的「隐私泄露」、「单点失效」还有「个⼈信息滥⽤」的问题。当然有⼀些学术成果表明,这个条件可以放宽,也就是依靠⼀个“半可信第三⽅”(Semi-trusted Third Party)。但是请诸位思考,所谓 "半可信" 这并不解决根本问题,半可信第三方只是停留在理论层面的一种设想。

时间走到了 2008 年,⽐特币横空出世,中本聪给出了⼀种天才设计:在⼀个可以⽆任何准⼊许可的 P2P ⽹络中,采取「POW与最长链」共识协议,以⼀种⾮常公平的⽅式进⾏去中心化记账[3]。我们可以从另⼀个⻆度来理解中本聪的创新:

Bitcoin 实现了⼀种分布式协议,它以去中⼼化的⽅式「模拟」出了⼀个「虚拟」的「可信第三⽅」

当我们在使⽤⽐特币时,可以完全想象存在着这么⼀个虚幻的可信第三⽅,它⾜够可靠,不会记错账。那么⼤家很容易联想到刚才的问题:⽐特币或者区块链能否也模拟出⼀个虚拟的可信第三⽅来实现经典的公平交易呢?这样⼀来,交易的买卖双⽅不就可以不再依赖⼀个实体第三⽅了吗?这样交易的效率会惊⼈地⼤幅提升,中介成本会降到极低。

如果区块链技术真的可以做到这⼀点,那么实际上就可以实现:「零信任公平交易」。设想下,我们可以随意在⽹络上与完全不互信的另⼀⽅进⾏「数字化商品」交易,⽽且不⽤担⼼他会作弊,因为有区块链在旁边担任⼀个协助者,或者仲裁者的⻆⾊。这会将交易、商品流通或贸易的效率提升到一个无法想象的高度。

实现零信任的两方公平交易的先驱——简述 ZKCP

⽐特币开发者 Greg Maxwell 早在 2011 年就在⽐特币维基⽹站上提出了 「零知识有条件⽀付」(ZKCP)的构想[4]。采用比特币这个被 模拟出来的第三方来充当交易支付中的可信第三方。由于比特币网络是去中心化,因而这个第三方将会是一个零信任第三方

52c6b17da7fac456aa56f4ccb239db44.png

通过这个⽅案,买卖双⽅可以通过 BTC 进⾏数据的交易,并且可以做到所谓的「原子交换」,卖家在收款的瞬间,买家拿到数据。这个原理其实⾮常简单,下面来讲述下整个过程:

主角
  • 卖家:Alice

  • 买家:Bob

a8ccc5798c9a81075fa2a5bc9193d8f1.png

第一步: Alice 将「数据」⽤⼀个「钥匙」 加密,锁在箱子里面。

dd455ea8fe0da3919bd57806538018fe.png

第二步:Alice 将箱子发送给 Bob,Alice 还将附加⼀个「零知识证明」,证明两个事实:(1)箱子可以用钥匙打开,(2) 钥匙的哈希等于一个值 「h」

bc149f029dc73ff2a967c9bffd35a1a7.png

第三步:Bob 检查零知识证明,确认上述事实为真。然后 Bob 将零知识证明中的一部分撕下来作为「收货收据」。这个收据上写着钥匙的哈希,也就是「h」

6693d9a883291883f52e0dcabf300d97.png

第四步:Bob 创建⼀个智能合约,锁定 1BTC,写⼊「h」。⽀付脚本要求:凡是可以提供「h」的哈希原象的⼈可以提⾛这枚 BTC

cdcc205f9a1cc05187b3e79c11c728e7.png
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值