原子互换’的简明解析

'原子互换'简析

原子互换:实现去中心化跨链转移的核心机制

要盘活分散在各条链上的流动性并吸引更多用户进入区块链生态,就必须要能安全地跨链转移资产,而且同时还要保障Web3信任最小化的核心价值。原子互换是指两条不同区块链上的用户跨链交易通证资产,而且在交易过程中不依赖中心化的媒介。这种模式可以让DeFi用户在Web3多链生态中保持较高的去中心化水平。

什么是原子互换?

用户可以通过原子互换来跨链进行点对点的通证交易。双方必须先在交易合约中预存一定金额的通证,原子互换才能执行。任意两名用户都可以互换数字通证,无须依赖第三方来开展交易,因此消除了对手方风险。

“原子化”(atomicity)是一个软件开发术语,指数据库事务(transaction)要么全部执行,要么全部不执行,不存在中间状态。而“原子互换”也基于了这一概念:如果交易双方预存了一定金额的通证,就执行互换;否则就将所有已存入的通证原路返还。

原子互换的运行机制是什么?

原子互换采用哈希时间锁合约(HTLC)作为“虚拟金库”或“加密托管账户”,用来保管用户资金,只有当一定数量的通证被存入合约时,才会执行互换。每个用户都必须在一定时间内确认收到通证,才能解锁。

哈希时间锁合约

哈希时间锁合约(hashed timelock contract,缩写是HTLC)是一个定时的智能合约,采用私钥和加密哈希值来控制资金访问权限。每一方都必须满足所有互换条件,合约才能执行,否则,通证将会被原路退还。

HTCL包含两个核心组件:

  • 哈希锁密钥(hashlock key)——双方都必须提交加密证明,以验证他们履行了互换合约条款。
  • 时间锁密钥(timelock key)——如果在规定时间内没有提交证明,已经存入的通证将被原路退还。

原子互换示例

  1. Alice决定用10个X通证换Bob的10个Y通证。他们两人创建了一个哈希时间锁合约,有效期是1小时。
  2. Alice创建合约地址,并在里面存入10个X通证。随后,合约生成了一个只有Alice知道的私钥。Alice利用私钥创建加密哈希值,然后发送给Bob。
  3. Bob用这个哈希值验证Alice是否真的向合约存入了10个X通证。Bob无法获取这笔资金,因为他只有哈希值,而没有私钥。
  4. Bob用这个哈希值生成一个新的合约地址,他向这个合约存入10个Y通证。现在,双方都向合约存入了通证。
  5. 由于Bob是使用Alice私钥的哈希值创建的合约地址,所以Alice可以认领Bob存入的这10个Y通证。而她在认领Bob的Y通证时也向Bob透露了私钥。如果Bob不在合约有效期内完成交易,那么Alice认领的通证将退还给Bob。
  6. 现在,Bob用私钥取出Alice的10个X通证,并完成交易。
  7. 互换在一小时内完成,合约无法撤回,Alice成功地用10个X通证换到了Bob的10个Y通证。

原子互换的好处

原子互换可以为交易者带来独一无二的价值。

  • 降低对手方风险——无须依赖中心化的第三方来开展交易。交易者可以完全控制自己的资产。
  • 提高流动性——资产可以跨不同区块链交易,因此可以提高资产的流动性。
  • 直接互换资产——用户可以直接购买加密资产,无须先换成流动性较高的稳定币然后再开展后续交易。用户可以在去中心化的平台交易任意通证。
  • 交易有保障——合约将完全保障按照预定义流程执行,如果条件未达到,资金将原数退还。
  • 降低成本——点对点兑换的费用成本将低于依赖第三方的交易成本。

原子互换的瓶颈

由于以原子互换的方式交易通证资产存在一些瓶颈,DEX和中心化的交易平台仍然有很大的市场。

  • 用户体验——每个交易对手方都必须先对交易金额/价格、时间锁期限、交易数据以及哈希值达成一致意见,并且要等待交易处理完成。这个过程不仅耗时而且复杂,对初学者来说尤其难上手。
  • 隐私问题——原子互换需要等待多个区块才能完成,这可能招来攻击者,让他们有时间来追踪地址并锁定交易者。
  • 兼容问题——你无法跨所有区块链执行原子互换。要进行原子互换,每条区块链都必须使用同样的哈希算法。

原子互换VS跨链桥

原子互换可以点对点交易原生资产,而跨链桥则可以连通不同区块链。跨链桥通过锁定/解锁或铸造/销毁模式来将包装资产跨链。迄今为止,由于跨链桥被攻击导致超过26亿美元的资金被盗。因此,Web3行业正在快速采用一种全新的跨链解决方案。

交易者和协议可以使用Chainlink CCIP来解决跨链桥和原子互换存在的问题。CCIP是跨链互操作性标准,可以跨各个区块链安全、可靠且高效地传输可编程通证,并可以完美兼容拥有不同哈希算法的区块链。Synthetix就采用了CCIP来实现Synth Teleporters功能,在其多链生态中轻松将流动性跨链。