﻿---
title: "原子交换"
description: "原子交换在两条链上协调条件领取与后续退款，但不会让确认同时发生，也无法消除手续费、价格风险、监控和超时风险。"
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 原子交换

> 仅供教育用途。请独立核验两条链、合约、超时、费用和退款路径；即使协议保持条件原子性，本金仍可能长期锁定或贬值。

<a id="answer"></a>

## 直接答案

原子交换是一种异步协议，用于交换资产，而不让单一托管方控制两条交易腿。在经典哈希时间锁合约（`HTLC`）设计中，同一个原像授权双方领取，不同的到期时间则保留后续退款路径。这里的原子性是有条件的：交换中止时，诚实一方不应仅因中止而被对手夺走本金。它不表示同时确认、自动或免费退款、公允市价、持续流动性或匿名性。

每项部署都必须绑定链或网络、资产与合约、原始金额与小数位、领取与退款密钥、哈希构造、精确原像字节、脚本或字节码以及时间锁语义。两个系统即使都有哈希和时钟，也不一定兼容。比特币的绝对锁与相对锁、EVM 时间戳及其他链的最终性可能遵循实质不同的规则。

经典 `HTLC` 交换还会给最后行动的一方带来一定价格选择权：它可以拖延，以判断执行是否仍然有利。适配器签名及其他无脚本协议会改变链上足迹和假设，但仍需审计身份、时钟、费用、活性与恢复方案。

<a id="mechanism"></a>

## 运作方式

1. 固定两条网络、资产、金额、汇率、密钥、哈希与原像编码、合约或脚本字节、时钟单位、费用承担方及确认或最终性规则。
2. 生成高熵、仅使用一次的秘密 `x`，离线计算 `h = H(x)`，并让两侧实现基于相同原始字节复算摘要。
3. 发起方为超时较长的一腿注资。参与方核验其链、资产、金额、密钥、哈希、代码与截止时间，再等待约定的安全确认深度。
4. 参与方为超时较短的一腿注资。发起方重复同样的核验，并等待规定的确认或最终性。
5. 发起方在更早的操作截止时间前，用 `x` 领取短腿，并在规范交易数据中公开精确原像。
6. 参与方观察该领取，核验 `H(x) = h`，并为构造、广播、费用补救和最终性预留足够时间后领取长腿。
7. 任一关口失败时，停止增加敞口。各时间锁到期后，主动构造或广播相应退款交易，并核对本金、费用、锁定时长和链上证据。

核心时间预算为 `T_long - T_short >= observation + construction + broadcast + confirmation/finality + reorg/operations buffer`。48 小时和 24 小时之类的名义值只是示例，并非通用安全参数。时间锁只会启用退款分支，不会广播退款交易或替用户支付费用。

<a id="example"></a>

## 示例

- **哈希字节。** 仅用于教学，UTF-8 `abc` 的原始字节为 `0x616263`；`SHA-256(0x616263) = ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad`。若对显示文本 `0x616263` 进行哈希，会得到不同摘要。生产环境的秘密必须具有密码学熵，且不得复用。
- **超时预算。** 假设长腿退款在 `48.0 h` 到期，短腿退款在 `24.0 h` 到期。若短腿领取在 `22.0 h` 提交，观察耗时 `0.5 h`，构造与广播耗时 `0.5 h`，长链确认耗时 `1.5 h`，预计完成时刻为 `24.5 h`。模型中的长腿剩余裕量为 `48.0 - 24.5 = 23.5 h`；这不是对出块的保证。
- **价格选择权。** 达成协议时，`1 BTC` 按 `$60,000` 计，等于 `20 ETH` 按 `$3,000` 计。领取时，比特币价格为 `$63,000`，ETH 为 `$2,800`；Alice 交付 `$63,000`，收到 `20 x $2,800 = $56,000`，相对当时市价的差额为 `-$7,000`，尚未计费。协议原子性不会锁定经济价值。
- **中止账本。** Alice 支付 `0.00020 BTC` 注资费用及 `0.00025 BTC` 退款费用，共 `0.00045 BTC`，折合 `$27`，采用的汇率为 `$60,000/BTC`。Bob 支付 `0.006 ETH` 注资费用及 `0.004 ETH` 退款费用，共 `0.010 ETH`，折合 `$30`，采用的汇率为 `$3,000/ETH`。本金稍后返还，但双方不可退还的网络成本合计 `$57`，另有机会成本。

<a id="risks"></a>

## 风险

- 链或网络域错误。
- 原生资产、代币合约或小数位错误。
- 金额、领取密钥或退款密钥错误。
- 哈希算法或字节编码不兼容。
- 秘密熵不足、被复用或过早泄露。
- 领取分支、脚本或字节码存在缺陷。
- 退款路径无效、不可用或未签名。
- 超时顺序颠倒或缓冲不足。
- 误读区块高度、中位时间、时间戳或相对锁语义。
- 临近到期时短腿领取与退款发生竞态。
- 链重组移除注资、原像公开或领取交易。
- 确认或最终性策略不足。
- 费用激增、交易池驱逐、审查或无法提高手续费。
- 监控、RPC、索引器、钱包或密钥故障。
- 对手拖延、阻挠及锁定资金的选择权。
- 汇率、基差与可执行流动性变化。
- EVM 调用、重入、Gas、代理或升级缺陷。
- 封装资产或代币发行方、跨链桥、钩子、再基准或转账收费行为。
- 复用哈希、金额和时间造成跨链关联。
- 税务、制裁、法律、记录保存和灾难恢复失败。

<a id="misconceptions"></a>

## 常见误区

- **原子意味着同时。** 两条链通过有序异步状态机各自推进。
- **中止会自动退回全部资产。** 一方通常必须等待、发交易并付费；监控或费用故障会延长锁定。
- **任何拥有哈希和时间锁的两条链都能互操作。** 算法、编码、时钟、脚本、合约及最终性必须实际匹配。
- **非托管意味着没有对手风险或价格风险。** 阻挠、选择权、波动和操作依赖仍然存在。
- **原子交换提供流动性与隐私。** 它协调结算条件，并不创造报价、深度、对手方或不可关联的活动。

<a id="related"></a>

## 相关主题

- [哈希时间锁合约](/zh-cn/crypto/htlc/)
- [跨链桥](/zh-cn/crypto/cross-chain-bridge/)
- [去中心化交易所](/zh-cn/crypto/dex/)

<a id="sources"></a>

## 来源

- [Atomic Cross-Chain Swaps](https://doi.org/10.1145/3212734.3212736) - Association for Computing Machinery（访问日期：2026-08-13）
- [On the optionality and fairness of Atomic Swaps](https://doi.org/10.1145/3318041.3355460) - Association for Computing Machinery（访问日期：2026-08-13）
- [BIP 65: OP_CHECKLOCKTIMEVERIFY](https://bips.dev/65/) - Bitcoin Improvement Proposals（访问日期：2026-08-13）
- [BIP 112: CHECKSEQUENCEVERIFY](https://bips.dev/112/) - Bitcoin Improvement Proposals（访问日期：2026-08-13）
- [Contracts](https://developer.bitcoin.org/devguide/contracts.html) - Bitcoin Developer Documentation（访问日期：2026-08-13）
- [Transactions](https://developer.bitcoin.org/devguide/transactions.html) - Bitcoin Developer Documentation（访问日期：2026-08-13）
- [Atomic Swaps](https://docs.decred.org/advanced/atomic-swap/) - Decred Documentation（访问日期：2026-08-13）
- [Proof-of-stake (PoS)](https://ethereum.org/developers/docs/consensus-mechanisms/pos/) - Ethereum.org（访问日期：2026-08-13）

Source: https://wiki.fcontext.com/zh-cn/crypto/atomic-swap/index.mdx
