跨链技术学习理解(一)公证人机制、哈希锁定
跨链资产交换问题
两个用户在两个链上都有相应的账户,一个用户如何在用A链上的资产交换另一个用户在B链上的等价另一种资产。
比如肥兔子想用1个比特币换豆畜子的10个以太。
公证人机制
相对最容易实现的一种方法。假如有个可以信赖的交易所机构,交易所分别在比特币和以太坊都开了账户。肥兔子和豆畜子交换资产的步骤如下:
1、肥兔子将1比特币打给交易所的比特币账户;
2、豆畜子将10以太打给交易所的以太坊账户;
3、交易所将1比特币打给豆畜子的比特币账户、并将10以太打给肥兔子的以太坊账户。
通过上述过程我们可以看到,交易所的安全和技术必须过关,因为整个过程的资产安全性和交易的原子性事务都是交易所保证的。交易所是中心化的,必须可信,否则交易所可以卷走双方的资产。
哈希锁定
两个链上均先要部署哈希锁定合约:
1、 肥兔子先用随机数s,根据h=hash(s)生成一个哈希h;
2、肥兔子将1比特币转入比特币本链的A合约里,合约的内容是:知道s的豆畜子(或肥兔子自己、但需要超过时间T)可以转走这1比特币;
3、肥兔子将h发送给以太坊的B合约;
4、豆畜子观察到比特币A合约里锁定了1个比特币、并且以太坊B合约收到了h,于是将10以太存入B合约也进行锁定,
B合约的内容是:超过时间t之后,知道s的肥兔子(或豆畜子自己)可以转走这10个以太坊;必须满足t<T且间隔一定的合理时间;
5、时间t之后,肥兔子将s发送到B合约,同时取走10以太坊;
6、在肥兔子取走10以太坊之后、豆畜子就从合约B中得知了s,然后豆畜子这时立刻会取走合约A中的1个比特币、赶在时间T之前。
时间t到了以后,知道s的肥兔子一定会先于豆畜子取走10以太,取完了以后豆畜子才知道s,这时豆畜子会凭s去合约A里取1比特币,因为这时候T还没到,所以这1比特币肥兔子是取不了的。通过“hash锁定”和“时间锁定”,保证了交易对双方的安全性。
侧链/中继链
今天先到这,消化一下。后续继续学习跨链的另外两种方法:侧链/中继链,以及“跨链双雄”Cosmos、Polkadot
参考
https://learnblockchain.cn/2019/03/23/blockchain_interoperability/ 跨链技术的分析和思考
https://mirror.xyz/iamdk.eth/4jSdSAgTSfBXmT0NQ3PI8PFw7ZvdAysIIpOpCrrKuRs 跨链简史:从资产桥到互操作
https://www.bitpush.news/articles/2256796 什么是跨链桥
https://www.panewslab.com/zh/articledetails/6sznqfc7.html 全面解析跨链桥基本原理和安全性
https://www.panewslab.com/zh/articledetails/0qp4us6j.html 多边形战士Polygon:如何保证跨链的安全性和稳定性