分散型取引所
XRP Ledgerには、世界でおそらく最も古い 分散型取引所 (「DEX」と略されることもあります)があり、2012年のXRP Ledgerのローンチ以来、現在まで稼働し続けています。この取引所では、ユーザがトークンをXRPや他のトークンと売買することができ、ネットワーク自体に課される手数料はごく僅かです。(いかなる当事者にも支払われることはありません)
構造
XRP Ledgerの分散型取引所は、無制限の通貨ペアで構成されており、ユーザが取引を行う際にオンデマンドで追跡されます。通貨ペアは、XRPとトークン、または2つの異なるトークンから構成されます。トークンは常に、発行者と通貨コードの組み合わせによって識別されます。同じ通貨コードで異なる発行者のトークン同士、または同じ発行者で異なる通貨コードのトークン同士の取引も可能です。
XRP Ledgerのすべての変更がそうであるように、取引を行うにはトランザクションを送信する必要があります。XRP Ledgerにおける取引は、オファーと呼ばれています。オファーは事実上、ある通貨(XRPまたはトークン)を特定の金額で他の通貨と売買するための指値注文です。ネットワークがオファーを実行する際、同じ通貨ペアでマッチングするオファーがあれば、最も良い取引レートから順に約定されます。
オファーは、全額または一部が約定されることがあります。すぐに全額が約定されなかった場合は、残りの金額は台帳上のOfferオブジェクトとなります。その後、他のオファーやクロスカレンシー支払いがオファーにマッチし、約定する可能性があります。このため、Offerは最初に注文したときは指定した取引レートよりも高いレートで約定し、後で注文したときは指定した取引レートと全く同じレートで約定することがあります。(端数処理のためのわずかな差は除きます)
オファーは、発注後、手動または自動でキャンセルすることができます。この機能およびその他の機能については、オファーをご覧ください。
2つのトークンを取引する際、トークンとトークンを直接取引するよりも、トークンとXRP、XRPとトークンを取引した方が安くなる場合、オートブリッジによって自動的に取引レートと流動性を向上させることができます。
取引の例
上の図は、分散型取引所での取引例です。この例では、Tranというトレーダーが、WayGateという架空の企業が発行するFOOという通貨コードのトークン100個の購入オファーを出しています。(簡潔にするため、「FOO.WayGate」はこれらのトークンを指します。)Tranは、合計で最大1000XRPまで支払う意思があることを明記しています。Tranのトランザクションが処理されると、次のようなことが起こります。
- ネットワークは、購入する通貨額を支払う通貨額で割ることによって、TranのOfferの取引レートを計算します。
- このオーダーブックには、金額や取引レートが異なる他のトレーダーからのオファーがすでに複数存在します。このケースでは、FOO.WayGateの売りとXRPの買いのオーダーブックを意味します。
- Tranのオファーが全額約定するか、Tranのオファーは、Tranのオファーで指定されたレートと同等以上の取引レートのオファーがなくなるまで、最良の取引レートから順に、オファーを約定していきます。この例では、22 FOO.WayGateのみが指定されたレート以上で取引可能です。約定したオファーはオーダーブックから削除されます。
- Tranは、この取引で調達できたFOO.WayGateの量を、それまで売り注文を出していた様々なトレーダーから受け取ります。これらのトークンはWayGateのFOOに対するTranのトラストラインに送られます。(Tranがまだトラストラインを持っていなかった場合、自動的に作成されます。)
- その見返りとして、それらのトレーダーは、提示された取引レートに従って、TranからXRPを受け取ります。
- ネットワークはTranのオファーの残りを計算します。元々のオファーが100 FOO.WayGateの購入で、これまでTranは22を受け取っているので、残りは78 FOO.WayGateとなります。元の取引レートを使用すると、Tranのオファーの残りは780 XRPで78 FOO.WayGateを購入することになります。
- この「残り」は、Tranの取引と同じ向きの取引、つまりXRPの売りとFOO.WayGateの買いのオーダーブックに載せられます。
同じ台帳でTranの直後に実行されたものも含め、その後の取引は更新されたオーダーブックを使って行われるため、Tranのオファーが全額約定するかTranがキャンセルするまで、その一部または全額を約定することができます。
制限事項
分散型取引所は、以下のような制限を設けて設計されています。
取引は新しい台帳がクローズするたびに(約3~5秒ごと)実行されるだけなので、XRP Ledgerは高頻度取引には適していません。台帳内で取引が実行される順番は、フロントランニングを阻止するため、予測できないように設計されています。
XRP Ledgerは、成行注文、指値注文、レバレッジ取引などの概念をネイティブに表現するものではありません。カスタムトークンやOfferのプロパティをクリエイティブに利用することで、いくつかは実現できるかもしれません。
分散型システムであるXRP Ledgerは、取引に関わるアカウントの背後にいる実際の人々や組織に関する情報を一切持っていません。また、ユーザや発行者は、様々な種類の裏付け資産を表すトークンの取引を規制するために、関連する法律に従う必要があります。凍結や認可トラストラインなどの機能は、発行者が関連法規を順守できるよう意図しています。
関連項目
- コンセプト:
- リファレンス:
- account_offersメソッド: アカウントから注文されたオファーを検索
- book_offersメソッド: 指定された通貨ペアの売買のオファーを検索
- OfferCreateトランザクション: 新規オファーを発注や既存のオファーの置き換え
- OfferCancelトランザクション: 既存のオファーをキャンセル
- Offerオブジェクト 台帳のオファーのデータ構造
- DirectoryNodeオブジェクト: 特定の通貨ペアと取引レートのすべてのオファーを追跡するデータ構造