时间:2023-08-04|浏览:225
假如我们现在要做一笔交易,我想把自己的数据卖给你,怎样交易才是最安全的?
显然这里会有两个问题:
1、因为我卖的是数据,肯定不能直接给你,否则你得到数据后直接跑了怎么办?
2、但我肯定也不能先拿你的钱,因为可能我给你的数据是不符合你要求的,或者我拿了钱之后也跑了。
要解决上面这个问题,我们就需要一个完美精准的「一手交钱、一手交货」方案,零知识证明和区块链这时就可以派上用场了。
今天我们尽可能用普通人能听懂的语言,完整讲解了这样一个有趣的解决方案:WisdomChain的条件支付。
这个概念意味着什么呢?简单点讲,就是在没有信任第三方的场合下达成完美公平地「一手交钱一手交货」的方案。
想象一个交易场景,如果交易双方在没有信任第三方在场的情况下,谁也不愿意先出手付款/交货给对方,否则对方会跑路。一手交钱一手交货就意味着:付款/交货动作必须具备原子性(大白话:要么交换完成,要么不交换,不给任何一方赖账的空间)。
所谓完美公平是指任何一方都没办法占更多的小便宜。不过这个概念是一个古老的话题,早在80年代起就有很多学者在研究如何做到完美公平交易。但是长期以来,大家一致认为一个受信任的第三方是必不可少的。后来等到比特币诞生,大家发现利用区块链的特性就可以做到。
那么什么WidomChain中的条件支付是如何实现的呢?,
据官方透露在WidomChain中的条件支付主要是由“哈希时间锁定”、“哈希高度锁定”与其他因素构成,这里暂只讨论哈希时间锁定与哈希高度锁定。
什么是哈希时间锁定
哈希锁定,全称哈希时间锁定合约(HashTimeLockContract),是闪电网络中提出的一种新的技术实现形式。
哈希锁定模式是指用户在规定的时间段对于哈希值的原值进行猜测来支付的一种机制。简单讲,就是在智能合约的基础上,双方先锁定资产,如果都在有限的时间内输入正确哈希值的原值,即可完成交易。
在这样的机制下可以实现小额支付的快速确认,也就是说实现闪电网络快速确认的目标。接下来笔者将通过哈希锁定的应用场景之资产兑换为例来为大家科普哈希锁定是怎么实现的。
怎么实现哈希时间锁定?为了方便理解哈希时间锁定到底是如何锁定的,这里给大家类比了两个锁,一个是哈希锁,一个是时间锁。
1、哈希锁
通过哈希值上锁,上锁之后只有用产生这个哈希值的原本值进行开锁,假设数123,哈希之后的值为a03a,通过a03a上锁,不考虑哈希碰撞的情况下,只能由123解锁。
2、时间锁
时间锁要求在规定时间内输入哈希锁的密码。如果时间锁的时间是1个小时,那么就要求用户需要在1个小时内输入哈希锁的密码,如果在1个小时后输入哈希锁的密码,时间锁仍然不会开启。
也就是说同时打开这两个锁的条件是,在规定的时间内输入哈希值原本的值,上面的例子就是在1个小时内,输入“123”,两把锁才会都处于开启状态。
现在A将利用哈希时间锁定的机制把自己的WDC在B那里兑换以太币,具体的操作步骤如下:
(1)、A先生成随机数S,再把随机数的哈希值H(S)通过网络给B,假设随机数是123,哈希值是a03a。
同时,A进行时间上锁和哈希上锁,假设时间锁的时间为1小时,哈希锁上锁的哈希值是a03a。上完锁后,待转换的WDC就被锁定在链1上。
(2)、B收到A给的哈希值“a03a”后,B根据这个哈希值在以太坊上部署智能合约,并往合约中存同等价值的以太币。B的智能合约要求A在规定时间内提供密码“123”才可以取走智能合约中的以太币。
这个过程相当于,B自己也上了两把锁,其中哈希锁和A的那把哈希锁一样,需要用同样的密码才可以打开,时间锁假如为半个小时。
(3)、A使用B的这个智能合约,并在半个小时内输入自己的密码“123”,就能打开B在链B上的哈希锁,就能取走B智能合约里的以太币(相当于B的以太币,因为智能合约是B创建的,合约里的以太币也是B转进去的)。
(4)、因为A在调用了B的智能合约时输入了密码,因此B也就知道了密码是“123”,他只要在一个小时内通过这个密码打开链A上的哈希锁,A的WDC就会转给B。
通过上面的过程,可以看到
用戶喜愛的交易所
已有账号登陆后会弹出下载