投资百科/加密货币/原子交换Atomic Swap是什么?两个区块链如何不经过交易所换币?

原子交换Atomic Swap是什么?两个区块链如何不经过交易所换币?

原子交换通常利用HTLC让两条链上的资产要么全部交换、要么分别退款。本文用BTC与ETH案例解释流程、条件、风险与局限。

2026-05-21

原子交换(Atomic Swap)是在没有中心化托管方的情况下,让两个参与者在不同链或不同资产之间完成交换。理想结果只有两种:双方都拿到对方资产,或者交换失败后各自取回原资产。

经典跨链原子交换使用HTLC实现,但“原子交换”是完整协议,“HTLC”只是其中的密码学条件组件。

定义

假设Alice持有BTC,Bob持有ETH,双方约定1 BTC交换20 ETH。协议需要保证:

  • Alice不能拿走ETH后阻止Bob领取BTC;
  • Bob不能拿走BTC却不交付ETH;
  • 任一方中途退出,另一方最终能退款;
  • 交换不依赖中心化平台保管两边资产。

通过同一哈希秘密连接两条链上的合约,可以让领取一边资产的动作披露另一边领取所需信息。

完整流程

  1. Alice生成随机秘密x,并计算 h=H(x)
  2. Alice在比特币链创建HTLC,锁定1 BTC:Bob提供x可领取,48小时后Alice可退款。
  3. Bob验证比特币交易、金额、脚本和确认数。
  4. Bob在以太坊创建HTLC,锁定20 ETH:Alice提供x可领取,24小时后Bob可退款。
  5. Alice验证以太坊合约后,用x领取20 ETH。
  6. x在以太坊链上公开。
  7. Bob读取x,在比特币链领取1 BTC。

如果Alice不领取ETH,24小时后Bob退款;再过更长时间,Alice取回BTC。整个交换不需要交易所控制私钥。

为什么超时必须不同?

Alice领取ETH后,Bob需要观察x、构造比特币交易并等待广播确认。如果两边同时到期,Alice可能在最后时刻领取,Bob来不及操作。

因此,先锁定的一侧通常设置更长超时:

T_BTC > T_ETH + Bob响应缓冲

缓冲要考虑两条链出块时间、拥堵、手续费市场、节点故障和时区。固定“多一小时”未必适合高价值或慢链交易。

原子性来自哪里?

Alice想获得ETH必须公开x;Bob获得x后即可领取BTC。秘密把两个独立链上条件连接起来。

若x不公开,两边最终走退款路径。协议不需要两条链直接通信,也不需要桥合约铸造包装资产。

原子性是经济与流程意义上的“全成或全退”,不是两个区块在同一瞬间最终确认。交换期间资金会锁定,双方还承担时间和链重组风险。

两条链需要满足什么条件?

经典HTLC原子交换要求:

  • 支持兼容的哈希函数;
  • 支持时间锁或可表达超时条件;
  • 支持可验证签名和条件花费;
  • 用户能观察对方链状态;
  • 两条链有足够可靠的最终确认;
  • 双方能独立构造领取与退款交易。

若哈希算法不同,需要设计兼容条件;若某链不支持足够脚本能力,可能无法使用经典方法。

实际报价问题

原子交换解决结算对手风险,不自动解决价格发现。Alice与Bob仍需约定兑换比例、数量和有效时间。

在价格快速波动时,后行动作方拥有免费选择权:看到市场不利可以拒绝继续,先行动作方资金则被锁定到退款。这个问题称为可选性或Free Option Problem。

解决方法可能包括较短报价有效期、保证金、拍卖、做市商竞争或专门协议,但都会引入新复杂度。

Free Option案例

Alice先锁定1 BTC,约定换20 ETH。等待确认期间,BTC相对ETH上涨20%,市场价格变成1 BTC=24 ETH。

Bob按原价交付20 ETH会占便宜,因此愿意继续;若BTC下跌到16 ETH,Bob可能不建立第二个合约,让Alice等48小时退款。

Bob享有“有利时成交、不利时放弃”的选择,而Alice承担资金锁定。原子性防止资产被单边盗取,却没有消除谈判与时机不对称。

与中心化交易所比较

中心化交易所提供订单簿、即时撮合和统一账户,但用户承担托管、提现和平台风险。

原子交换让用户保持自托管并减少结算对手风险,却面临:

  • 找到匹配对手方困难;
  • 流动性分散;
  • 两条链手续费;
  • 等待确认;
  • 复杂操作与退款;
  • 价格变动可选性;
  • 两条链都需在线监控。

它不是所有交易场景的替代,而是一种特定信任最小化结算方式。

与跨链桥比较

桥通常把资产锁在源链,在目标链铸造包装表示,或使用流动性池提供跨链转移。用户最终持有的是目标链上的映射资产,并依赖桥验证者、合约或流动性提供者。

原子交换后,双方各自获得对方链的原生资产,不需要持续存在的包装代币负债。它不解决把同一资产带到另一条链使用的问题。

桥适合跨链移动资产,原子交换适合双方互换所有权,两者用途不同。

与DEX比较

同一链AMM DEX通过智能合约资金池即时交换,价格由池曲线与套利决定。跨链原子交换没有共享状态,无法像单链AMM一样原子读取两边储备。

一些跨链DEX在界面上提供“原子交换”,底层可能使用HTLC、门限签名、桥或做市商网络。用户应查看真实托管和失败路径,而不只相信产品名称。

实际操作清单

  1. 核对双方资产、链ID和原生合约。
  2. 明确兑换率、数量和报价截止时间。
  3. 生成高熵一次性秘密并安全备份。
  4. 独立验证哈希值与脚本。
  5. 先用小额测试。
  6. 等待第一条链足够确认。
  7. 检查第二侧超时明显更短。
  8. 两条链都预留原生手续费。
  9. 保存领取和退款原始交易。
  10. 监控x公开与剩余时间。
  11. 不依赖单一前端。
  12. 完成后核对两边最终状态。

任何合约地址、金额、哈希或退款地址错误,都可能让“协议理论安全”失去意义。

两条链确认数怎样设置?

确认数应根据每条链的共识、金额、重组历史和交易可撤回性独立设置。比特币6个确认与另一条链6个区块没有可比性。

先行动作方应等第一侧达到约定安全水平,后行动作方再锁定资产。若过早继续,第一侧重组可能让一边合约消失。

高价值交换还要监控链暂停、验证者异常和客户端分叉,而不是只计数。

手续费与Dust

交换至少包含锁定、领取,失败时还包含退款,两条链都收费。金额太小时,手续费可能超过价差优势。

UTXO链还要避免退款输出变成Dust,并为未来费率上升预留费用。预签退款交易若手续费固定过低,可能在拥堵时无法确认。

智能合约链需要预估Gas上限、合约调用失败与Nonce管理。用户不能把所有ETH都锁入合约后发现没有Gas领取。

隐私风险

同一哈希出现在两条链上,会把本来独立的地址与交易关联。公开秘密后,观察者可识别对应合约和金额时间关系。

链上分析还能通过金额、时间与退款行为推断双方。原子交换减少托管信任,不自动提供匿名性。

使用新地址、避免重复秘密和采用更先进协议可改善,但无法保证完全隐私。

软件与前端风险

用户通常通过钱包或交换软件执行复杂脚本。恶意软件可以替换退款地址、使用错误超时或窃取秘密。

应验证开源版本、签名与合约源码,保存可从命令行恢复的参数。前端下线时,用户必须仍能执行退款。

“无需信任交易所”并不等于无需信任本地软件和操作系统。

常见误区

误区 1:原子交换完全没有风险

它减少托管对手风险,但仍有链、合约、价格、时间和操作风险。

误区 2:两条链设置相同超时最公平

后续领取方需要额外响应窗口,超时应有安全差。

误区 3:失败后自动退款

通常需要用户主动广播退款并支付费用。

误区 4:原子交换解决流动性

它解决结算条件,不自动提供订单簿、报价或对手方。

误区 5:和跨链桥是一回事

原子交换互换原生资产,桥通常创建跨链资产表示或借助流动性。

误区 6:跨链原子性意味着同时确认

两条链独立出块,完成依赖顺序、秘密与超时。

常见问题 FAQ

一方中途离线怎么办?

对方最终可走超时退款,但资金会锁定,在线方要监控截止时间。

是否需要智能合约平台?

不一定。支持哈希锁和时间锁脚本的UTXO链也可实现。

为什么原子交换没有普遍替代交易所?

流动性、价格发现、速度、操作复杂度与资金锁定限制了日常体验。

可以交换任意两种币吗?

需要两条链支持兼容条件,并有可用软件和对手方,不能默认任意组合可行。

最重要的安全动作是什么?

先小额走完成功与退款路径,并独立保存秘密、脚本、超时和退款交易。

一句话总结

KEY TAKEAWAY

原子交换用同一哈希秘密和错开的时间锁连接两条链,使交换完成或双方退款;它消除了中心托管,却没有消除价格可选性、流动性、链重组、手续费与用户必须按时执行领取退款的操作风险。