跨链资产交换问题
两个用户在两个链上都有相应的账户,一个用户如何在用A链上的资产交换另一个用户在B链上的等价另一种资产。
比如肥兔子想用1个比特币换豆畜子的10个以太。
公证人机制
相对最容易实现的一种方法。假如有个可以信赖的交易所机构,交易所分别在比特币和以太坊都开了账户。肥兔子和豆畜子交换资产的步骤如下:
1、肥兔子将1比特币打给交易所的比特币账户;
2、豆畜子将10以太打给交易所的以太坊账户;
3、交易所将1比特币打给豆畜子的比特币账户、并将10以太打给肥兔子的以太坊账户。
通过上述过程我们可以看到,交易所的安全和技术必须过关,因为整个过程的资产安全性和交易的原子性事务都是交易所保证的。交易所是中心化的,必须可信,否则交易所可以卷走双方的资产。
哈希锁定
两个链上均先要部署哈希锁定合约:
1、 肥兔子先用随机数s,根据h=hash(s)生成一个哈希h;
2、肥兔子将1比特币转入比特币本链的A合约里,合约的内容是:超过一个时间T之后,知道s的豆畜子(或肥兔子自己)可以转走这1比特币;
3、肥兔子将h发送给以太坊的B合约;
4、豆畜子观察到比特币A合约里锁定了1个比特币、并且以太坊B合约收到了h,于是将10以太存入B合约也进行锁定,
B合约的内容是:超过时间t之后,知道s的肥兔子(或豆畜子自己)可以转走这10个以太坊;必须满足t<T且间隔一定的合理时间;
5、时间t之后,肥兔子将s发送到B合约,同时取走10以太坊;
6、在肥兔子取走10以太坊之后,豆畜子得知了s,然后时间T之后,取走合约A中的1个比特币。
时间t到了以后,知道s的肥兔子一定会先于豆畜子取走10以太,取完了以后豆畜子才知道s,这时豆畜子会凭s去合约A里取1比特币,因为这时候T还没到,所以这1比特币肥兔子是取不了的。通过“hash锁定”和“时间锁定”,保证了交易对双方的安全性。
侧链/中继链
今天先到这,消化一下。后续继续学习跨链的另外两种方法:侧链/中继链,以及“跨链双雄”Cosmos、Polkadot
标签:10,跨链,哈希,畜子,以太,比特,兔子,公证人,合约 From: https://www.cnblogs.com/lyhero11/p/16950559.html