全部文章

用意图(Intent)简化跨链交易

·
2025年9月18日
·
阅读约 7 分钟
·
••• 次浏览
·
••• 次点赞

本文译自英文原文。 阅读英文原文

用意图(Intent)简化跨链交易

我们来看这样一个场景 - 你想把 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 (经验老到的参与者) 组成的网络,然后由它们相互竞争来满足你的请求。

一个意图示例长这样:

 {
  "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 的验证者可以共同为其他区块链上的交易签名,而不需要任何单一参与方持有私钥。这就像是拥有了一个适用于整个加密生态的万能遥控器。

创建一个意图

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);

流程图:展示意图创建 → 求解器竞争 → 结算流水线这三个不同的阶段及其参与者

流程图:展示意图创建 → 求解器竞争 → 结算流水线
流程图:展示意图创建 → 求解器竞争 → 结算流水线

三层设计

核心验证逻辑如下:

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 等具体组件

示意图:展示三层技术栈及其数据流
示意图:展示三层技术栈及其数据流

聊聊 1Click API

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

使用 1Click API 进行构建

它看起来是这样的:

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}`));
}

点击这里了解更多。

看看 Defuse Protocol

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

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);

这样你就能获得:

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

看看 Paycrest

Paycrest 把区块链意图与传统支付系统连接了起来。它的工作方式如下:

  1. 意图创建:用户说 “用任意代币支付这张发票”
  2. 路由发现:系统找到最优的 crypto-to-fiat 转换路径
  3. 执行:自动把 crypto 兑换成稳定资产,然后再转换为法币支付
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. 求解器竞争: 一个充满竞争的求解器市场可以确保链上执行的高效。随着网络中求解器数量的增加,竞争会压低成本,并提升用户的执行速度。这个开放市场还会推动对更多种类资产的支持,并允许接入更先进的求解器,比如能够执行复杂算法操作的 AI agent。

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

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

简化复杂路由

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

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 主导着 Ethereum 上的交易,CoW Protocol 在 MEV 保护方面表现出色,1inch Fusion 则提供 DEX 聚合服务。

重要链接

•••
分享本文:

获取最新动态

将最新文章直接发送到你的收件箱。