# 用意图（Intent）简化跨链交易

> 如果我告诉你有一种更好的方式呢？如果你只需要说一句“我想用我的 1000 USDC 换 100 SOL”，剩下的事情就交给区块链去搞定呢？

作者 Shodipo Ayomide，发布于 2025年9月18日。网页版本：https://blog.shodipoayomide.com/zh/simplifying-cross-chain-transactions-using-intents

![用意图（Intent）简化跨链交易](https://blog.shodipoayomide.com/banners/Simplifying-Cross-Chain-Transactions-Using-Intents.png)

我们来看这样一个场景 - 你想把 `Ethereum` 上的 `1,000 USDC` 换成 `Solana` 上的一些 `SOL`。如果用传统的跨链桥，你需要先把 USDC 包装（wrap）一下，找一个跨链桥 **（祈祷它别被黑）**，等上 20 分钟甚至更久才能达到最终确定性，支付高得离谱的手续费，然后再到另一条链上解包（unwrap）。等你折腾完，价格已经变了，你已经烧掉了 `$50` 的 gas，还开始怀疑人生，我去！

如果我告诉你有一种更好的方式呢？如果你只需要说一句 **我想用我的 1000 USDC 换 100 SOL**，剩下的事情就交给区块链去搞定呢？这正是意图（intent）要做的事情。它让你直接声明自己想要什么，而不用费尽周折地亲自去实现它。

## 什么是意图？

你可以把 `intents` 理解为两种说法之间的区别：一种是告诉别人 **“开车去超市，在 ilford high road 左转，停在 11 号车位，然后走到 5 号货架……”**，另一种只是说 **“给我买瓶牛奶”**。结果本质上是一样的，但前一种方式是命令式的 **（一步一步的指令）**，而后一种是声明式的 **（你到底想要什么）**。

从技术角度讲，`intents` 是一种经过签名的消息，它表达的是用户期望的结果，而不指定具体的执行细节。你不需要自己去构造复杂的交易序列，只需把你的意图广播给一个由 `solvers` **（经验老到的参与者）** 组成的网络，然后由它们相互竞争来满足你的请求。

一个意图示例长这样：

```json
 {
  "user": "alice.near",
  "intent_type": "token_swap",
  "give": {
    "token": "usdc.near",
    "amount": "1000000000"
  },
  "receive": {
    "token": "sol.near", 
    "min_amount": "100000000000"
  },
  "deadline": 1735689600,
  "signature": "0x..."
}
```

是不是很简单？Alice 根本不关心路由有多复杂，她只想用她的 USDC 换到她的 SOL，仅此而已。

## 为什么会有意图：跨链难题

对普通用户来说，跨链 DeFi 协议相当复杂。他们需要了解不同的协议，管理多种 gas 代币，还要在大量安全风险之间小心周旋。传统方案通常涉及：

1. 跨越不同链的复杂多步工作流
2. 资产包装和跨链桥接带来的安全漏洞
3. 糟糕的普通用户体验，需要深厚的技术知识
4. 流动性碎片化，价格也不够理想

意图把这个模式彻底翻转了过来。系统不再把复杂性推给用户，而是把它拉进一个相互竞争的求解器网络中。用户表达诉求，求解器负责搞定执行，大家都是赢家 🔥。

## 什么是求解器，它们是如何工作的？

在这里，求解器（solver）是基于意图的系统的支柱。它们是专门的参与者，可能是做市商、AI agent，也可能是经验老到的交易员，它们在系统中相互竞争，来满足用户的意图。

**它的工作方式是这样的：** 当你广播一个意图时，多个求解器会对它进行分析，并提交相互竞争的报价。它们可能会通过不同的 `DEXs` 进行路由，使用链下流动性，甚至把你的意图和其他人的意图打包在一起，以获得更好的价格。最好的方案胜出。

现在，你可以把求解器想象成你的私人交易助理，它们了解每一个已接入的协议、每一个流动性来源，以及 DeFi 里的每一个优化技巧。它们通过提供比你自己操作更好的执行效果来赚钱，同时还能帮你节省大量时间。

## 传统的意图

基于意图的架构并不是一个全新的概念。`UniswapX` 率先在 `Ethereum` 上引入了这一概念，通过 `Dutch auctions`（荷兰式拍卖）处理了超过 **$2B** 的交易量，在这种拍卖中，**“填单者（filler）”** 相互竞争来完成兑换请求。

`CoW` Protocol 在此基础上加入了 `batch auctions`（批量拍卖）和 `MEV` 保护，累计交易量超过 **$15B**。他们的洞见是什么？通过批量处理意图并找到需求的双重巧合（coincidence of wants），他们可以在改善执行效果的同时消除 `MEV`。

但这些系统都还只是单链方案。`UniswapX` 在 `ETH` 生态内的交易中表现很好，但跨链呢？你又回到了复杂度地狱，欢迎回来！

## NEAR Protocol 是如何解决这个问题的

NEAR Protocol 构建了第一个真正意义上的跨链意图系统。数据说明了一切：总交易量超过 **$1.075B**，2-3 秒的最终确定性，并且原生支持 Bitcoin，无需包装。

他们是怎么做到的？靠的是 `Chain Signatures`。借助多方计算（MPC），NEAR 的验证者可以共同为其他区块链上的交易签名，而不需要任何单一参与方持有私钥。这就像是拥有了一个适用于整个加密生态的万能遥控器。

## 创建一个意图

```typescript
import { createIntent, signIntent } from '@defuse-protocol/intents-sdk';

const intent = createIntent({
  from: 'alice.near',
  give: { token: 'usdc.near', amount: '1000000000' },
  receive: { token: 'sol.near', minAmount: '100000000000' },
  expiry: Date.now() + 300000
});

const signedIntent = await signIntent(intent, wallet);
await broadcastIntent(signedIntent);
```

_流程图：展示意图创建 → 求解器竞争 → 结算流水线这三个不同的阶段及其参与者_
![流程图：展示意图创建 → 求解器竞争 → 结算流水线](https://i.ibb.co/ymmnn7ym/Screenshot-2025-09-18-at-9-29-13-PM.png)

### 三层设计

- **分发层（Distribution）**：用户创建意图的应用、钱包和交易所。

- **求解器网络（Solver Networks）**：去中心化的做市商、AI agent 或类似的参与者，相互竞争来满足请求。它们可以从 CEX、DEX 或链下来源获取流动性。

- **验证器（Verifier）**：确保意图原子化结算的 NEAR 智能合约。

核心验证逻辑如下：

```rust
fn execute_token_diff_intents(intents: &[TokenDiff]) -> Result<(), Error> {
    let mut net_changes: HashMap<TokenId, i128> = HashMap::new();
    
    for intent in intents {
        *net_changes.entry(intent.token_in).or_default() -= intent.amount_in;
        *net_changes.entry(intent.token_out).or_default() += intent.amount_out;
    }
    
    for (_, net_change) in net_changes.iter() {
        if *net_change != 0 {
            return Err("Non-zero sum transaction".into());
        }
    }
    Ok(())
}
```

这家伙确保了完美的平衡，在所有批量处理的意图中，每有一个代币流出，就会有等量的代币流入。

_示意图：展示三层技术栈，以及数据在分发层、求解器网络和验证器之间的流动，包括 1Click API、MPC Network 和 Chain Signatures 等具体组件_
![示意图：展示三层技术栈及其数据流](https://i.ibb.co/JRwJPB28/Screenshot-2025-09-18-at-9-30-22-PM.png)

### 聊聊 1Click API

让这一切能够规模化运行的秘诀之一，就是 `1Click API`，这家伙把端到端的所有复杂性都抽象掉了。开发者可以创建跨链意图，而无需考虑 `MPC`、`Chain Signatures` 或 `solver routing`。它负责从多个求解器那里获取报价，在 `DEXs` 和 `bridges` 之间选择最佳路由，监控执行过程，处理重试，甚至还负责 gas 优化和时机把控，所有这些只需要一次 API 调用，其他的一切都在底层帮你处理好了。

### 使用 1Click API 进行构建

它看起来是这样的：

```javascript
import { IntentsSDK } from '@near-intents/sdk';

const sdk = new IntentsSDK({
  network: 'mainnet',
  apiKey: process.env.NEAR_INTENTS_API_KEY
});

async function createSwapIntent(fromToken, toToken, amount) {
    const quote = await sdk.getQuote({
      tokenIn: fromToken,
      tokenOut: toToken,
      amountIn: amount,
    slippage: 0.005
    });
    
    const intent = await sdk.createIntent({
    tokenIn: { address: fromToken, amount },
      tokenOut: { address: toToken, minAmount: quote.amountOut },
    deadline: Date.now() + 300000
    });
    
    // watch the execution
  sdk.watchIntent(intent.id)
    .on('executed', (result) => console.log(`Done! TX: ${result.hash}`))
    .on('failed', (error) => console.error(`Failed: ${error.reason}`));
}
```

点击[这里](https://docs.near-intents.org/near-intents/integration/distribution-channels/1click-api)了解更多。

### 看看 Defuse Protocol

Defuse 正好展示了如何用意图构建生产级的 `DEX` 界面。你不需要管理复杂的路由逻辑，而是可以这样：

```typescript
import { DefuseKit } from '@defuse-protocol/intents-sdk';

const defuse = new DefuseKit({ network: 'mainnet' });

const quotes = await defuse.requestQuotes({
  tokenIn: 'ethereum:0x...', 
  tokenOut: 'solana:native',
  amountIn: amount
});

const bestQuote = quotes.reduce((best, current) => 
  BigInt(current.amountOut) > BigInt(best.amountOut) ? current : best
);
        
const result = await defuse.executeIntent(bestQuote);
```

这样你就能获得：

- 多个求解器竞争最优价格
- 跨链结算
- 每 10 秒更新一次的实时报价

客户端处理了所有的复杂性，用户只需要看到最优价格和最快的执行，然后就可以继续做别的事了。

### 看看 Paycrest

[Paycrest](https://paycrest.io) 把区块链意图与传统支付系统连接了起来。它的工作方式如下：

1. 意图创建：用户说 **“用任意代币支付这张发票”**
2. 路由发现：系统找到最优的 `crypto-to-fiat` 转换路径
3. 执行：自动把 `crypto` 兑换成稳定资产，然后再转换为法币支付

```go
func (a *Aggregator) ProcessPaymentIntent(intent *PaymentIntent) error {
    routes := a.findPaymentRoutes(intent)
    bestRoute := a.selectOptimalRoute(routes)
    
    switch bestRoute.Type {
    case "crypto_to_fiat":
        return a.executeCrossSystemPayment(intent, bestRoute)
    case "direct_crypto":
        return a.executeCryptoPayment(intent, bestRoute)
    }
}
```

主要的挑战在于连接加密货币和法币的跨系统支付。Paycrest 通过多个阶段来处理这个问题：

- 第 1 步：把用户的加密货币转换为稳定资产（USDC）
- 第 2 步：通过支付合作伙伴把稳定资产出金（off-ramp）为法币
- 第 3 步：把法币款项交付给收款人

## 为什么它能够规模化

1. **求解器竞争：** 一个充满竞争的求解器市场可以确保链上执行的高效。随着网络中求解器数量的增加，竞争会压低成本，并提升用户的执行速度。这个开放市场还会推动对更多种类资产的支持，并允许接入更先进的求解器，比如能够执行复杂算法操作的 AI agent。

2. 批量处理的网络效应：用户意图的数量越多，`verifier` 就越能把多个操作聚合成一笔经过优化的链上交易，这会把固定成本（比如 gas 费）逐渐分摊到众多用户身上，从而让网络上的每个人都享受到更低的费用和更高的资本效率。

3. 多链并行化：意图可以在多条区块链上并行执行，这相比许多传统跨链桥的串行处理模式有了显著改进。一笔涉及 Ethereum、Solana 和 Bitcoin 上资产的复杂交易可以并发结算，从而缩短跨链交易的总时间和延迟。

**简化复杂路由**

这些机制把底层的运营复杂性对用户屏蔽了起来。下面的代码片段演示了用户如何在一次请求中，指定一笔多跳、经过 gas 优化的跨链交易：

```javascript
const response = await fetch('https://api.near-intents.org/v1/quote', {
  method: 'POST',
  body: JSON.stringify({
    tokenIn: 'usdc.near',
    tokenOut: 'bitcoin:native',
    routing: {
      maxHops: 3,
      excludeProtocols: ['slow_bridge'],
      preferredSolvers: ['defuse', 'paycrest'],
      gasOptimization: true
    }
  })
});
```

API 会自动处理优化、时机把控和故障恢复。

## 写在最后

做这件事的并不只有 `NEAR`。[UniswapX](https://x.uniswap.org/) 主导着 `Ethereum` 上的交易，[CoW Protocol](https://cow.fi) 在 MEV 保护方面表现出色，[1inch Fusion](https://fusion.1inch.io) 则提供 DEX 聚合服务。

## 重要链接

- [NEAR Intents 官方文档](https://docs.near.org/chain-abstraction/intents/overview) - 全面的技术概览和集成指南
- [NEAR Intents 项目主页](https://near-intents.org/) - 项目官网，包含生态动态
- [1Click API 文档](https://docs.near-intents.org/near-intents/integration/distribution-channels/1click-api) - 面向开发者的 REST API 参考
- [NEAR Intents SDK 文档](https://docs.near-intents.org/near-intents/sdk) - 完整的 SDK 参考和示例
- [NEAR Intents 核心合约](https://github.com/near/intents) - 智能合约实现和 Rust 代码
- [Defuse Protocol SDK](https://www.npmjs.com/package/@defuse-protocol/intents-sdk) - 用于跨链 DEX 集成的 NPM 包
- [Defuse 前端实现](https://github.com/defuse-protocol/defuse-frontend) - 使用意图的生产级 DEX 前端
- [Paycrest Aggregator](https://github.com/paycrest/aggregator) - 支付意图处理与跨系统集成
- [Paycrest NoBlocks](https://github.com/paycrest/noblocks) - 面向意图的免 gas 交易执行
