# 手数料投票 手数料投票は、XRP Ledgerの使用料、具体的には基本[トランザクションコスト](/ja/docs/concepts/transactions/transaction-cost)および[準備金要件](/ja/docs/concepts/accounts/reserves)を調整するためのシステムです。この手数料の目的は、ネットワークをスパムから保護することにあります。そのため、手数料の投票による決定は、より多くのユーザやユースケースにネットワークを利用可能にするという目的と、ネットワークを悪用や過剰利用から保護するという目的の、競合する優先事項を考慮する必要があります。XRPの価値やネットワークノードのコストおよび機能の長期的な変化に適応するために、定期的な変更が必要です。 [バリデータ](/ja/docs/infrastructure/configuration/server-modes/run-rippled-as-a-validator) の運用者は、`rippled.cfg` ファイルの `[voting]`セクションで、希望する手数料値を設定することができます。各バリデータは、15分に1回程度の頻度で、ネットワークにその設定値を定期的に伝えます。ネットワークは、信頼されているバリデータの希望の中央値に手数料設定を自動的に調整します。 信頼できるバリデータの合意により不十分な必要準備金が採用された場合、XRP Ledgerピアツーピアネットワークがサービス拒否(DoS)攻撃を受ける可能性があります。 設定できるパラメーターは次の通りです。 | パラメーター | 説明 | 推奨される値 | | --- | --- | --- | | `reference_fee` | **リファレンストランザクションのコスト**。これは、リファレンストランザクション(最も安価なトランザクション)を送信するためにバーンしなければならないXRPの量(1 XRP = 100万ドロップ)です。実際のトランザクションコストは、個々のサーバの負荷に応じて動的に調整される、この値の倍数です。 | `10` (0.000010 XRP) | | `account_reserve` | **基本アカウント準備金**。これは、アカウントが保持しなければならないXRPの量(1 XRP = 100万ドロップ)です。これは、新しいアカウントを作成するための最小要件でもあります。 | `1000000` (1 XRP) | | `owner_reserve` | **所有者準備金の増加量**。これは、アカウントがレジャー内で所有する各オブジェクトに対して保持しなければならないXRPの量(1 XRP = 100万ドロップ)です。 | `200000` (0.2 XRP) | ## 注意事項 手数料の設定は慎重に行ってください。不十分な手数料が過半数の信頼できるバリデータによって採用された場合、ネットワークが様々なサービス拒否(DoS)攻撃を受ける可能性があります。より具体的には - リファレンストランザクションコストは、トランザクションの過剰な *処理および中継* からネットワークを保護します。これは、ネットワーク上のすべてのノードが個々にすべてのトランザクションを検証および処理し、それらのトランザクションをすべてのノードに中継する必要があるため、重要な設定です。リファレンストランザクションコストが低すぎると、悪意のあるユーザーが大量のトランザクションを送信してネットワークに過剰な負荷をかけることが可能になります。この設定は主に、ノードのCPUと帯域幅の負荷を保護します。 - 準備金の設定は、過剰な *データストレージの増加* からネットワークを保護します これは、ネットワーク上のすべてのサーバが、すべてのアカウントやその他のレジャーエントリタイプを含む最新のレジャーステートの完全なコピーを必要とする点から重要となっています。未使用のアカウントやデータは自動的に削除されないため、準備金分のストレージは、ユーザが積極的に使用していないデータを削除するインセンティブを提供します。準備金の負担が低すぎる場合、悪意のあるユーザがレジャーエントリを大量に作成することでネットワークノードに過剰な負荷をかける可能性があります。これらの設定は主に、サーバのRAMとディスクスペースを保護します。 一般的に、準備金要件の引き上げは、引き下げよりも混乱を招くものです。準備金が減少すると、一部のユーザはそれまでロックされていた資金を利用できるようになりますが、準備金が増加すると、一部のユーザは多くの種類のトランザクションを送信するのに十分な資金を持たなくなります。混乱を最小限に抑えるためには、XRP価格の変動に対応するために準備金を積極的に調整するのではなく、準備金を引き下げる際にはより慎重に判断することが一般的に推奨されます。 ## 投票プロセス 256番目の各レジャーは「フラグ」レジャーと呼ばれます。(フラグレジャーは`ledger_index` [modulo](https://en.wikipedia.org/wiki/Modulo_operation) `256`が`0`になるように定義されています。)通常、レジャーの閉鎖には3~4秒かかるため、通常、15分ごとに新しいフラグレジャーが作成されます。 フラグレジャーの直前のレジャーでは、アカウント準備金またはトランザクションコストの優先設定が現在のネットワーク設定と異なる各バリデータが、そのレジャーの検証と併せて、バリデータが希望する値を示す「投票」メッセージを配信します。 フラグレジャー自体では何も起こりませんが、バリデータは信頼する他のバリデータからの投票を受信して記録します。 他のバリデータの票を集計した後、各バリデータは、それぞれの設定値と信頼する(UNLの)バリデータの大半の設定値の妥協点を見つけるために、各設定における中央値の票を取ります。もし中央値が二つの票の間にある場合、現在の設定により近い値を選択します。もし選択された設定がどれか一つでも現在レジャーで定義されているものとは異なっている場合、バリデータは提案に[SetFee擬似トランザクション](/ja/docs/references/protocol/transactions/pseudo-transaction-types/setfee)をフラグレジャーの後に挿入します。他のバリデータも、各自の設定値やUNLでの投票に基づいて、提案にSetFee擬似トランザクションを挿入します。値が既存のネットワーク設定と一致するバリデータは、何もしません。SetFee擬似トランザクションが過半数を占め、コンセンサスプロセスを生き残ってバリデータによる検証済みのレジャーに組み込まれた場合、新しいトランザクションコストと準備金設定が、次のレジャーから有効になります。 まとめ: * **フラグレジャー-1**: バリデータが投票を送信します。 * **フラグレジャー**: バリデータが投票を集計し、どのSetFeeの内容を含めるか決定します(存在する場合)。 * **フラグレジャー+1**: バリデータは、SetFee疑似トランザクションを各自の提案レジャーに挿入します。 * **フラグレジャー+2**: SetFee疑似トランザクションがコンセンサスに達すると、新しい設定が有効になります。 ## 手数料の最大値 [XRPFees amendment](/ja/resources/known-amendments#xrpfees)が有効でないネットワークでは、手数料の設定可能な最大値は、[FeeSettingsレジャーエントリ](/ja/docs/references/protocol/ledger-data/ledger-entry-types/feesettings)に保管されている内部データ型により制限されます。これらの値は次のとおりです。 | パラメーター | 最大値(drop) | 最大値(XRP) | | --- | --- | --- | | `reference_fee` | 264 | (これまでに存在したXRP総額よりも大きい) | | `account_reserve` | 232 drops | 約4294 XRP | | `owner_reserve` | 232 drops | 約4294 XRP | メインネットおよびXRPFees Amendmentが有効になっているその他のネットワークでは、3つの手数料すべてを任意の有効なXRPの金額に設定できるようになりました。 ## See Also - **コンセプト:** - [Amendment](/ja/docs/concepts/networks-and-servers/amendments) - [トランザクションコスト](/ja/docs/concepts/transactions/transaction-cost) - [準備金](/ja/docs/concepts/accounts/reserves) - [トランザクションキュー](/ja/docs/concepts/transactions/transaction-queue) - **チュートリアル:** - [rippledの設定](/ja/docs/infrastructure/configuration) - **リファレンス:** - [feeメソッド](/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/fee) - [server_infoメソッド](/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_info) - [FeeSettingsオブジェクト](/ja/docs/references/protocol/ledger-data/ledger-entry-types/feesettings) - [SetFee疑似トランザクション](/ja/docs/references/protocol/transactions/pseudo-transaction-types/setfee)