最終更新:
編集

Payment Channel

Payment Channelは、少額の単位に分割可能な「非同期」のXRPペイメントを送信し、後日決済する高度な機能です。

Payment Channel向けのXRPは、指定された期間にわたって留保されます。送金元がチャネルに対する クレーム を作成します。受取人は、XRP Ledgerトランザクションを送信したり、新しいレジャーバージョンがコンセンサスに基づいて承認されるまで待つことなしに、このクレームを検証します。(これは、合意に基づいてトランザクションが承認される通常のパターンとは別に発生する、 非同期 のプロセスです。)受取人はいつでもクレームを 清算 して、このクレームにより承認された額のXRPを受領することができます。このようなクレームを清算するときには、通常の合意プロセスの一部として標準XRP Ledgerトランザクションを使用します。この1回のトランザクションに、少額のクレームにより保証される任意の数のトランザクションを含めることができます。

クレームは個別に検証され、後で一括で清算できるため、Payment Channelでは、クレームのデジタル署名を作成および検証する参加者の能力によってのみ制限されるペースで、トランザクションを行えます。この制限は主に、参加者のハードウェアのスピードと、署名アルゴリズムの複雑さによるものです。最大限の速度を引き出すにはEd25519署名を使用します。これはXRP Ledgerのデフォルトのsecp256k1 ECSDA 署名よりも高速です。研究の結果、2011年のコモディティーハードウェアで1秒あたりEd25519署名を100,000個以上作成し、1秒あたり70,000個以上を検証できることが実証されました

Payment Channelを使用する理由

Payment Channelを使用するプロセスには常に、支払人と受取人という2名の当事者が関わります。支払人とは、受取人の顧客で、XRP Ledgerを使用している個人または機関です。受取人とは、商品またはサービスの代金としてXRPを受領する個人または事業者です。

Payment Channelでは本来、そこで売買可能なものにいては、一切指定されません。ただし、次の商品やサービスはPayment Channelに適しています。

  • デジタルアイテムなど、ほぼ即時に送信できるもの
  • 安価な商品(価格に占めるトランザクション処理コストの割合が大きい)
  • 通常大量購入する商品(正確な希望数量が事前に判明していない)

Payment Channelのライフサイクル

次の図は、Payment Channelのライフサイクルの概要を示します。

LegendChannelが有効期限切れChannelが閉鎖され、レジャーから削除される。未請求のXRPが支払元に返金される変更可能な有効期限("Expiration"フィールド)変更不可能な有効期限("CancelAfter"フィールド)ビジネストランザクション完了支払いの確認支払いの開始支払元が支払い準備完了両当事者がChannelを利用可能Channelの作成トランザクションの影響(前のステップの一部として発生)XRP Ledgerトランザクション(コンセンサスに 3~5秒必要)オフレジャーのステップ(計算可能な最も 迅速な速度)支払元: ChannelにXRPを追加(PaymentChannelFundトランザクション)7. 必要に応じて繰り返し(変更可能な有効期限は PaymentChannelFundトランザクションにより更新可能)受取人のPaymentChannelClaimトランザクションでtfCloseフラグありChannel内のXRPがなくなる10. 任意: Channelの閉鎖(PaymentChannelCloseまたはPaymentChannelFundトランザクション)ChannelにXRPが残っており有効期限を設定9b. 受取人: Channnel閉鎖を要求(tfCloseフラグを指定したPaymentChannelClaimトランザクション)9a. 支払元: Channnel閉鎖を要求(tfCloseフラグを指定した PaymentChannelClaimトランザクション)受取人のPaymentChannelClaim トランザクションでtfCloseフラグなし(PaymentChannelCreate トランザクションにより変更不可な有効期限を設定)8. 受取人: クレームの精算(PaymentChannelClaimトランザクション)Channelが期限切れになっていない場合は受取人がXRPを受領6. 受取人: 商品またはサービスを提供5. 受取人: クレームの金額と署名を検証(channel_verifyメソッドと account_channelsメソッド)4. 支払元: 署名済みクレームを受取人に送信(任意の通信方法)3. 支払元: クレームに署名(channel_authorizeメソッド)2. 受取人: Channelの状態を確認(account_channelsコマンド)1. 支払元: Channelの作成(PaymentChannelCreateトランザクション)

関連項目

  • Payment Channelの使用: Payment Channelを使用するプロセスを段階的に説明するチュートリアル。

  • Escrow: 速度が遅い、条件付きの大量XRP決済のための類似機能。