トランザクション/スパムフラッド攻撃が現在進行中

何者かがビットコインのメインネットワークを 0.01 BTC のトランザクション(A→A および B→B、A と B はランダムな公開鍵)で溢れさせることで「テスト」しているようである。http://theymos.ath.cx:64150/bbe で確認できる。

多くのブロックにわたって無料トランザクションの上限に達している——1 ブロックあたり約 219件の無料トランザクションと見られる。「実際の」トランザクションは現時点では DoS 攻撃を受けていないようであるが、これはおそらくトランザクション金額に基づいて部分的に優先処理するロジックのおかげであろう。

無料トランザクションはスパムの恒常的な発生を招いているだけである。たとえ 0.001 BTC であっても、各トランザクションにコストを課すべきである。
MoonShadow 2010年11月19日 20:29 UTC 原文 ·

最近実装された年齢優先ルールに加えて、取引手数料なしの最低年齢ルールがあるべきかもしれない。別の言い方をすれば、無料取引は再び無料で送金される前に 3 ブロック深くなければならないという生成ルールだ。これでも実際のユーザーは必要に応じて新しい資金をすぐに使えるし、実際のユーザーがニーズに合わせて資金を再シャッフルすることも追加コストなしで許容される。現在進行中のスパム攻撃を大幅に抑制できると思う。

Timo Y 2010年11月19日 20:30 UTC 原文 ·

取引手数料の自由市場では、ネットワークのスパムは全員の取引手数料を上昇させる効果がある。

Mr. Burns は単なる嫌がらせ屋以上かもしれない。より合理的な動機を持つマイナーかもしれない。

マイナーはスパムによって失うものよりも得るものの方が多い。最終的にはスパム均衡に達するが、それはマクロ経済的には最適でない状況だ。

この http://en.wikipedia.org/wiki/Social_trap 社会的罠から脱出するには、市場以上のものが必要だ。

シンプルだが効果的なルールを Bitcoin のプロトコル/仕様自体にハードコードして、スパムの過剰を抑制すべきだ。

このアプローチはこのフォーラムの自由市場愛好者にとっては「トップダウン」すぎると聞こえるかもしれないが、ルールはもちろん完全に自発的で合意に基づくべきであり、すでにある 2100 万ルールと同様だ。

MoonShadow 2010年11月19日 20:43 UTC 原文 ·

[Deleted] Quote from: davidonpda on November 19, 2010, 08:35:15 PM

creightoの投稿(2010年11月19日 11:29 UTC)

最近実装された年齢優先ルールに加えて、取引手数料なしの最低年齢ルールがあるべきかもしれない。別の言い方をすれば、無料取引は再び無料で送金される前に3ブロック深くなければならないという生成ルールだ。これでも実際のユーザーは必要に応じて新しい資金をすぐに使えるし、実際のユーザーがニーズに合わせて資金を再シャッフルすることも追加コストなしで許容される。現在進行中のスパム攻撃を大幅に抑制できると思う。

それでは人々が再び資金に拘束されてしまうかもしれない。MtGoxやBitcoin Faucetのことを考えてみてほしい。Faucetは3ブロックごとにしかニッケルを送れない。なぜならニッケルを送るたびにお釣りを新しいアドレスに送り、3ブロック分取引手数料なしでの送金が拘束されるからだ。

少しだけだ。ルールが一般的に知られており、その理由もわかっているなら、Bitcoin Faucet のようなところは調整できると思う。コインの移動に基づく制限が可能なら、特定のアドレスに対する 3 ブロック禁止ではなく、そうしたいと思っている。新しいクライアントには 100 のアドレスがあるよね? Bitcoin Faucet が各アドレスに 0.05 BTC 以上持っていて、リクエストが来るたびにアドレスをローテーションすれば、30分で 100件のリクエストを遅延なく処理でき、遅延ありならさらに多く処理できる。取引が作成できないと言っているのではなく、手数料なしでは、依存する取引が 3 ブロック深くなるまで生成者がブロックに入れないということだ。手数料があれば何でもできる。これにより無料取引の可能性は開かれたまま、スパムは抑制される。

EDIT: 引き出しリクエストを処理しようとしているマーケットは、過去 30分間に送信されたリクエスト数を把握しており、このルールによりリクエストが遅延する可能性があると依頼者に警告するか、手数料を支払うかを選択できる。

RHorning 2010年11月19日 21:36 UTC 原文 ·
davidonpdaからの引用(2010年11月19日 08:10 UTC)

RHorningのコメントのいくつかに対する返答:

トランザクション手数料は常にマイナーが決めるべきだ。誰かが高い上限を設定していても、別の誰かがもっと安くやってくれて、後のブロックに取り込まれる。

GUIからトランザクション手数料を簡単に追加できる方法が必要だし、可能であればマイナーが最低トランザクション手数料を指定できる簡単な方法も必要だ。後者は前者ほど重要ではない。

この仕組みで、どうやってトランザクション手数料を「比較検討」するんだ? 正直、この仕組みがどう動くのかかなり混乱している。

たとえば、マイナーが hash の生成に成功したとして、そのマイナーが 95%のトランザクション手数料を「請求」するのを何が止めるんだ? そのトランザクションがブロックに取り込まれてネットワークに承認されるのを、何が防ぐんだ?

「この手数料は払いたくない」と言って、単に待つことでもっと安い手数料のマイナーを「探す」方法はあるのか?

これは興味深い DOS 攻撃の可能性も生む。大量のコンピューターを持つマイナーが非常に高いトランザクション手数料を請求し、取引を遅延させたり、場合によっては完全に停止させたりできるかもしれない。それを防ぐには、自分でも大量のコンピューターを用意して、手数料なしで自分のトランザクションをネットワークに入れるための hash 生成に成功することを祈るしかないのだろう(友人や自分のアドレスへの手数料を選択的に設定できると仮定して)。

これはユーザーインターフェースに組み込めるものなのか? 支払ってもいい手数料を「選択」できるような仕組みだ。

RHorningの投稿(2010年11月19日 12:36 UTC)

これは興味深い DOS 攻撃の可能性も生む。大量のコンピューターを持つマイナーが非常に高いトランザクション手数料を請求し、取引を遅延させたり、場合によっては完全に停止させたりできるかもしれない。それを防ぐには、自分でも大量のコンピューターを用意して、手数料なしで自分のトランザクションをネットワークに入れるための hash 生成に成功することを祈るしかないのだろう(友人や自分のアドレスへの手数料を選択的に設定できると仮定して)。

まあ、ネットワークの CPU パワーの 50%超を持っていれば、何でもできる。

RHorning 2010年11月19日 21:50 UTC 原文 ·
ジェフ・ガージックの投稿(2010年11月19日 12:37 UTC)

まあ、ネットワークの CPU パワーの 50%超を持っていれば、何でもできる。

これはネットワークの CPU パワーの 50%すら必要ない。20%あれば、サービスを大幅に劣化させてネットワークを「減速」させ、残りのネットワークの難易度を大幅に引き上げるのに十分だ。とはいえ、高額な手数料や不可能な手数料を許容するトランザクションだけを受け入れることで、潜在的なトランザクション手数料を見逃すのは愚かなことだろう。

この辺りの理解が本当にごちゃごちゃしていて、手数料がどう決まるのか、アドレスと金額を入力して誰かにビットコインを送ろうとしたときに何が起こるのか、正直よくわかっていない。

creightoの投稿(2010年11月19日 11:29 UTC)

最近実装された年齢優先ルールに加えて、取引手数料なしの最低年齢ルールがあるべきかもしれない。別の言い方をすれば、無料取引は再び無料で送金される前に 3 ブロック深くなければならないという生成ルールだ。これでも実際のユーザーは必要に応じて新しい資金をすぐに使えるし、実際のユーザーがニーズに合わせて資金を再シャッフルすることも追加コストなしで許容される。現在進行中のスパム攻撃を大幅に抑制できると思う。

そのようなことをしている。優先度は、あなたが説明しているコンセプトのより形式化されたバージョンだ。

FreeMoneyの投稿(2010年11月19日 08:39 UTC)

現状では、バージョン 3.15 には無料トランザクション用の領域が多く確保されており、その領域は [age][value]/[size]が最も高いトランザクションから優先的に割り当てられる、という理解で正しいだろうか? 無料領域の一部について、[age][value]/[size] > C を要求するようにするのは妥当ではないだろうか。

C を設定して、標準的な 1BTC トランザクションが次のブロックでメインの無料エリアに入れるようにする。そして 0.1 は約 10 ブロック待てば入れるようにする。そして[経過時間]*[価値]/[サイズ] < C を許可するエリアに約 12件程度のトランザクションを入れるようにする。 はい、このような感じだ。そして優先度要件なしのエリアは 3K で、1 ブロックあたり約 12件のトランザクションだ。

SVN rev 185 をアップロードした。無料トランザクションに最小優先度要件が含まれている。トランザクションフラッドはコインが何度も再使用されて構成されるため、0 承認のトランザクションに繰り返し依存する。0 承認のトランザクションは優先度0 なので、そのような無料トランザクションは一度に 1 つずつブロックに入るのを待たなければならない。

バージョン 0.3.15 は、それしか残っていない場合を除き、0 承認の依存関係を使用するトランザクションを書き込まないため、通常のユーザーはこの問題に遭遇しないはずだ。

これはデフォルト手数料を 0.01 にすることに次ぐ良い妥協案だと思う。無料トランザクションで同じコインをどの程度の頻度で使用できるかに制限があるのは、それほど無理な要求ではない。無料トランザクションを使用しているなら、慈善を受けているのであり、同じコインでの使用頻度に何らかの制限が必要だ。

無料トランザクションはより遅く処理される可能性があることは常に言ってきた。-paytxfee=0.01 を追加することで、トランザクションが迅速に処理されることを確保できる。

MoonShadow 2010年11月20日 00:06 UTC 原文 ·

見事だ!

サトシ・ナカモトの投稿(2010年11月19日 23:50 UTC)

無料トランザクションはより遅く処理される可能性があることは常に言ってきた。-paytxfee=0.01 を追加することで、トランザクションが迅速に処理されることを確保できる。

良い解決策だ。 これを GUI で明確に表示するともっと良い! コマンドラインオプションとして隠しておくのではなく 😊

Anonymous 2010年11月20日 14:01 UTC 原文 ·
FreeMoneyからの引用(2010年11月19日 20:12 UTC)

MrBurnsはおそらく10万コインを買う前に何が起こるか確認しているだけだ。

スプリングフィールド原発を買い戻すつもりなのではないか?

😛