Transaction fees

提供: tezos-wiki
移動先: 案内検索

'取引手数料' 'は、消費者がBitcoin 取引に含めることができる手数料です。 ブロック取引を含む鉱夫によって採金されることがあります。

概要[編集]

すべてのBitcoinトランザクションはゼロ以上のビットコインをゼロ以上の受信者に費やします。費やされた金額と受け取られる金額の差は、取引手数料(ゼロ以上でなければならない)です。

Bitcoinの設計では、支払いをどのくらい支払うか指定するのが簡単で効率的ですが、受取人が料金を指定するのが難しく、効率が悪いので、習慣によって、必要なすべてのBitcoinトランザクション手数料

鉱夫がブロック提案を作成する場合、鉱夫は、そのブロック提案の取引によって支払われたすべての手数料をどこに送るべきかを指定する権利があります。プロポーザルが有効ブロックを最良のブロックチェーンの一部となる場合、料金収入は指定の受信者に送信されます。有効なブロックがすべての利用可能な手数料を回収しない場合、回収されなかった金額は永久に破壊されます。 Antoine Le Calvez、Medium.comによる2011年から2017年までの1,000回以上のイベントで発生しました。<ref> Bitcoinsを破壊する方法 、検索された2018年1月3日<ref> "tx料金が一般的になって始まった2012年のように見える、一部の鉱夫は標準50 BTCを主張していたすべての手数料を免除されたままにしておきます。」、Arvind Narayanan、Twitter.com、2018-01-03、2018-01-03を検索。


ブロック空間の市場[編集]

thumb |数百件の取引から手数料を受け取る(0.44 BTC)

取引を確認するために必要な最小限の手数料は、時間とともに変化し、Bitcoinのブロックスペースの無料市場での需要と供給の交点から発生します。<ref> Cohenのブログ記事 Bitcoinは、サプライサイズで、[最大ブロックサイズ](現在は100万vbyte)で最大値を制限していますブロックに追加できるトランザクションデータの量。

しかしBitcoinブロックは一定のスケジュールでは生成されません。システムは長時間に渡って平均10分ごとに1ブロックをターゲットにしますが、短期間で新しいブロックは1秒未満で到着します。前のブロックの1時間後。ある期間に受信されたブロックの数が変化すると、有効な最大ブロックサイズも変化する。例えば、以下の図では、1日の期間中にノードによって受信された時間(左軸)に基づいてブロック間の平均時間と、そのブロック生成速度が暗示する対応する有効最大ブロックサイズ(右軸、百万Vバイト):

center

実効最大ブロックサイズの期間中、この自然で予測不可能な変動は、より低い料金での取引が確認される確率が通常より高いことを意味し、実効最大ブロックサイズがより低い期間には、低料金取引は通常チャンスよりも低い確認の

Bitcoinのブロックスペースの自由市場の需要側では、それぞれの消費者はビットコインを費やすことに関して独特の制約を受けています。いくつかは高い手数料を支払う意思がある。いくつかはそうではありません。迅速な確認が必要な人もいます。いくつかはしばらく待っていると満足しています。動的料金見積もりの​​優れたウォレットを使用するものもあります。いくつかはありません。さらに、需要は特定のパターンに応じて変化しますが、最も顕著なものは平日に料金が増加し週末に減少する週間サイクルです。

center

それほど認識しにくいもう一つのサイクルは、日中に手数料が下がり、衰退する日中のサイクルです。

center

これらの需要と供給の差異は、ユーザーが確認時間とコストとの間のトレードオフを行うことを可能にするブロック空間の市場を創出する。高い時間要件を持つユーザーは、平均的な取引手数料を迅速に支払うことができますが、時間のかかる圧力をかけないユーザーは、自然(予測できない)供給量の増加または(ある程度予測可能な)需要の減少。

時間の経過とともに、トランザクション手数料の累積的な効果は、新しいブロックを作成する人が、新しいブロック自体によって作成される新しいビットコインから採掘されるよりも多くのビットココンを「獲得」することを可能にすることが想定される。これはまた、鉱業活動からの新しいビットコインの作成が将来のゼロに向かうにつれて、新しいブロックを作成しようとするインセンティブでもある[参考文献] pdf Bitcoin:ピアツーピア電子キャッシュ、セクション6:インセンティブ、中本聡、2008-11-01、検索2018-01-22 </ ref>

金額[編集]

おそらく、トランザクションがどのくらい速く確定するかに影響を及ぼす最も重要な要因は、その料金率(しばしば賞賛される)です。このセクションでは、賞賛が重要である理由と、取引の功績を計算する方法について説明します。

Bitcoinトランザクションは、さまざまな理由でサイズが異なります。 4つのトランザクションをそれぞれのサイズ(長さ)に基づいて横並びに描画することで、 前の例よりも大きな例:

400px | center

長さを示すこの方法は、最大ブロックサイズ制限の例を視覚化して、個々のブロックに追加できるトランザクションデータの量を制限します。

400px | center

Bitcoinはトランザクション全体を特定のブロックに追加することしかできないため、上記の例のトランザクションの少なくとも1つを次のブロックに追加することはできません。では、どの取引先にどのような取引を選択するのですか?必要な選択方法(「政策」と呼ばれる)はなく、特定の政策を要求する方法は知られていませんが、鉱夫の間で人気のある戦略は、個々の鉱夫が取引から集める手数料収入の最大化を試みることです彼らは彼らのブロックに含まれています。

各取引の長さを同じにしながら、トランザクションの面積をその手数料に等しくすることによって、利用可能な料金の視覚化を前の図に追加することができます。これにより、各トランザクションの高さは、料金をサイズで割ったものに等しくなります。これは、 feerate:

400px | center

ロング(ワイド)取引には合計料金が含まれていますが、ブロックの中で占めるスペース(長さ)と比較して、その領域が最大であるため、高額(高)取引は最も利益があります。たとえば、上記の図のトランザクションBとトランザクションDを比較します。つまり、手数料収入を最大限にしようとする鉱夫は、単収でソートし、ブロック内にできるだけ多くの取引を含めるだけで良い結果を得ることができます。

400px | center

完全なトランザクションのみをブロックに追加することができます(上記の例のように)不完全なトランザクションをブロックの終わり近くに含めることができない場合は、1つ以上のより小さいトランザクションのスペースを解放します。利益を最大限に活かす鉱夫は、フィットするには大き過ぎる(残念ながら最高の順序で)より小さい取引を含む残りのすべての取引を無視することがよくあります。

400px | center

同じブロックに含まれる他のトランザクションのいずれにも依存しないトランザクションが存在する限り、特定のブロックサイズでのマイナー収益を最大化します(次のセクションの「トランザクション」を参照してください) 「依存する取引のための賞賛」、それについてのより詳しい情報があります)。

取引の成功率を計算するには、トランザクションが支払う手数料を取り、トランザクションのサイズで割る(現在は[[重量単位]またはvby​​tesに基づいていますが、[[バイト]に基づいていない) 。たとえば、トランザクションが2,250ナノビットコインの料金を支払う場合、225ビーバイトのサイズであれば、2,250を225で割ると、1ナノバイトあたり10ナノビット(これは最小費用[Bitcoin Core])のウォレットが支払うことになりますデフォルトで)。

複数の取引の間の相場と比較する場合、すべての測定に使用される単位が同じであることを確認してください。たとえば、いくつかのツールはサイズをウェイト単位で計算し、他のツールはvbytesを使用します。いくつかのツールはさまざまな金種で料金を表示します。

従属取引のための賞金(親賞金)[編集]

Bitcoinトランザクションは、同じブロック内に他のトランザクションを含めることに依存する可能性があり、前述のフェレートベースのトランザクション選択を複雑にします。このセクションでは、依存システムのルール、鉱夫が収益を最大化する方法、依存関係を管理する方法、およびビットコインの使用者が依存システムを使用して未確認トランザクションの有効性を効果的に高める方法について説明します。

ブロック内の各トランザクションは、順番に並び順番にトランザクションが1つずつ並んでいます。ブロックチェーンの各ブロックには、順番に1つのブロックが続きます。つまり、最高のブロックチェーン内のすべてのトランザクションに対して、1つのシーケンシャルオーダーが存在します。

center

Bitcoin [コンセンサスルール]の1つは、ビットコインを受け取るトランザクションが、このビットコインを使うトランザクションよりも、このシーケンスの早い方に現れなければならないということです。たとえば、アリスがトランザクションAでボブに支払い、ボブがトランザクションBでチャーリーに支払うのに同じビットコインを使用すると、トランザクションAはトランザクションBよりトランザクションのシーケンスの早い方に現れなければなりません。トランザクションAは、トランザクションBよりブロック:

center

ただし、トランザクションAとBの両方が同じブロック内にある場合、ルールは適用されます。トランザクションAは、トランザクションBより前にブロック内に表示されなければなりません。

これは、鉱夫の手数料収益を最大化する作業を複雑にします。通常、鉱夫は、上記の「feerate」のセクションで説明したように、単純に取引を取引単位で並べ替えることを好みます。しかし、取引Aと取引Bの両方が未確認の場合、Bがより高い報酬を支払ったとしても、鉱夫はAよりもブロックの前にBを含めることができません。これにより、予想通りに利益をあげることができず、より複雑なアルゴリズムが必要になります。幸いにも、それは少しだけ複雑です。

たとえば、前述の 'feerate'セクションで分析されたトランザクションと同様の次の4つのトランザクションを考えてみましょう。

center

収益を最大化するために、鉱夫は関連する取引のグループを相互に比較する方法と、未確認の依存関係のない個々の取引を比較する方法が必要です。そのためには、次のブロックに含めることができるすべてのトランザクションは、そのトランザクションのために計算された賞金額と未確認のすべての祖先を計算します。この例では、これは、トランザクションBがトランザクションBとトランザクションAの組み合わせとみなされることを意味します。

center

これは、この例のトランザクションAの場合のように未確認の祖先トランザクションが2回以上考慮されることを意味します。これは、トランザクションB + Aグループの一部として1回、単独で1回とみなされます。私たちはこの合併症を一瞬で扱います。

これらのトランザクショングループは、前の 'feerate'セクションで説明したように、順番にソートされます。

center

ソートされたリストに2回以上出現する個々のトランザクションは、その冗長なコピーが削除されます。この例の場合、トランザクションAのスタンドアロン版はすでに削除されているため、削除します。 トランザクションB + Aグループ:

center

最後に、前の 'feerate'セクションで説明したようにスペースを無駄にするのを避けるために、ブロックの最後に小さなトランザクションをいくつか絞り込むことができるかどうかを確認します。この場合、変更することはできないため、変更は行われません。

このシンプルで効率的なトランザクションソートアルゴリズムは、まれにしか収益に大きな影響を及ぼさないエッジケースを除いて、トランザクションの依存関係を考慮したうえで最小の収益を最大化します。

注:アルゴリズムが迅速に実行されるように、Bitcoin Coreなどの実装では、1つのグループとしてまとめて考慮する関連トランザクションの最大数を制限します。 Bitcoin Core 0.15.0(2017年後半にリリース)から、これは最大25トランザクションですが、この量をやや増やすことが提案されています。

消費者にとって、トランザクショングルーピングを微妙に使用するということは、あまりにも賞金が低い未確認取引(例えば、取引A)を待っている場合、その取引の出力を費やしている子供取引を作成することができ、鉱夫が両方の取引を同じブロック内で確認することを奨励している。この機能を明示的にサポートしているウォレットは、子トランザクションBが親トランザクションAの支払いに役立つため、この機能を明示的にサポートしています(CPFP)。

取引グループの動向を計算するには、グループのすべての未確認取引によって支払われた手数料を合計し、そのすべての取引([[重量単位]または[[vby​​tes]))のサイズの合計で割ります。たとえば、トランザクションAに1,000ナノビットコインの料金があり、250ビーバイトの料金があり、トランザクションBに3,000ナノビットコインの料金と150 vバイトの料金がある場合、合計の費用は(1,000 + 3,000)/(250 + 150)それは1ナノバイトあたり10ナノビットコインである。

祖先のグループの背後にあるアイデアは、少なくとも2013年に戻り、Bitcoin Coreに追加するためのいくつかの異なる提案を見て、Bitcoin Core 0.13.0の8月2016リリースで最終的に利用可能になりました。<ref> [https: /bitcoincore.org/en/2016/08/23/release-0.13.0/#more-intelligent-transaction-selection-for-miningマイニングのためのよりインテリジェントなトランザクション選択]、Bitcoin Core 0.13.0リリースノート、BitcoinCore.org 、2016-08-23、検索2017-01-14 </ ref>

リファレンスの実装[編集]

以下のセクションでは、リファレンス実装のバージョン0.12.0の動作について説明します。以前のバージョンでは、他の一般的な実装(将来のバージョンを含む)と同様に、料金が異なっていました。

送信[編集]

ユーザーは、 `-paytxfee = <n>`を設定することで、定義済みの料金を支払うことができます (または実行時に `settxfee <n>` rpc)を実行します。 `n = 0`の値はBitcoinに信号を送る フローティング料金を使用するコア。デフォルトでは、Bitcoin Coreはフローティングを使用します 手数料

過去の取引データに基づいて、変動手数料は手数料に近似します 今から `m`ブロックに入る必要があります。これは設定可能です `-txconfirmtarget = <m>`(デフォルト: `2`)で指定します。

場合によっては、良い見積もりや見積もりをすることができません まったく。したがって、fallback値は `-fallbackfee = <f>`で設定することができます (デフォルト: `0.0002`BTC / kB)。

Bitcoin Coreはいつでも `-maxtxfee = <x>`(デフォルト: 0.10)BTC。 さらに、Bitcoin Coreは、 現在の最低中継料金。 最後に、ユーザーは、すべての取引の最低料金を設定できます。 `-mintxfee = << nowiki> i </ nowiki >>`であり、これはデフォルトで1000 satoshis / kBです。


典型的なトランザクションは500バイトであることに注意してください。

ブロックに含める[編集]

このセクションでは、参照実装が新しいブロックに入れるトランザクションをデフォルト設定でどのように選択するかについて説明します。マイナーが、より多くの、またはより少ない空きトランザクションを含むより大きいまたはより小さいブロックを作成したい場合、すべての設定が変更される可能性があります。

次に、少なくとも0.00001BTC / kbの料金を支払うトランザクションがブロックに追加され、ブロックが最大75,000バイト以下になるまで、キロバイトあたりの最高額の取引が最初に行われます。

残っている取引は、鉱夫の「メモリプール」に残っており、その優先度や手数料が十分に大きければ、後のブロックに含まれる可能性があります。

Bitcoin Core 0.12.0ゼロバイトの場合<ref> https://github.com/bitcoin/bitcoin/blob/v0.12.0/doc/release-notes.md#relay-and-mining-priority-transactions </ ref>は、最高の priority transactionsのために確保されています。トランザクションはブロックのこのセクションに最も高い優先順位で最初に追加されます。

中継する[編集]

ピアツーピアネットワークを介してトランザクションをリレーするためのリファレンス実装のルールは、トランザクションが「フリー」とみなされるかどうかを決定するために0.00001のBTCの値が使用されるため、トランザクションを送信するルールに非常に似ています。ただし、すべての出力が0.01BTC以上でなければならないという規則は適用されない。ネットワーク上での "ペニー・フラッディング" DoS攻撃を防止するために、リファレンス・インプリメンテーションは、他のノードに(デフォルトで)15,000バイト/分でリレーするフリー・トランザクションの数を制限します。

設定[編集]

!セッティング!!デフォルト値(単位)
txconfirmtarget 2(ブロック)
paytxfee 0(BTC / kB)
mintxfee 0.00001(BTC / kB)
limitfreerelay 15(毎分千バイト)
minrelaytxfee 0.00001(BTC / kB)
blockmaxsize 750000(バイト)
ブロック最小化 0(バイト)
ブロックプライオリティサイズ 0(バイト)

料金プランを作成するサイト[編集]

2016年5月現在、以下のサイトでは、特定の数のブロックでトランザクションを取得するために必要な金額をsatoshi(kilo)バイト単位でプロットしているようです。これらのアルゴリズムはすべて、確率で機能することに注意してください。

その他の便利なサイト[編集]

  • https://anduck.net/bitcoin/fees/ - 最近のブロックをどのような手数料で埋める
  • https://btc.com/stats/unconfirmed-tx - ウェブサイトのmempoolの状態を有料料金で表示
  • https://jochen-hoenicke.de/queue/#1w - 有料のサイト別のmempool
  • https://esotericnonsense.com/ - まだ別のmempoolサイト、また非常に良い
  • http://mempool.us.to/tx.html - 確認されていないtxidがその料金率に基づいてキュー内のどこにあるかを伝えます(すべての鉱夫が同じアルゴリズムを使用しているわけではありません)
  • https://estimatefee.com/ - そのグラフのトランザクションをクリックすると、詳細情報(CPFPのために再帰的な祖先/子孫を使用する「実効料金率」など)とブロックの見積もり額を得ることができます確認のために取る。これは、bitcoin mempoolのトップ100MBのトランザクションで動作します。また、なぜそれが確認されないのだろうと思ったときに、情報のトランザクションtxidに入ることができます。

優先取引[編集]

歴史的に、すべての取引に料金を含める必要はありませんでした。鉱山者の大部分は、十分な「優先権」を持っていることを考えると、無償で取引を行うことになります。今日では、優先順位の低いものが主にスパム取引の指標として使用されており、ほとんどすべての鉱夫はすべての取引に料金を含むと予想しています。今日の鉱夫は、料金ベースでのみ取引する取引を選択します。

トランザクションの優先度は、入力加重の加重加重合計をトランザクションサイズ(バイト数)で割ったものとして計算されました。  優先度=合計(input_value_in_base_units * input_age)/ size_in_bytes トランザクションは、強制的な制限を回避するために57,600,000を超える優先度が必要でした(クライアントのバージョン0.3.21以降)。このしきい値はCOIN * 144/250としてコードに書かれています。これは、しきい値が1日前の1 btcコイン(144は1日あたりの予想ブロック数)と250バイトのトランザクションサイズを表していることを示しています。

したがって、たとえば、2つの入力、5つのbtcと10の確認、1つの2つのbtcと3つの確認を持ち、500バイトのサイズを持つトランザクションの優先度は、  (500000000×10 + 200000000×3)/ 500 = 1120,000

無料取引の歴史的ルール[編集]

これらの条件が満たされれば、無償で取引を送信することができました。

  • 1,000バイト未満です。
  • すべての出力は0.01BTC以上です。
  • その優先順位は十分です(上記参照)

関連項目[編集]

参考文献[編集]

<リファレンス/>

Category:技術 Category:Vocabulary カテゴリ:鉱業 de:Transaktionsgebühren