ソラナにおけるガスレス取引:完全ガイド
Learn how gasless transactions work on Solana using fee payer architecture. Explore implementation, costs, security, and real-world use cases.
ソラナにおけるガスレス取引では、スポンサーがユーザーのネットワーク手数料を支払うため、ユーザーはネットワーク手数料を支払う必要がありません。手数料をなくすものではなく、すべての取引を無料にするものでもなく、スポンサー付き取引への署名がユーザーの資産を移動できないことを保証するものでもありません。
最終更新日:2025年1月
ソラナにおけるガスレス取引とは、指定された第三者(フィー スポンサーと呼ばれる)がユーザーに代わってコストを負担するため、エンドユーザーがネットワーク手数料を支払わないブロックチェーン取引のことです。「ガスレス」という言葉は、イーサリアムの用語である「ガス」に由来しており、手数料は「ガス」と呼ばれます。ソラナ自体は「ガス」ではなく「取引手数料」を使用しますが、一般的には、ガスレスはチェーン全体で同じ意味合いで使われます。つまり、ユーザーは何も支払わず、他の誰かがツケを払うということです。
ソラナはデフォルトでガスレスではありません。ネットワーク上のすべての取引にはSOLでの支払いが必要な手数料がかかります。多くのdApp(分散型アプリケーション)は、これらの手数料をユーザーに代わってスポンサーし、SOLを保持していなくても開始できるようにしています。SOLが必要かどうかは、特定のdAppによって異なります。ガスレス対応のdAppは手数料を負担しますが、それ以外の場合はユーザー自身が支払う必要があります。このガイドでは、フィーペイアーアーキテクチャ、誰がいつ支払い、なぜ支払うのか、実例、実装パス、コスト分析、セキュリティに関する考慮事項について説明します。
目次
- コアコンセプト:ソラナのフィーペイアーアーキテクチャの仕組み
- ガスレス vs 無料:最も一般的な誤解を解消する
- ソラナ vs イーサリアム:ガスレス取引とアカウント抽象化の違い
- ソラナでガスレス取引を実装する方法
- 実例:ソラナで既にガスレス取引が展開されている場所
- 取引スポンサーのコスト:ガスレスは開発者にとって実際いくらかかるのか?
- セキュリティに関する考慮事項:リレイヤーリスクについて開発者が知っておくべきこと
- 適切なアプローチの選択:ネイティブ実装 vs マネージドサービス
- ソラナにおけるガスレス取引に関するよくある質問
- まとめ:ソラナにおけるガスレス取引について知っておくべきこと
コアコンセプト:ソラナのフィーペイアーアーキテクチャの仕組み
すべてのソラナ取引には、ネットワーク手数料を支払うためのアカウントを指定するfeePayerフィールドが含まれています。このアカウントは、取引を開始したユーザーと同じである必要はありません。
ソラナの取引手数料モデル
ソラナは署名ごとに基本料金を請求し、優先手数料を請求することもあります。基本料金パラメータとそのSOL建ての金額は、最新のドキュメントで確認する必要があります。取引の総コストは、署名、コンピューティング設定、優先手数料、ネットワーク状況によって変動する可能性があります。取引を処理・検証するネットワークノードであるバリデーターは、計算作業の報酬としてこれらの手数料を徴収します。Proof of Historyは、Proof of StakeおよびTower BFTと組み合わせて使用される時刻同期コンポーネントです。しばしば言及される65,000 TPSという数字は、保証されたアプリケーションスループットではなく、理論上のベンチマークです。
完全な手数料体系については、ソラナの取引手数料ドキュメント.)を参照してください。
ソラナにおけるフィーペイアーとは?
ソラナにおけるフィーペイアーとは、取引手数料の支払いを指定されたアカウントのことです。標準的な取引では、フィーペイアーと取引署名者は同じアカウント(ユーザーのウォレット)です。ガスレス取引では、これらは意図的に異なるアカウントになります。両方のアカウントが取引に署名する必要がありますが、ネットワーク手数料はフィーペイアーのSOL残高からのみ引き落とされます。
この分離は、feePayerフィールドを通じてソラナの基本取引構造に組み込まれています。これは回避策、別のオンチェーンプログラム、またはアプリケーションレイヤーの追加ではありません。このフィールドを設定することで、あらゆるソラナ取引が異なるフィーペイアーを指定できます。技術仕様については、ソラナのフィーペイアーに関するドキュメント.)を参照してください。
ガスレス取引がネットワークを流れる際のステップバイステップのフロー:
- ユーザーがdAppでアクション(NFTのミント、トークンのスワップ、その他のオンチェーンアクション)を開始します。
- dAppは取引オブジェクトを構築し、
feePayerフィールドをユーザーのウォレットではなく、別個のスポンサーアカウントに設定します。 - ユーザーはウォレットを通じて取引に署名し、指示(アクション)を承認します。この署名では残高は引き落とされません。
- 部分的に署名された取引は、スポンサーのキーペアを保持するリレイヤーサーバーに送信されます。
- リレイヤーは取引内容を検証し、期待されるプログラムと指示データと一致することを確認します。
- リレイヤーはスポンサーのキーペアを使用して、フィーペイアーの署名を追加します。
- リレイヤーは完全に署名された取引をソラナネットワークに提出し、手数料はユーザーではなくフィーペイアーの残高から差し引かれます。
レストランのツケのようなものです。ユーザーが注文し(指示に署名し)、アプリが支払いを担当します(手数料を支払う)。
取引リレイヤーとは?
取引リレイヤーは、ガスレス取引を機能させるバックエンドサービスです。リレイヤーは、ユーザーから部分的に署名された取引(指示を承認するために署名したが、手数料は支払っていない)を受け取り、フィーペイアーの署名を追加して、完全に署名された取引をソラナネットワークに提出します。2つのモデルが存在します。dApp開発者が独自のサーバーを実行するセルフホスト型リレイヤーと、Heliusのようなサードパーティプロバイダーがインフラストラクチャを管理するマネージドリレイヤーサービスです。
標準的な取引では、ウォレットは2つの機能(アクションの承認と手数料の支払い)を果たします。ガスレス取引では、ウォレットは最初の機能のみを行います。ガスレス対応のdAppを使用すると、Phantomウォレット(またはSolflare、Backpack、その他のソラナウォレット)が通常通り取引への署名を求めてきます。承認すると、指示(このNFTをミントする、このスワップを実行する、このレコードを更新するなど)が承認されます。この確認後、ウォレットのSOL残高は変更されません。手数料は、リレイヤーが管理するdAppのフィーペイアーアカウントによって支払われます。互換性のあるウォレットはプライベートキーを公開すべきではなく、スポンサーがネットワーク手数料を支払います。ただし、ユーザーが署名した指示は、トークン転送やその他の状態変更を承認する可能性があるため、取引全体を確認する必要があります。
各リレイヤーアプローチの完全な技術実装については、実装ガイドを参照してください。
重要用語
- フィーペイアー: 取引手数料をカバーするSOL残高を持つアカウント。ガスレスフローでは、これはユーザーではなくdAppによって制御されます。
- 取引リレイヤー: 部分的に署名された取引を受け取り、フィーペイアーの署名を追加してネットワークに提出するバックエンドサービス。
- フィー スポンサー: フィーペイアーアカウントに資金を提供し、取引コストを負担するエンティティ(dApp開発者、プロトコル、またはマネージドサービス)。
[図:3つのノードによるフロー図。「ユーザーウォレットが命令に署名」から「一部署名済みトランザクション」というラベルの矢印が「リレイヤー / 手数料支払者が署名 + ガス代を支払う」を指し、そこから「完全署名済みトランザクション」というラベルの矢印が「Solanaネットワークが承認」を指し、最後の矢印が「ユーザーウォレットでアクションが完了」を指している。デザインチームへ:ラベル付きの方向性のある矢印を用いて、ノードを左から右へ配置してください。]
ガスレス vs 無料:最も一般的な誤解を解く
ガスレスとは「手数料肩代わり(fee-sponsored)」の略称です。ネットワーク手数料は存在し、常に支払われていますが、エンドユーザーがそれを支払う当事者ではないということを意味します。
Solanaには3つの手数料シナリオが存在しますが、真にガスレスなのはそのうちの1つだけです。
- 標準的なトランザクション: ユーザーが自身のSOL残高から手数料を支払います。手数料は1署名につき0.000005 SOLです。
- ガスレス(肩代わり)トランザクション: dApp、プロトコル、または管理されたリレイヤーサービスがユーザーに代わって手数料を支払います。ユーザーのSOL残高は減りません。
- 低手数料トランザクション: ユーザーが非常に少額の手数料を支払うため、ほとんど気づきません。これはガスレスではありません。ユーザーは依然としてSOLを必要とします。
「トランザクション肩代わり」は、ガスレス・トランザクションを実現する仕組みをビジネス側から見た用語です。商品という観点では、トランザクション手数料を負担することは、無料トライアルの提供や広告インプレッションへの支払いと同様の、ユーザー獲得コストと言えます。
当然ながら、「自分が払わないなら、何か裏があるのでは?」という疑問が湧くでしょう。答えは明快です。Solanaの手数料レベルであれば、スポンサー側のコストはごくわずかです。100,000件のトランザクションを肩代わりしても、基本料金はわずか0.5 SOLです。ガスレスな NFT ミントを実行するプラットフォームは、マーケットプレイス手数料、一次販売の収益、またはユーザー維持を通じて、そのコストを何倍にもして回収できます。プラットフォームによっては、サブスクリプションプランやプロトコルのトークノミクスを通じてコストを回収する場合もあります。
手数料は常にどこかへ支払われます。それはSolanaのバリデータに支払われます。問題は、誰がそれを送るかという点だけです。
| 支払者 | 支払う理由 | 一般的なユースケース |
|---|---|---|
| dApp開発者 | ユーザー獲得とオンボーディングUXの向上 | NFT ミンティングプラットフォーム |
| プロトコル財務(トレジャリー) | 初期のユーザー活動への補助 | DeFi プロトコル |
| 管理されたリレイヤーサービス | インフラプロバイダーがユーザーではなくdAppに請求 | エンタープライズおよび大規模dApp |
手数料肩代わりに伴うリスクの完全な議論については、セキュリティに関する考慮事項 セクションを参照してください。
Solana vs. Ethereum:ガスレス・トランザクションとアカウント抽象化(Account Abstraction)の違い
Ethereumのガスモデルは「ガスレス」という概念の起源ですが、Solanaのネイティブな手数料支払者アーキテクチャとEthereumのEIP-4337アカウント抽象化を比較すると、2つのアプローチが異なる技術的手段を通じてどのように同様のユーザー体験を実現しているかがわかります。
Ethereumは計算に対して「ガス」を請求します。ガス代は変動制で市場原理に基づいており、ETH(単位はgwei)で支払われます。ネットワークの混雑がピークに達した際、Ethereumのトランザクション手数料は歴史的に1件あたり50ドル以上に達したこともあります。この変動性こそが、そもそもガスレスUXが重要な設計目標となった理由です。Solanaの手数料とEthereumのガスを比較すると、基本料金の差こそが、なぜ手数料の肩代わりがSolanaでは経済的に些細なことであり、Ethereumでは非常に高価であるかを説明しています。Ethereumのガス代とSolanaのトランザクション手数料を比較すると、通常のコストにおいて数桁の違いがあります。
ガスレスUXに対するEthereumの解決策は、ペイマスター(Paymaster)を導入するアプリケーションレイヤーの標準(プロトコルレベルの変更ではない)であるEIP-4337です。ペイマスターは、ユーザーに代わってガス代を肩代わりするスマートコントラクトです。ペイマスターをデプロイするには、UserOperationのバンドラー(Bundler)、EntryPointコントラクト、そしてペイマスターコントラクト自体が必要です。これは、ユーザーが恩恵を受ける前に必要な、かなりのインフラ投資となります。詳細な仕様については、EIP-4337 specification.) を参照してください。
EIP-4337以前、Ethereumは回避策として(ERC-2771の下で標準化された)メタトランザクションを使用していました。ユーザーが意図を示すメッセージに署名し、リレイヤーがそのメッセージを完全なトランザクションにラップしてガス代を支払うという仕組みです。Solanaのアプローチは、手数料支払者の分離がアプリケーションレイヤーのメッセージラッピングパターンではなく、第一級のプロトコル機能であるため、アーキテクチャとしてより洗練されています。
Solanaに適用される「ガスレス」という言葉は、借用された用語です。Solanaのドキュメントでは「ガス」ではなく「トランザクション手数料」という言葉が使われています。「ガスレス」という言葉が一般的に採用されているのは、Ethereumがいかに様々なチェーンにおけるこのUXパターンの語彙を形作ってきたかを反映しています。
| 特徴 | Solana ネイティブ手数料支払者 | Ethereum EIP-4337 アカウント抽象化 |
|---|---|---|
| 手数料用語 | トランザクション手数料 (lamports) | ガス代 (gwei) |
| 手数料の変動性 | 確定的 / 署名ごとに固定 | 変動制 / 混雑状況による市場主導 |
| アーキテクチャのアプローチ | プロトコルネイティブなトランザクションフィールド | EVM上にレイヤー化されたアプリケーションレイヤー標準 |
| プログラム/コントラクト依存性 | 不要 | ペイマスターコントラクト + EntryPointコントラクトが必要 |
| 実装の複雑さ | 低:feePayerフィールドを設定しリレイヤーを実行 | 高:ペイマスターのデプロイ、バンドラーの設定 |
| 手数料通貨 | SOL | ETH |
| 一般的な肩代わりトランザクションコスト | 変動するSOL建ての基本料金および優先料金 | 変動するガス代とプロバイダーコスト。レイヤー2の結果は異なる |
| 普及の成熟度 | Solanaローンチ時からネイティブ | 2023年にEIP-4337経由で標準化 |
Ethereumのレイヤー2ソリューションはメインネットのガスコストを削減しており、この点は比較において考慮されるべきです。上記の表はEthereumメインネットの歴史的な範囲を反映しています。構造的な違いは残ります。Solanaの手数料支払者は追加のコントラクトデプロイを必要としないプロトコル機能ですが、EIP-4337はデプロイされたペイマスタースタックを必要とするアプリケーションレイヤーの標準です。
Solanaでガスレス・トランザクションを実装する方法
Solanaアプリケーションに手数料肩代わり機能を追加するための実装アプローチは3つあります。どのアプローチが適切かは、トランザクション量、開発リソース、セキュリティ要件、およびサードパーティ依存関係への許容度によって決まります。3つのアプローチすべてが、基盤となるプロトコルメカニズムとしてSolanaネイティブの feePayer フィールドを使用します。
アプローチ1:サポートされているSDKでの手数料支払者の設定
ネイティブなアプローチでは、トランザクションオブジェクトに手数料支払者フィールドを設定し、SOLが補充された安全に管理されたスポンサーアカウントを使用します。チームは、承認されたエンジニアリング環境に適した、メンテナンスされているSDKを使用し、現在のSolanaトランザクション仕様に照らして動作を確認する必要があります。
前提条件: 承認されたシークレット管理システムまたは署名システムで保持されている資金のあるスポンサーアカウント、RPC接続、トランザクション検証ルール、モニタリング、およびメンテナンスされているクライアントライブラリ。
手順:
- 新しい
Transactionオブジェクトを作成します。 - 関連する命令(ミント、スワップ、転送、またはその他のプログラム呼び出し)を追加します。
transaction.feePayer = sponsorKeypair.publicKeyを設定して、スポンサーアカウントを指定します。recentBlockhashを取得し、トランザクションに割り当てます。ブロックハッシュは約150スロット(約60〜90秒)後に期限切れになります。速やかに送信するか、避けられない遅延があるフローの場合は耐久性のあるノンス(durable nonces)を実装してください。そのパターンについては Solana durable nonce documentation) を参照してください。- ユーザーのウォレットにトランザクション命令への署名をさせます。スポンサーがネットワーク手数料を支払いますが、命令によってユーザーの資産を移動したり、その他の状態変化を引き起こしたりすることは可能です。
- 一部署名済みのシリアル化されたトランザクションをリレイヤーサーバーのエンドポイントに送信します。
- リレイヤーはトランザクションの内容を検証し、スポンサーのキーペア署名を追加し、完全に署名されたトランザクションをRPC経由で送信します。
正確なSDK APIやトランザクションタイプは時間の経過とともに変化します。実装にあたっては、意図した命令を構築し、スポンサーを手数料支払者として設定し、現在のブロックハッシュまたはサポートされているノンスを取得し、署名された内容を変更せずに必要な署名を収集し、リレイヤーでシリアル化されたトランザクションを検証し、承認されたRPCプロバイダーを通じて送信する必要があります。すべてのステップを最新のSDKおよびプロトコルドキュメントと照らし合わせて確認してください。
スポンサーのキーペアは常にサーバーサイドで保持する必要があります。クライアントサイドで公開すると、あらゆるユーザーがスポンサーのSOL残高を使い果たすことが可能になります。完全なリスク分析については、セキュリティに関する完全な議論を参照してください。
権威あるフィールド仕様については、「Solanaの手数料負担者ドキュメント](https://docs.solana.com/developing/programming-model/transactions#fee-payer).)」を参照してください。
アプローチ2:マネージドリレーサービスの使用
マネージドリレーサービスは、開発者の代わりに手数料負担者のインフラストラクチャを処理するため、リレーサーバーを構築または維持することなく、APIコール経由で手数料スポンサーシップを統合できます。
マネージドプロバイダーの提供には、スポンサー付きトランザクションまたはリレー機能が含まれる場合があります。Helius、QuickNode、Alchemyはソースで名前が挙げられている例ですが、現在のSolanaサポートと商品規定は直接確認する必要があります。典型的な統合パターンは次のとおりです。
- 承認されたシークレット管理プロセスを使用して、選択したプロバイダーから認証情報を取得します。
- トランザクションクライアントサイドを構築し、命令を追加して、
transaction.feePayerをプロバイダーの指定されたパブリックキーに設定します。 - ユーザーウォレットにトランザクションを部分的に署名させます。
- HTTP POST経由でトランザクションをプロバイダーのガスレスエンドポイントにシリアル化して送信します。
- プロバイダーはトランザクションを検証し、手数料負担者として共同署名し、Solanaネットワークに送信します。
マネージドサービスは直接の運用作業を削減できますが、ベンダー、認証情報、可用性、ポリシー、プライバシー、および価格設定への依存関係が生じます。キー管理の責任は、プロバイダーのアーキテクチャと契約によって異なります。プロバイダーのドキュメントは開始点であり、セキュリティレビューの代わりにはなりません。
トレードオフはベンダーへの依存です。マネージドサービスがダウンタイムを経験した場合、スポンサー付きトランザクションは失敗します。リレーヤーの可用性を検出し、代わりに標準トランザクションを構築するための追加のフロントエンドロジックがない限り、ユーザーは自分で手数料を支払うことにフォールバックできません。これを、商品がサードパーティの可用性リスクに対して許容できる範囲と比較して評価してください。「適切なアプローチセクション」のビルド対購入フレームワーク(#choosing-the-right-approach-native-implementation-vs-managed-service)では、この決定を完全にカバーしています。
QuickNodeとAlchemyはどちらも、手数料スポンサーシップまたはリレーヤー隣接機能を持つSolanaインフラストラクチャを提供しています。マネージドサービスの提供は進化するため、各プロバイダーのドキュメントで現在の機能の可用性を確認してください。
アプローチ3:カスタムトランザクションリレーヤーの構築
カスタムトランザクションリレーヤーは、アプリケーションがカスタムスポンサーシップ適格性ロジックを必要とする場合、厳格なデータ居住要件で大規模に運用する場合、または手数料負担者キーペアの完全な制御が必要な場合に適切です。
カスタムリレーヤーのアーキテクチャには5つのコンポーネントがあります。
- APIエンドポイント: HTTP経由でdAppフロントエンドから部分的に署名されたシリアル化トランザクションを受け付けます。
- 検証レイヤー: トランザクションをデシリアル化し、プログラムID、命令データ、およびアカウントリストを許可リストに対してチェックします。これは最もセキュリティが重要なコンポーネントです。リレーヤーは受信したものをすべて署名するため、署名する前に受信したものを検証する必要があります。
- 手数料負担者署名: 環境変数またはシークレットマネージャーに保存されたキーペアを使用します。ソースコードにキーペアを保存したり、リポジトリにコミットしたりしないでください。
- RPC送信: 確認の失敗に対するリトライロジックとレート制限応答の処理を含め、RPC経由で完全に署名されたトランザクションをSolanaに送信します。
- 残高監視: スポンサーウォレットは、予想されるトランザクション量に対して十分なSOLを維持する必要があります。残高枯渇によるリレーヤーのダウンタイムを防ぐために、自動アラートと補充メカニズムを実装してください。
Pythonのみのエンジニアリング環境の場合、必要なトランザクションフォーマットと署名フローをサポートしていることを確認した後にのみ、メンテナンスされているPython Solanaクライアントを使用してください。カスタムリレーヤーには、引き続き監視、レート制限処理、リトライキュー、残高制御、テスト、およびインシデント対応が必要です。
実世界のユースケース:Solanaでガスレストランザクションがすでに展開されている場所
ガスレストランザクションは、ユーザーのトランザクション手数料のコストを吸収するそれぞれ異なるビジネスロジックを持つ、いくつかのカテゴリのSolana dApps(分散型アプリケーション)で本番稼働しています。
NFT ミンティングプラットフォームは、ガスレスユースケースの1つです。プラットフォームがネットワーク手数料をスポンサーする場合、互換性のあるウォレットは、その手数料をSOLで支払うことなくミントトランザクションに署名できます。ガスレスミントには、ミント価格、優先手数料ポリシー、プラットフォーム手数料、ロイヤリティ、または後続のアカウント関連費用が含まれる場合があるため、ユーザーは完全なトランザクションと価格を検査する必要があります。
DeFi プロトコルは、手数料スポンサーシップが直接解決する構造的なオンボーディング問題に直面しています。USDCまたはその他の非SOLトークンを持って到着したユーザーは、トランザクション手数料を支払うためのSOLを最初に取得しない限り、スワップ、ステーキング、または入金を開始できません。これは循環依存関係を生み出します:SOLを提供できるプロトコルとやり取りするためにSOLが必要ですが、SOLを持っていないとやり取りできません。新規ユーザーの最初の1〜3回のトランザクションをスポンサーすることで、この障壁が取り除かれます。DEX、クロスチェーンブリッジの到着フロー、およびレンディングプラットフォームはすべて、このパターンを適用します。スポンサー期間後、スワップを通じてSOLを受け取ったユーザーは、後続のトランザクションで自分で手数料を支払うことができます。
Web3ゲーミングは高いトランザクション頻度を生み出すため、手数料スポンサーシップはスタジオにとって経済的に魅力的です。チェーンに触れるすべてのゲーム内アクション(アイテム購入、実績ミント、リーダーボード更新)は、スポンサーシップなしではウォレットプロンプトと手数料の控除を提示します。Solanaの基本手数料では、1,000回のゲーム内トランザクションをスポンサーするのに約0.005 SOLかかります。ゲームスタジオは、サーバーインフラストラクチャと同様に、これを運用コストとして吸収し、結果として、ブロックチェーンアプリケーションではなく標準的なWeb2ゲームのように動作するプレイヤーエクスペリエンスが得られます。
コンシューマーdAppオンボーディングはこのモデルをあらゆるアプリケーションに拡張します。Solana dAppは、ユーザーの最初のN回のトランザクションをスポンサーして、最初オンチェーンアクションへの参入障壁を下げ、その後、ユーザーがSOLを獲得した後、セルフペイに移行させることができます。Solana Pay(Solanaのオープン決済プロトコル)は、マーチャントコンテキストに関連するモデルを提供します。マーチャントは手数料負担者として機能でき、顧客は手数料用のSOLを保持することなく支払いを開始できます。
これらのアプリを使用するためにSOLが必要ですか? いいえ、プラットフォームが積極的にトランザクション手数料をスポンサーしている限り。ガスレスはネットワーク保証ではなく、各dAppによる製品の決定です。手数料がスポンサーされていると仮定する前に、必ずプラットフォームの現在の料金ポリシーを確認してください。スポンサーシッププログラムは、期間限定、数量上限付き、または特定の操作に限定される場合があります。
ガスレス動作は主にdAppとリレーヤーの機能ですが、ウォレットの互換性とトランザクションフォーマットのサポートは引き続きテストが必要です。Phantom、Solflare、Backpackはソースからの例であり、推奨ではありません。ユーザーはトランザクション命令に署名し、スポンサーが手数料支払いを承認します。
トランザクションスポンサーシップのコスト:開発者にとってガスレスは実際にいくらかかるのか?
ソースは、Solanaのトランザクション手数料ドキュメントを使用して、署名あたり5,000ラムポートの基本料金をモデル化しています。これを検証するための入力として扱ってください。総スポンサーシップコストは、署名数、優先手数料、リトライ、アカウント作成、プロバイダー料金、インフラストラクチャ、およびSOLの価格によっても異なります。
以下のコスト見積もりは例示であり、公開されている料金データに基づいています。このコンテンツは財務アドバイスを構成するものではありません。SOL価格は変動するため、実際の米ドルコストは異なります。
1 SOLは1,000,000,000ラムポートに相当します。署名あたりの5,000ラムポートの基本料金はネットワークの最小値です。優先手数料はオプションであり、スポンサーによって制御されます。
| 月間スポンサー・トランザクション数 | 基本料金の例 | 1 SOL = $150 の時の USD 換算例 |
|---|---|---|
| 1,000 | 0.005 SOL | 〜$0.75 |
| 10,000 | 0.05 SOL | 〜$7.50 |
| 100,000 | 0.5 SOL | 〜$75.00 |
| 1,000,000 | 5 SOL | 〜$750.00 |
| 計算式 | トランザクション数 × 想定基本料金 0.000005 SOL | 想定 SOL 価格を乗算。優先手数料やサービス費用は含まず |
優先手数料はオプションの computeUnitPrice 命令であり、ネットワーク負荷が高い期間にトランザクションをキューの最前列に移動させます。優先手数料を追加するとトランザクションあたりのコストが増加し、変動性が生じます。混雑時にアプリケーションがトランザクションをスポンサーする場合は、余裕を持った予算を立ててください。
マネージドサービス費用は、Solana ネットワーク手数料の上に追加されるレイヤーです。Helius やその他のマネージド・リレイヤーを使用する場合、開発者は Solana の基本料金と、プロバイダーの API サブスクリプション料またはトランザクションごとのサービス料の両方を支払います。詳細については、各プロバイダーの最新の料金ドキュメントを確認してください。
この表は、ソースの想定基本料金と SOL 価格を使用した例です。実際のコストは、署名数、優先手数料、失敗または再試行されたトランザクション、アカウント作成、プロバイダーの価格設定、インフラ、およびトークン価格によって異なります。チームは、表から保証されたコストを推定するのではなく、独自のワークロードでベンチマークを行う必要があります。
コストと運用要因に基づいてマネージドサービスとカスタム・リレイヤーのどちらを選択するかについては、「適切なアプローチの選択」セクションを参照してください。
セキュリティ上の考慮事項:リレイヤーのリスクについて開発者が知っておくべきこと
ガスレス・トランザクションの実装は、開発者、インフラ運用者、およびユーザーにセキュリティ上の責任をもたらします。ユーザーの署名は、ウォレットによって提示されたトランザクション命令を承認するものです。手数料のスポンサーシップは、有害な命令や誤解を招く命令を安全にするものではありません。
ユーザーの安全性: 正当な手数料スポンサーシップのフローではプライベートキーの共有を要求すべきではありませんが、ユーザーは依然としてドメイン、ウォレットのプロンプト、プログラム ID、トークンの承認、アカウント、および金額を確認する必要があります。悪意のある dApp は、別のアカウントがネットワーク手数料を支払う場合でも、有害な命令に署名するようユーザーに求めることができます。
以下のリスクは開発者と運用者に影響を与えますが、トランザクション署名、フィッシング、ウォレット、および資産承認のリスクはエンドユーザーにも影響を与えます。
リスク 1:トランザクション内容の改ざん。 悪意のあるクライアントが有害な命令を含むトランザクションを作成し、リレイヤーが内容を検査せずに署名することを期待して、リレイヤーに送信する可能性があります。対策:リレイヤーは、署名する前にトランザクションをデシリアライズして検証する必要があります。プログラム ID、命令データ、およびアカウントリストを、期待される値の許可リストと照合してください。アプリケーションで期待される構造と一致するトランザクションのみに署名してください。
リスク 2:リプレイアタック。 Solana の recentBlockhash メカニズムは、ネイティブにリプレイアタックを防止します。ブロックハッシュは約 150 スロット(約 60 〜 90 秒)後に期限切れになり、ブロックハッシュの期限が切れた後に送信されたトランザクションはネットワークによって拒否されます。リレイヤーは、期限切れのブロックハッシュを持つトランザクションに再署名すべきではありません。送信の遅延が避けられないフローの場合は、Solana の nonceAccount 機能を使用して Durable Nonce を実装してください。Solana の Durable Nonce ドキュメント.)を参照してください。
リスク 3:リレイヤーのサービス拒否(DoS)。 サードパーティのマネージド・リレイヤーがダウンタイムを経験すると、ユーザーが自分で手数料を支払う意思があっても、スポンサー付きトランザクションを送信できなくなります。対策:リレイヤーのエンドポイントが利用できない場合に、標準の(ユーザー支払いの)トランザクションを構築するフォールバック・パスをフロントエンドに実装してください。これにより、停止中も機能を維持できます。
リスク 4:スポンサーウォレットの枯渇。 レート制限がない場合、攻撃者は正当に見えるトランザクションを大量に生成し、スポンサーの SOL 残高を使い果たす可能性があります。対策:ウォレットアドレスごと、IP アドレスごと、および時間枠ごとにレート制限を適用してください。1 日の支出上限を設定してください。ボリュームがしきい値を超えたときにスポンサーシップを自動的に停止するサーキットブレーカーを実装してください。自動アラートと補充トリガーを使用して、スポンサーウォレットの残高を監視してください。
リスク 5:フロントランニングと MEV。 リレイヤーはトランザクションをブロードキャストし、オンチェーンでの確定前にその内容を把握できます。スワップやアービトラージを伴う DeFi アプリケーションの場合、敵対的なリレイヤーがトランザクションをフロントランニングする可能性があります。対策:機密性の高い金融取引を処理する DeFi アプリケーションには、自社運用のリレイヤーを使用してください。サードパーティ・プロバイダーを DeFi 商品に統合する前に、その評判と運用の透明性を評価してください。
規制の観点について:特定の法域では、ユーザーのトランザクションをスポンサーすることは、特にスポンサーされた手数料が価値移転とみなされる場合、dApp の規制上の立場に影響を与える可能性があります。これは法律上の助言ではありません。法域固有の分析については顧問弁護士に相談してください。
実装ガイドの検証レイヤーでは、リレイヤー・アーキテクチャのどこでこれらの対策が適用されるかを説明しています。
リレイヤー実装のセキュリティ・チェックリスト
- 署名前にトランザクションの内容を検証しデシリアライズする
- 期限切れのブロックハッシュを持つトランザクションに決して再署名しない
- リレイヤーのダウンタイムに備え、ユーザー支払いのフォールバックを実装する
- ウォレットごと、IP ごと、時間枠ごとのレート制限と、1 日の支出上限を適用する
- 機密性の高いトランザクションを扱う DeFi アプリケーションには、自社運用または信頼できるリレイヤーを使用する
適切なアプローチの選択:ネイティブ実装 vs. マネージドサービス
ネイティブの feePayer 実装、マネージド・リレイヤー・サービス、およびカスタム構築のリレイヤーの選択は、開発期間、トランザクション量、セキュリティ要件、および継続的な運用オーバーヘッドの予算という 4 つの要因に依存します。
| 基準 | ネイティブ feePayer (直接) | マネージドサービス (例: Helius) | カスタム・リレイヤー |
|---|---|---|---|
| セットアップの複雑さ | 信頼できる署名サービスと検証が必要 | プロバイダーの統合とポリシー設定 | 専用サービスの構築とデプロイ |
| 運用のメンテナンス | キーのセキュリティ、残高、検証、監視 | プロバイダーの監視と内部統制 | キーのセキュリティ、監視、再試行、レート制限 |
| コスト構造 | ネットワーク手数料のみ | ネットワーク手数料 + サービス利用料 | ネットワーク手数料 + ホスティング費用 |
| ベンダー依存性 | なし | 高い | なし |
| セキュリティ制御 | 実装とキー・アーキテクチャに依存 | プロバイダー設計の下での共同責任 | 実装とキー・アーキテクチャに依存 |
| 一般的な適合例 | 定義されたスポンサー・ルールを持つ信頼できるバックエンド | ベンダー依存を受け入れるチーム | 独自の適格性、コンプライアンス、またはデータ所在地要件がある場合 |
マネージドサービスを選択するための万能なトランザクション量のしきい値はありません。アプローチを選択する前に、キーの保管、検証コントロール、可用性、プライバシー、コンプライアンス、データ所在地、価格、ポータビリティ、およびインシデント対応を比較してください。
アプリケーションに独自の適格性ロジックが必要な場合(例:ユーザーあたり最初の 5 回のトランザクションのみをスポンサーする、または特定の命令タイプにスポンサーシップを制限するなど)、トランザクション量とセキュリティ要件が運用の投資を正当化する場合、またはデータ所在地の要件によりサードパーティ・プロバイダーの使用が不可能な場合は、カスタム・リレイヤーを構築してください。
専用のリレイヤー・サーバーを持たないネイティブの feePayer アプローチは、信頼できるバックエンドがあり、予測可能で少量のトランザクションを扱うシンプルなアプリケーションに適しています。
マネージドサービスを使用するチームは、プロバイダーが価格を変更したりサービスを停止したりした場合に、自社運用のリレイヤーに移行できる能力を維持しておく必要があります。移行がコードの書き換えではなく設定変更で済むように、統合ポイントを文書化しておいてください。
各オプションのコスト・モデリングについては、コスト分析セクションを参照してください。
Solana のガスレス・トランザクションに関するよくある質問
暗号資産におけるガスレス・トランザクションとは何ですか?
暗号資産におけるガスレス・トランザクションとは、エンドユーザーがネットワーク手数料を支払わないブロックチェーン・トランザクションのことです。dApp開発者、プロトコル、またはリレーサービスなどの第三者が、ユーザーに代わって手数料を負担します。この用語は、トランザクション手数料が「ガス」と呼ばれるEthereumエコシステムから生まれ、その後Solanaを含むチェーン全体に、手数料スポンサー付きのユーザー体験を表す一般的な用語として広がりました。
Solanaはガス代を請求しますか?
Solanaでは「ガス」という言葉ではなく、トランザクション手数料を使用します。ソースでは1署名あたり5,000 lamportの基本料金が引用されていますが、現在のパラメータを確認する必要があり、総コストには複数の署名やオプションの優先手数料が含まれる場合があります。ガスレスとは、別のアカウントが適用されるネットワーク手数料を支払うことを意味します。
Solanaでの手数料支払者はどのように機能しますか?
Solanaの手数料支払者(fee payer)は、トランザクション手数料を支払うように指定されたアカウントです。すべてのトランザクションオブジェクトにはfeePayerフィールドがあります。標準的なトランザクションでは、手数料支払者とトランザクション署名者は同じアカウントです。ガスレス・トランザクションではこれらは異なるアカウントになります。ユーザーのウォレットはインストラクションを承認するために署名し、(dAppによって制御される)別の手数料支払者アカウントが手数料を承認し支払うために署名します。手数料支払者のSOL残高のみが引き落とされます。
Solanaのガスレス・トランザクションは誰が支払いますか?
dAppの開発者、プロトコルのトレジャリー、または管理されたリレーサービスがSolanaのガスレス・トランザクションの費用を支払います。これらのエンティティは、SOLを補充した手数料支払者アカウントを用意し、ユーザーに代わってトランザクションに共同署名するリレーを実行します。ビジネスの観点からは、これはトランザクションのスポンサーシップです。dAppは手数料をユーザー獲得コストとして扱います。内訳については、誤解セクションの「誰が支払うか」の表を参照してください。
手数料を支払わずにSOLを送信することは可能ですか?
Solanaでは、バリデーターに手数料が支払われることなくトランザクションが発生することはありません。手数料はプロトコルの要件です。可能なのは、送信者以外の当事者が手数料を支払うことです。ガスレス・トランザクションにも手数料は依然として存在しますが、ユーザーがそれを支払う側ではないというだけです。例えるなら、レストランで食事が無料提供(コンプ)されることがあっても、その料理には依然としてコストがかかっているのと同じです。
トランザクション手数料スポンサーシップとは何ですか?
トランザクション手数料スポンサーシップとは、dApp開発者、プロトコル、またはサービスがエンドユーザーに代わってネットワークトランザクション手数料を負担する慣行であり、ユーザーが手数料支払い用のSOLを保有せずにSolanaを利用できるようにするものです。これはガスレスなユーザー体験を可能にするメカニズムです。商品としての観点からは、手数料スポンサーシップは通常、フリーミアム提供やオンボーディング費用の免除と同様に、ユーザー獲得コストとして扱われます。
SolanaでガスレスdAppを構築するにはどうすればよいですか?
SolanaでガスレスdAppを構築するには:(1) サーバー側にSOLを補充した手数料支払者のキーペアを作成する、(2) transaction.feePayerに手数料支払者のパブリックキーを設定してトランザクションを構築する、(3) ユーザーにウォレット経由でトランザクションに署名させる、(4) 部分的に署名されたトランザクションをリレーサーバーに送信する、(5) リレー側でトランザクション内容を検証し、手数料支払者の署名を追加してネットワークに送信する。3つの実装アプローチすべての詳細については、実装ガイドを参照してください。
Solanaの手数料とEthereumのガスの違いは何ですか?
EthereumとSolanaでは、手数料とスポンサーシップのアーキテクチャが異なります。Solanaはネイティブな手数料支払者フィールドを公開しており、優先手数料も使用する場合があります。Ethereumはアカウント抽象化(Account Abstraction)やメタトランザクションの設計を異なるコンポーネントでサポートしています。単一の固定手数料額に頼るのではなく、同等のワークロード、確認ポリシー、プロバイダーコスト、およびセキュリティ管理を比較してください。
SolanaでNFTを無料でミントできますか?
はい、多くのSolanaのNFTプラットフォームはミントのトランザクション手数料をスポンサーしているため、ユーザーはネットワーク手数料を一切支払いません。ただし、「フリーミント(無料ミント)」と「ガスレスミント」は同一ではありません。フリーミントはトランザクション手数料もミント価格もかからないことを意味します。ガスレスミントはトランザクション手数料がスポンサーされますが、ミント価格は依然として適用される場合があります。ガスレスというラベルは、具体的にネットワーク手数料のスポンサーシップを指すものであり、NFT自体に購入価格があるかどうかを指すものではありません。
Solanaのガスレス・トランザクションをサポートしているウォレットは何ですか?
ガスレスの挙動は主にdAppとリレーによって実装されますが、ウォレットの互換性とトランザクション形式のサポートについては依然としてテストが必要です。署名されたインストラクションによってユーザーの資産が移動したり他のコストが発生したりする場合でも、スポンサーがネットワーク手数料をカバーすることがあります。
Solanaのガスレス・トランザクションは安全ですか?
安全に実装することは可能ですが、スポンサーシップが安全性を保証するものではありません。ユーザーはdAppと署名するインストラクションを確認する必要があり、開発者はトランザクションを検証し、スポンサーキーを保護し、悪用を制限し、リレーを監視し、失敗時のハンドリングを提供しなければなりません。正当なサービスがユーザーのプライベートキーを要求することは決してありません。
リレーサービスが停止した場合はどうなりますか?
管理されたリレーサービスが停止した場合、サービスが復旧するまでスポンサー付きトランザクションを送信することはできません。自ら手数料を支払う意思があるユーザーであっても、dAppがフォールバックパスを実装していない限り、支払うことはできません。適切に構築されたガスレスdAppは、リレーの可用性を検出し、リレーが利用不可のときにはユーザーが手数料を支払う標準的なトランザクションの構築へと切り替えます。これは、自社運用型ではなく管理型のリレーサービスを使用する場合の主要な運用リスクの1つです。
関連するSolanaネットワーク経済ガイド
BybitでSOLを調べる
読者は、現在のSOL市場情報またはSOL/USDT現物市場.を確認できます。可用性は、プロトコル、ステーブルコイン、リレー、バイバックプログラム、または投資理論を検証するものではありません。
まとめ:Solanaのガスレス・トランザクションについて知っておくべきこと
Solanaのガスレス・トランザクションは、手数料の支払いを指定された手数料支払者アカウント(Solanaのネイティブ・トランザクションモデルにおける主要フィールド)に移行させることで、エンドユーザーに手数料無料の体験を提供します。
重要なポイント:
feePayerフィールドはSolanaの基本トランザクション構造に組み込まれています。手数料をスポンサーするために追加のプログラムやコントラクトは必要ありません。- 手数料は常に存在し、常にバリデーターに支払われます。ガスレスとは、ユーザーがそれを支払う側ではないという意味であり、手数料が存在しないという意味ではありません。
- 3つの実装パスが議論されています:承認されたSDKを使用したネイティブな手数料支払者フロー、管理型リレーサービス、および独自構築のリレーです。それぞれにセキュリティ、可用性、コスト、および制御のトレードオフがあります。
- セキュリティの責任は共有されます:ユーザーは署名内容を確認し、開発者はトランザクション内容の検証、スポンサーキーの保護、悪用の制限、およびリレーの可用性監視を行います。
- ソースの基本料金の例示はスポンサーシップが安価であることを示唆していますが、本番環境の経済性には現在の手数料、優先設定、失敗率、プロバイダー料金、および同等のワークロードテストが必要になります。
対象者別の次のステップ:
ユーザー向け: 自分の残高に影響がないと仮定する前に、dAppが手数料をスポンサーしているという明示的な確認を探してください。スポンサーシップが有効であれば、最初にSOLを購入することなく参加できますが、常に各プラットフォームの最新ポリシーを確認してください。
開発者向け: ネイティブな手数料支払者モデル、複数の管理型プロバイダー、および自社運用のリレーを比較してください。実装を選択する前に、最新のドキュメント、セキュリティの前提条件、利用規約、およびコストを確認してください。
プロダクトストラテジスト向け: コスト分析セクションの数式を使用してスポンサーシップコストをモデル化し、「適切なアプローチ」セクションの決定テーブルを使用して実装アプローチを評価してください。
Solana上のコンシューマー向けdAppが成熟するにつれ、手数料スポンサーシップは標準的なオンボーディングパターンになりつつあります。これをサポートするアーキテクチャは、初日からSolanaのプロトコルの一部となっています。