导读
接下来让我们一起走进今天的文章吧!

1
原子性
1、介绍
在了解什么是原子交易之前,我们需要先掌握什么是原子性。
原子我们都知道,原子是化学反应中不可再分的最小微粒。一个完整的原子是由原子核及其核外电子构成的。
所以原子我们可以总结两大特性:
由更小的物质组成在某些情况下不可分
那我们考虑一个行为或一个操作,这个行为或者这个操作必然会对应某个结果。一旦行为发生,那么结果也会发生。也就是说,对于这个行为或者这个操作会导致其他的行为或者操作。这些行为和操作是绑定的,相当于一个原子,在执行过程中,要么全部执行,要么全部不执行,即操作是不可分的。
所以我们可以这样理解原子性:
一个行为是由多个小行为组成,这些小行为要么全部执行,要么全部不执行。这就是原子性。原子性意味着行为中的小行为“一荣俱荣,一损俱损”。这个行为可以是计算机的程序,可以看做是某个进程等等。
2、举例
原子性的根源是一个小行为必然影响另一个小行为。
最直接的例子就是,A给了B一样物品,那么B就会多一件这样物品。例如A给B发送了一条消息,那么B就会获得这条消息。如果A成功发送,那么B就会成功接收。如果A发送失败,那么B就会接收失败。
2
原子交易
1、介绍
前面的例子中,我们把A给B物品,B接收到A的物品看做一笔交易。这个就是原子交易。
在区块链中,用户A和用户B之间进行交易,用户A支付了一笔钱,那么用户B就会收到该笔钱,这个交易就是原子交易,原子交易的英文名称是atomic transaction。
原子交易要么全部交易成功,要么全部交易失败。
2、价值
原子交易有什么价值呢?
我们以比特币为例。假如A有5个比特币,B有2个比特币。A发起一笔交易,向B转账1个比特币。如果交易成功,那么,A就剩下了4个比特币,B就有了3个比特币。
这个交易是需要A和B两个人参与的,一旦某一方操作失败,那么整个交易都不会执行,即:如果B没有成功接收1一个比特币,那么A也不会损失那个比特币。
如果是我们普通交易呢?我们需要第三方可信机构,如果第三方机构明面上可信,但是实际上不可信呢?我们目前用的这些所谓的第三方可信机构进行在线支付的时候,我们如何去验证其可信呢?没有办法验证,我们只能被动接受其相关协议,才能使用其服务。
原子交易就可以让交易过程不再依赖第三方可信机构,两者之间的交易就可以得到真正的保障。
3
哈希时间锁合约
要想真正实现,我们需要用到一个概念叫做哈希时间锁合约,哈希时间锁合约应用到了哈希锁,所以我们来了解一下哈希锁和哈希时间锁合约。
1、哈希锁与时间锁
1、哈希锁
首先我们先来了解一下哈希锁,哈希锁的英文名字是Hashlock。hash锁可以看做是一把锁,或者说是“枷锁”,它会限制输出的支出,直到特定的数据被公开。
哈希锁有一个非常重要的特性。即一旦任何哈希锁被公开打开,使用相同密钥保护的任何其他哈希锁也可以被打开。
这个特性有什么作用呢?
所有的hash锁都被同一个密钥打开,那么只要有了这一个密钥,所有的输出就不会被限制。这样就可以创建多个输出。
2、时间锁
时间锁的英文是Timelock,可以用来限制某些比特币的支出,直到达到指定的时间或者区块的高度。
2、哈希时间锁合约
哈希时间锁合约英文是:Hash Time Locked Contract (HTLC)。哈希时间锁定合约或 HTLC 是一类使用哈希锁和时间锁的付款,要求付款接收方要么通过生成加密付款证明在截止日期之前确认收到付款,要么丧失领取付款的能力,并将其返回给付款人。然后,接收方生成的加密支付证明可用于触发其他支付中的其他操作。
3、跨链交易的应用
哈希时间锁合约有非常重要的用途,从上面的介绍中,我们就可以将其和原子交易对应上。
哈希时间锁合约能保证交易的安全,自然就有人想到在跨链交易中使用哈希时间锁合约。实现在无需互信,无需第三方的前提下的资金交换。
我们举个例子,以最经典的比特币和以太币为例。
假设A有10个比特币,B有100个以太币,他们想要交换部分虚拟货币,我们假设1个比特币能够兑换13.7个以太币。
然后A和B协商并确定要交换的金额并做如下操作:
A在比特币区块链上生成一个有HTLC的地址并生成密钥,然后使用哈希函数根据其密钥生成哈希锁。然后A将一定金额的比特币存入HTLC中,例如1个比特币,这个金额是双方确定的。然后使用哈希锁锁住用于交换的这1个比特币。接下来A将锁住的副本发送给B。
B使用A的哈希锁在以太坊上,也创建一个带有HTLC的地址。然后将对应金额的以太币(13.7)存入合约并锁定。
这个时候,A和B就都锁定了自己用于交换的币。因为B使用的是A的哈希锁,密钥掌握在A手里,所以,A可以使用密钥解锁哈希锁,获得B的以太币。具体如下:
如果A在时间锁的设定时间内,使用密钥解锁了B的合约,获得了B的以太币,将以太币转移到了自己的地址,B就能获得A的密钥,解锁A加密的比特币,并将比特币转移到自己的地址中。
如果A的操作超时,时间锁就会在一定时间后,将资金返回给原来的所有者。


长按二维码关注




