本文へスキップ
buybitcoinsmart

用語集 / プライバシーとセキュリティ

ダストリミット

別名はDust limitです。

ダストリミットとは?
ダストリミットとは、ビットコインのアウトプットが保持できる最小額で、これを下回るアウトプットを作成するトランザクションはノードがリレーを拒否します。レガシーアドレスの場合は現在546サトシです。

ノードは、使用する価値がないほど小さい出力を生み出すトランザクションを破棄します。これにより、ネットワークが使用できない端数で埋め尽くされることを防ぎます。Bitcoin Coreは、将来の使用時の仮想バイト当たり3 サトシでダストリミットを算定しています。pay-to-public-key-hashの出力は546 サトシ、ネイティブSegWitは294、Taprootは330です。ウォレットが送金を拒否する場合、通常はこのルールが原因です。

仕組み

Bitcoin Coreはダストリミットを各出力に個別に適用し、1つの問いだけを立てます。すなわち、この出力を後で使用するコストが、出力の価値を上回るかどうかです。

計算はsrc/policy/policy.cppのGetDustThresholdにあります。ノードは、台帳上の出力のサイズに、最終的にその出力を使用するインプットのサイズを加え、それにDUST_RELAY_TX_FEE(キロ仮想バイト当たり3,000 サトシ、つまり3 sat/vBというポリシー定数)を掛けます。3つの一般的なスクリプトタイプについて計算してみます。

  • pay-to-public-key-hashの出力は34バイトで、使用するのに148仮想バイトを要するため、182 vbyteに3 sat/vBを掛けると546 サトシになります。
  • ネイティブSegWitの出力(bech32、bc1qで始まる)は31バイトで、そのインプットは約67 vbyteに割り引かれるため、98 vbyteとなり、294 サトシになります。
  • Taprootの出力(bc1p)は43バイトで、インプットは同じく割り引かれ、110 vbyteとなって330 サトシになります。

重要な点が2つあります。第一に、これはリレーポリシーであり、コンセンサスルールではありません。ダストを含むトランザクションを通常の経路外で受け取ったマイナーは、それをブロックに入れることができ、すべてのノードがそのブロックを受け入れます。第二に、OP_RETURNの出力は対象外です。証明可能な形で使用できず、支払うべき将来のインプットが存在しないためです。

また、手数料市場が動いても、このしきい値は動いていません。200 sat/vBの急騰時には、同じレガシー出力の使用に約29,600 サトシかかるため、ネットワークがそれをダストと呼ぶよりはるか前に、経済的に死んでいます。

どこで見られるか

ダストリミットは、概念としてではなく、ほぼ常にエラーメッセージとして現れます。

ウォレットは「amount below dust threshold」「output too small」といった表現を使うか、単に送金ボタンをグレーアウトします。Bitcoin Coreとほとんどのウォレットソフトウェアは、おつりにも黙ってこれを適用します。支払いの残りがしきい値を下回る場合、ウォレットはおつりの出力を破棄し、誰も使用できないものを作る代わりに、その価値を追加の手数料としてマイナーに渡します。

取引所はそもそもダストリミットをはるかに上回っています。出金の最低額はポリシーではなく、リクエストを処理する取引所自身のコストによって決まるため、546 サトシに達するよりはるかに前に、0.0001 BTCや10ドルの下限に当たります。

ライトニングネットワークには、このルールの独自版があります。各チャネルはdust_limit_satoshisの値を交渉し、BOLT 2はアンカー出力を使うチャネルに少なくとも354 サトシを要求します。この上限を下回る支払いには、コミットメントトランザクション内に出力が一切作られません。そのような支払いが進行中にチャネルが強制クローズされると、その金額は手数料としてマイナーに渡ります。

ダストリミットvsダスト

ダストはコインであり、ダストリミットはコインに関するルールです。日常的な用法では、ダストとは現在の手数料では使用する価値がないほど小さい出力を指し、その線はメモリプールが満杯になるたびに動きます。ダストリミットはまったく動かない固定のポリシー定数です。この差があるため、ネットワークが問題なくリレーした出力を保有していても、それを使用するのは採算が合わないとわかるのです。

ダストリミットvs最小リレー手数料

最小リレー手数料はトランザクション全体に対する下限で、既定値はキロ仮想バイト当たり1,000 サトシ、つまり1 sat/vBです。ダストリミットは単一の出力に対する下限で、意図的に高い3 sat/vBを用いるため、出力は、それが作られたときよりやや悪い状況でもなお使用可能な場合にのみ作成されます。トランザクションはリレー手数料を余裕をもって満たしても、200 サトシの出力がダストチェックに通らなかったために拒否されることがあります。

混同しやすい用語

よくある質問

ダストリミットが546サトシなのはなぜですか?

546が、3サトシ/仮想バイトでレガシーのpay-to-public-key-hashアウトプットを消費するコストだからです。アウトプットとそれを消費するインプットを合わせると182仮想バイトになり、Bitcoin Coreはそれにキロ仮想バイトあたり3,000サトシのダストリレー手数料を掛けます。

ダストリミットを下回るアウトプットでも消費できますか?

すでに保有している場合は、消費できます。この上限はリレー時にそのようなアウトプットの作成を妨げるものであり、すでに存在するアウトプットを凍結するものではありません。その消費は通常、価値よりも手数料のほうが高くつきますが、それがこのルールの狙いです。

ダストリミットはネットワーク手数料によって変わりますか?

いいえ。固定のポリシー定数であるため、実際の手数料が1から数百サトシ/仮想バイトの間で動いても、アドレスの種類に応じて546、294、330サトシのままです。

関連用語

プライバシーとセキュリティのその他の用語

このページを英語で読む