💸

XRP Ledgerの特殊なトランザクションコスト

2023/12/19に公開

XRP Ledger

XRP Ledgerは、分散型のパブリックブロックチェーンです。XRP Ledgerは、DEX機能やNFT機能をはじめとした様々なネイティブ機能を備えており、日々進化を続けています。

特徴の一つに非常に低いトランザクションコストがあります。

この記事では、特定のトランザクションでは通常のトランザクションよりも高いコストがかかることを紹介します。

トランザクションコスト

XRP Ledgerではトランザクションを送信する際に少額の手数料を支払う必要があります。

これらの手数料はネットワークへ多量のトランザクションが送信されることを防ぐために必要とされています。ネットワークに多くの負荷がかかっている場合、必要となる手数料は高くなります。

また多くのブロックチェーンとは異なり、この手数料はバリデータの報酬となることはなく、ネットワークから完全にバーンされます。

現在一般的に必要とされるコストは1トランザクションあたり0.000012XRP(=12drops)であり、1XRP=100円とすると約0.001円となります。

https://xrpl.org/ja/transaction-cost.html

特殊なトランザクション

XRP Ledgerのほとんどのトランザクションは0.000012XRP程度で実行可能ですが、いくつかのトランザクションではさまざまな理由により通常のトランザクションよりも高いコストが必要となります。

マルチシグ

https://xrpl.org/ja/multi-signing.html#マルチシグ

マルチシグでトランザクションを送信する場合、マルチシグの署名者の数に応じてコストが増加します。

これは署名検証の処理コストとして設定されています。

計算式はbasefee + 署名者数 * basefeeとなります。
basefeeが10dropかつ署名者が4人の場合、コストは50dropとなります。

https://github.com/XRPLF/rippled/blob/develop/src/ripple/app/tx/impl/Transactor.cpp#L164-L180

エスクロー終了

https://xrpl.org/ja/escrow.html

条件付きエスクローを終了するトランザクションには通常のトランザクションよりも高いコストが必要となります。

同じく条件の検証コストが必要なためより多くのコストが設定されています。

計算式はbasefee * (32 + Fulfillmentのバイト数 / 16 )となります。
basefeeが10dropかつFulfillmentが32バイトの場合、コストは408dropとなります。

https://github.com/XRPLF/rippled/blob/develop/src/ripple/app/tx/impl/Escrow.cpp#L353-L364

アカウント削除

https://xrpl.org/ja/deleting-accounts.html

アカウントを削除するトランザクションには通常のトランザクションよりも高いコストが必要となります。

これはアカウント作成によるストレージに対するスパムを防ぐために設定されています。

必要となるコストは1オブジェクトを所有するのに必要な準備金(所有者準備金)と同じ額です。

執筆時点では所有者準備金は2XRPであるため、アカウントを削除するには2XRPのコストが必要となります。

https://github.com/XRPLF/rippled/blob/develop/src/ripple/app/tx/impl/DeleteAccount.cpp#L56-L61

AMMプールの作成

https://xrpl.org/ja/automated-market-makers.html

新しいAMMプールを作成するトランザクションには通常のトランザクションよりも高いコストが必要となります。

これは1つのAMMプールは1つのアカウントとして作成されるため、そのアカウントの準備金を負担するために設定されています。

必要となるコストは1オブジェクトを所有するのに必要な準備金(所有者準備金)と同じ額です。

執筆時点では所有者準備金は2XRPであるため、AMMプールを作成するには2XRPのコストが必要となります。

https://github.com/XRPLF/rippled/blob/develop/src/ripple/app/tx/impl/AMMCreate.cpp#L81-L86

Hooksが有効なネットワーク(Xahau Network)でのトランザクションコスト

XRPLプロトコルのスマートコントラクト機能であるHooksが有効なネットワークでは、トランザクションコストは動的に変動しえます。

Hookのデプロイ時には1バイトあたり10000dropsのコストが必要になったり、トランザクションの送信元アカウントや送信先アカウントがHookを設定している場合、そのHook wasmの命令あたり1dropsのコストが必要になったりします。

また、Hookへ引数を渡すことを目的とするようないくつかのフィールドではそのデータサイズに応じたコストが必要になります。

つまり実行コストやデータコストに応じてトランザクションコストが変動することになります。

https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/Transactor.cpp#L273-L403

ただし、Hooksが有効なネットワークであっても、トランザクションにHookが一切関わらない場合は、これまでのトランザクションコストと同じく12drop程度でトランザクションを実行することが可能です。

まとめ

XRP Ledgerのトランザクションは基本的に0.001円程度で実行することが可能ですが、いくつかのトランザクションでは通常のトランザクションよりも高いコストが必要となります。
これにより負荷が高い特定の種類のトランザクションがネットワークに多く送信されることを防ぐことができます。

また、Hooksが有効なネットワークではトランザクションコストはより実際のコストを反映した形で動的に変動します。

興味を持たれた方はXRP Ledger開発者のDiscordチャンネルへ是非お越しください!
日本語チャンネルもありますので、英語ができなくても大丈夫です!
https://xrpldevs.org

また、XRPL JapanのDiscordサーバもありますので、こちらもぜひご参加ください!
https://discord.gg/invite/xrpljapan

私のX/Twitterアカウントはこちら!

Discussion