すべての記事

インテントでクロスチェーントランザクションをシンプルにする

·
2025年9月18日
·
7 分で読めます
·
••• 回閲覧
·
••• いいね

英語の原文から翻訳した記事です。 英語で読む

インテントでクロスチェーントランザクションをシンプルにする

こんなシナリオを考えてみましょう - あなたは Ethereum 上の 1,000 USDC を Solana 上の SOL にスワップしようとしています。従来のブリッジを使う場合、USDC をラップし、ブリッジを探し(ハッキングされないことを祈りつつ)、ファイナリティまで 20 分以上待ち、とんでもない手数料を払い、さらに向こう側でアンラップしなければなりません。すべて終わる頃には価格は動いていて、ガス代で $50 も溶かし、自分の人生の選択を疑い始めていることでしょう。まったく、やってられません!

もっと良い方法があると言ったらどうしますか?ただ 1000 USDC で 100 SOL が欲しい と言うだけで、残りはブロックチェーンがうまくやってくれるとしたら?それこそがまさにインテントの役割です。インテントを使えば、欲しいものを手に入れるための面倒な手順を踏む代わりに、欲しいものそのものを宣言できるのです。

インテントとは?

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 プロトコルは、一般のユーザーにとってかなり複雑です。さまざまなプロトコルを理解し、複数のガストークンを管理し、山ほどあるセキュリティリスクをかいくぐらなければなりません。従来のソリューションには、たいてい次のようなものがつきまといます:

  1. 異なるチェーンをまたぐ、複雑な複数ステップのワークフロー
  2. 資産のラップやブリッジに起因するセキュリティ脆弱性
  3. 深い技術知識を必要とする、一般ユーザーにとって劣悪なユーザー体験
  4. 分断された流動性と、最適とはいえない価格

インテントはこのモデルをひっくり返します。複雑さをユーザーに押し付けるのではなく、システムがそれを競争的なソルバーネットワークの側に引き受けるのです。ユーザーは望みを表現し、ソルバーは実行方法を考え、みんなが得をします 🔥。

ソルバーとは何か、どのように機能するのか?

この文脈でのソルバーは、インテントベースのシステムの屋台骨です。マーケットメイカー、AI エージェント、あるいは高度なトレーダーといった専門的なアクターで、システム内でユーザーのインテントを満たすために競い合っています。

仕組みはこうです: インテントをブロードキャストすると、複数のソルバーがそれを分析し、競合する見積もりを提出します。ソルバーは異なる DEXs を経由してルーティングしたり、オフチェーンの流動性を使ったり、より良い価格を得るためにあなたのインテントを他のインテントとまとめてバッチ処理したりすることもあります。最も優れたソリューションが勝ちます。

ここで、ソルバーを、DeFi のあらゆる接続済みプロトコル、あらゆる流動性ソース、あらゆる最適化のテクニックを熟知した、あなた専属のトレーディングアシスタントだと考えてみてください。ソルバーは、あなたが自力で実現できるよりも優れた執行を提供することで利益を得ていて、あなたの時間も大幅に節約してくれます。

従来のインテント

インテントベースのアーキテクチャは、まったく新しい概念というわけではありません。UniswapX は Ethereum でこの概念の先駆けとなり、「fillers」 がスワップリクエストを満たそうと競い合う Dutch auctions を通じて $2B 以上の取引量を処理しました。

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

3 つの異なるフェーズとアクターを含む、インテント作成 → ソルバー間の競争 → 決済パイプラインを示すフローチャート

インテント作成 → ソルバー間の競争 → 決済パイプラインを示すフローチャート
インテント作成 → ソルバー間の競争 → 決済パイプラインを示すフローチャート

3 層構造の設計

コアとなる検証ロジック:

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(())
}

こいつが完璧なバランスを保証してくれます。バッチ処理されたすべてのインテント全体で、出ていくトークンごとに、それと同額が入ってくるようになっているのです。

Distribution、Solver Networks、Verifier の間のデータフローを示し、1Click API、MPC Network、Chain Signatures といった具体的なコンポーネントも含む 3 層スタックの図

データフローを示す 3 層スタックの図
データフローを示す 3 層スタックの図

1Click API について

これを大規模に機能させる秘訣のひとつが 1Click API で、こいつがエンドツーエンドであらゆる複雑さを抽象化してくれます。開発者は MPC、Chain Signatures、solver routing について考えることなく、クロスチェーンのインテントを作成できます。複数のソルバーからの見積もりの取得、DEXs と bridges をまたいだ最適なルートの選択、執行の監視、リトライの処理、さらにはガスの最適化やタイミングまで、すべてを 1 回の 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 エージェントのような高度なソルバーの統合も可能にします。

  2. バッチ処理のネットワーク効果:ユーザーのインテントの量が増えるほど、verifier は複数の操作を 1 つの最適化されたオンチェーントランザクションにまとめられるようになります。これにより、(ガス代のような)固定費が多くのユーザーの間で少しずつ償却され、ネットワーク上の全員にとって手数料が下がり、資本効率も高まります。

  3. マルチチェーンの並列化:インテントは複数のブロックチェーンにまたがって並列に実行できるため、従来の多くのブリッジが採用している逐次処理モデルを大きく上回ります。Ethereum、Solana、Bitcoin 上の資産が絡む複雑なトレードも同時並行で決済でき、クロスチェーントランザクションの合計時間とレイテンシを削減できます。

複雑なルーティングをシンプルにする

これらのメカニズムは、根底にある運用上の複雑さをユーザーから隠してくれます。次のスニペットは、ユーザーがマルチホップでガス最適化されたクロスチェーントランザクションを 1 回のリクエストで指定する方法を示しています:

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 アグリゲーションを提供しています。

必読リンク

•••
この記事をシェア:

最新情報を受け取る

最新の記事をメールでお届けします。