首页  >  要闻 >  区块链 >  示范给你看:怎么完成一笔跨区块链原子互换
示范给你看:怎么完成一笔跨区块链原子互换
 Leora    
2019年12月12日 01:00
  收藏
   

原子互换(Atomic swap):不经由第三方完成的安全可靠的跨区块链交易。

所谓的原子性(Atomic)指的是一笔交易应该像原子一样,被视为最小的,不可再分割(虽然原子好像可以)的单位。也就是说,我给你钱你给我货这两件事情呢,必须要同时发生,否则就同时不发生。

为了创造这样的特性,我们会用上一些区块链的神奇黑魔法,以比特币来说是哈希函数和时间锁;至于以太坊的话就是智能合约。

交易的过程大致上是这样子的,假设我和一位匿名网友达成共识,要用我持有的10个比特币交换他的100 个以太币。首先我们需要知道彼此的收付款地址,为了后续说明方便,这里假设它们分别是:

BTC_in

BTC_out

ETH_in

ETH_out

再来,为了完成这笔交易,我需要为这笔交易创造一个秘密,具体来说会是一段只有我自己知道的字串,并算出这个秘密的哈希值。

这里我选用的秘密是:早上好我的朋友

秘钥设置

SHA256 Hash of早上好我的朋友= 46f347a3d5b192f561898ade4665f7c48e8803046094601576f7f608e06298f4

接着,我发送一笔交易,将我的10个比特币从BTC_out转出到一个特殊的暂存位置(P2SH),并且规定这笔钱有两种方式可以转走:一种是如果出示那个可以被Hash变成46f34…8f4的秘密,就把钱交给BTC_in;另一种是如果钱放了两个小时还没被领走,那BTC_out就可以把钱领回去。

对方也要做类似的事情,把100个以太币从ETH_out转到暂存的智能合约,规定只要ETH_in向合约出示能变成46f34…8f4的正确秘密就可以把钱领走,否则一小时后ETH_out可以把钱拿回去。

等这些设定都完成了之后,我就可以对合约说「早上好我的朋友」,然后把对方的100个以太币领走,同时因为区块链数据是公开的,对方看得到我用来领钱的秘密,当然也就来把我的10 个比特币拿走,交易就算顺利完成啦。

点击关注币海启行微信公众号,了解更多

编辑: Leora
更多财经请关注 WX: Chaocaijing123456
币海财经: 全球财讯门儿清 https://www.bihai123.com/
声明: 本文由入驻币海编者上传,观点仅代表编者本人,不代表币海财经赞同其观点或证实其描述,请自行判断。

延伸阅读