> ## Documentation Index
> Fetch the complete documentation index at: https://docs.garden.finance/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 原子交换

> Garden 使用原子交换实现无需信任的跨链结算

原子交换是一种无需信任的点对点兑换方式，用于用户与被选中执行其意图的 solver 之间的结算。这类兑换之所以具有“原子性”，是因为它们的设计决定了兑换要么完整完成，要么完全不发生，不存在中间状态。因此，在整个兑换过程中，用户和 solver 都不会在任何时刻失去对自己资产的控制。而传统跨链桥则要求你在跨链过程中将资产的控制权交给托管方（WBTC）、中间网络（Threshold、Thorchain）或多签（Avalanche bridge）。

Garden 使用**哈希时间锁定合约**（HTLC）来实现原子交换。顾名思义，它们用于在双方之间转移资产时强制执行有时间限制的条件。它们要求交易的接收方在一定时间内生成加密证明，以确认已收到付款。该证明是对合约中所嵌入的加密挑战的响应，通常涉及哈希函数。如果接收方未能在规定时间内提供正确的证明，交易将自动撤销，资产会退还给发送方。下面通过一个示例和流程图来更好地说明这一点。

## 原子交换如何运作？

以我们的场景为例：用户提交一个兑换意图，拍卖机制为此选出一个 solver。执行意图后，solver 和用户需要结算（兑换）各自的资产。

<Frame>
  <img src="https://mintcdn.com/garden-e60e7dd0/NpoTY5cHYX9LGVws/images/atomic_swap.png?fit=max&auto=format&n=NpoTY5cHYX9LGVws&q=85&s=c3f1a1f472fb72e66d542cfee065b7bc" alt="原子交换流程" width="1920" height="1080" data-path="images/atomic_swap.png" />
</Frame>

1. 用户将资产 A 存入链 A 上的一个透明金库。
2. Solver 核对存入的金额，如果与预期金额一致，就将资产 B 存入链 B 上一个相同的透明金库。
3. 用户（客户端 UI）核实 solver 存入的金额，如果无误，就打开金库，在链 B 上领取资产 B。
4. 此时 solver 可以从链 A 上的用户金库中领取资产 A，兑换完成。

这就是我们所说的理想流程，即一切按预期进行。下一节将介绍该系统中的失败场景，以及 Garden 针对这些场景的保障措施。

## 场景与保障措施

### 1. 资产 A 和资产 B 均已锁定，但未领取资产 B

<Frame>
  <img src="https://mintcdn.com/garden-e60e7dd0/NpoTY5cHYX9LGVws/images/fail_s1.png?fit=max&auto=format&n=NpoTY5cHYX9LGVws&q=85&s=618772adc8c1490306d31d4fd492ca3d" alt="失败场景 1" width="1920" height="1080" data-path="images/fail_s1.png" />
</Frame>

* **惩罚**：质押者被罚没意图价值的 1%。
* **Solver 的处理方式**：24 小时后退还资产 B，并获得被罚没的 SEED 作为补偿。
* **用户的处理方式**：48 小时后退还资产 A。

### 2. 资产 B 未锁定

<Frame>
  <img src="https://mintcdn.com/garden-e60e7dd0/NpoTY5cHYX9LGVws/images/fail_s2.png?fit=max&auto=format&n=NpoTY5cHYX9LGVws&q=85&s=9e6f340fd08a2e004b5799f2f79a614a" alt="失败场景 2" width="1920" height="1080" data-path="images/fail_s2.png" />
</Frame>

* **惩罚**：solver 和质押者被罚没意图价值的 0.5%。
* **用户的处理方式**：48 小时后退还资产 A，并获得被罚没的 SEED 作为补偿。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.