图解区块链跨链协议之“哈希时间锁”

背景介绍

区块链技术的快速发展加快了区块链在不同场景下的落地,由于共识协议的保障(POW,POS,PBFT等),区块链让网络中的节点在信息互联的基础上进一步实现价值互联。然而,不同的区块链系统在数据模型、共识协议、智能合约调用和系统架构上往往存在差异,这给区块链的互联互通造成了巨大挑战。

如何打通不同链之间的壁垒,拓展区块链单链的价值边界正是跨链协议所解决的事情。跨链协议作为区块链网络中的”TCP/IP”协议近几年得到了学术界和工业界的广泛关注,被称为区块链中的圣杯技术。

以太坊创始人V神曾经将现有的跨链协议分为3类:基于公证人跨链方法,哈希时间锁跨链,侧链/中继链跨链方法。本文将介绍哈希时间锁跨链,其也作为闪电网络的背后支撑技术。

哈希时间锁原理

1 首先,Bob在以太坊上拥有Y个比特币,Alice在比特币网络中拥有X个比特币

2 随后,Alice和Bob商量,想要用自己的X个比特币换他的Y个以太币,Bob听了之后觉得可以,两人下面就准备开始进行互换货币,希望达到如下的交易目标

3 下面重点开始了,首先Alice在本地随机生成一个密钥s,并计算s的哈希值像Hash(s),这时候只有Alice有s和h

4 接着,Alice编写智能合约SC1锁定自己的X个比特币,并在合约中给Bob出了题:

  • 若Bob能给我哈希值h的原像s,X个比特币将给自动发给Bob;
  • 若在48小时Bob都不能提供原像s,这X个比特币将退回给Alice。

5 随后,Alice将合约上链,存在比特币网络区块中

6 此时,Bob看到到Alice的合约内容,发现了这个令人费解的哈希值求解问题,我们知道密码学哈希值具有单向性,根据像h去求原像根本不可能。因此,Bob为了拿到原像就模仿Alice执行了同样的操作,用相同的哈希值h锁定了自己的Y个以太币,等Alice来用s解开,这样自己就能拿到s,具体合约如下:

  • 若Alice能提供h的原像s,就把Y个以太币转给她
  • 若24小时Alice都不提供原像s,Y个以太币将退回Bob

7 随后,Bob将合约上链,存在以太坊区块中

8 Alice发现Bob链上的合约后,用s去成功拿到这Y个比特币。就在Alice使用s取走以太币的同时s也暴露给了Bob,Bob接着用s也拿到了Alice原来锁定在链上的X个比特币,交换大功告成!

存在的问题

细心的朋友可能注意到,Alice和Bob的合约中都存在一个时间锁,并且Alice的时间设为48小时,Bob的设为24小时,Bob的时间阈值早于Alice。这是因为由于网络通信存在时耗,Bob在获取到原像s后希望能够有足够的时间去从Alice那里拿钱。

协议到此看似可行,但在特殊情况下,会存在原子性不能保证的问题。想象一下这个场景,在Alice获取了比特币,Bob获得s,网络出现了异常(例如网络分区),Bob将无法与Alice进行通信,在48小时到达后X个比特币将自动退还给Alice,最终Alice空手套白狼,B赔了Y个以太币,由此看出哈希时间锁协议的存在操作原子性较弱的缺点需要解决。

另外Bob必须等到Alice部署完合约才会继续部署合约(因为这时Bob才知道用什么哈希值去锁定以太币),顺序部署合约存在效率较低的问题。

哈希时间锁的优点在于这种方法可以完全不依赖第三方机构跨链(如公证人方法和中继链方法),保持了区块链的去中心化特点。

更多内容欢迎关注微信公众号:

在这里插入图片描述

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值