プライベートチャネルとは?
プライベートチャネルは、Solanaに紐付けられたオフチェーン決済ネットワークです。ユーザーはSPLトークンをオンチェーンのエスクロープログラムにデポジットし、その後ゲートウェイを通じてオフチェーンで高速かつ転送ごとのコストゼロで取引を行います。Solana Mainnetへの決済はSparse Merkle Treeの証明を通じて行われ、資金は常に引き出し可能であり、二重支払いは不可能です。
Solanaのネイティブ決済フローとは異なり、チャネル内での送金はユーザーが引き出しを行うまでオンチェーンには表示されません。チャネルネットワークは独自のトランザクションパイプライン(dedup -> sig verify -> sequencer -> executor -> settler)を実行し、SolanaのブロックタイムとはF独立してトランザクションを処理します。
参加者
インスタンス管理者
管理者はCreateInstanceを通じてInstance PDAをデプロイし、受け入れるSPLトークンのミントを制御します(AllowMint / BlockMint)。管理者はAddOperator / RemoveOperatorを通じてオペレーターをプロビジョニングおよび取り消しでき、SetNewAdminを通じて管理者権限を移譲できます。インスタンスごとに管理者は1名です。管理者権限の移譲は単一ステップで不可逆であり、現在の管理者は新しい管理者の協力なしにロールを取り戻すことはできません。
オペレーター
オペレーターは管理者によってプロビジョニングされます。オペレーターはOperator PDAを保持し、ReleaseFunds(Mainnetへの引き出しを決済する)およびResetSmtRoot(Sparse Merkle Treeをローテーションする)を呼び出すことが許可された唯一のアカウントです。オペレーターはゲートウェイ内のすべての所有権チェックをバイパスし、getBlock、getTransaction、simulateTransactionを含むすべてのJSON-RPCメソッドにアクセスできます。JWTロール:"operator"。オペレーターはデータベースに直接プロビジョニングする必要があり、セルフサービスによるエスカレーションはありません。デプロイおよび設定の詳細については、オペレーターガイドを参照してください。
ユーザー
ユーザーはAuth Serviceを通じて自己登録します。JWTロール:"user"。ユーザーはエスクロープログラム上で直接Depositを呼び出し、Withdrawプログラムのチャネルサイドのinstructions WithdrawFundsを通じて引き出しを開始できます。ゲートウェイのアクセスは自身の検証済みウォレットに限定されており、getBlock、getTransaction、simulateTransactionを呼び出すことはできません。
チャネルのライフサイクル
- インスタンス作成 - 管理者が
CreateInstanceを呼び出し、InstancePDAを作成して許可されたミントを設定します。 - デポジット - ユーザーは
Depositinstructionsを通じてエスクローにSPLトークンをデポジットします。トークンはインスタンスのassociated token accountに移動します。 - オフチェーン転送 - ユーザーはゲートウェイを通じて送金を行います。送金はMainnetに触れることなく、チャネルネットワーク上でシーケンス処理および実行されます。
- 引き出し開始 - ユーザーはWithdrawプログラム(チャネルサイド)上で
WithdrawFundsを呼び出し、残高をバーンして引き出しをシグナルします。 - Mainnet決済 - オペレーターは有効なSMT排除証明を提供し、エスクロープログラム(Mainnet)上で
ReleaseFundsを呼び出して、ユーザーのウォレットにトークンをリリースします。 - ツリーのローテーション - SMTが容量(65,536リーフ)に近づくと、オペレーターは
ResetSmtRootを呼び出してツリーをローテーションし、新しいepochを開始します。
送金
引き出し
プライベートチャネルを使用する場面
以下のニーズがある場合は、プライベートチャネルを使用してください:
- オフチェーンスループット - 送金量がSolana TPSを飽和させる可能性がある場合、またはサブ秒の確認が必要な場合
- プライバシー - 取引相手の身元および送金額をオンチェーンに表示させてはならない場合
- 転送ごとのフェロゼロ - トランザクションごとのSOLコストが高負担となる頻繁な送金を行う場合
以下の場合はネイティブSPL送金を使用してください:
- オンチェーンのコンポーザビリティが必要な場合(DeFi、スワップ、レンディング;他のプログラムが送金を観察または操作できる必要がある)
- 単一送金による決済で十分であり、プライバシーが懸念事項でない場合
- ゲートウェイインフラが利用できない、または運用上実現不可能な場合
Is this page helpful?