フラッド攻撃 0.00000001 BC

6 件のメッセージ サトシ・ナカモト 2010年8月4日 — 2010年8月11日

Quote from: Insti on August 04, 2010, 02:58:31 PMbytemasterが提案しているようなマイクロペイメントの実装を妨げるため、害の方が大きいようです。Bitcoinは現時点で非常に小額のマイクロペイメントには実用的ではない。集約メカニズムなしでの検索ごと・ページビューごとの支払いのような、0.01未満の支払いが必要なものには向いていない。ダストスパム制限は、そのような過度に小さなマイクロペイメントを意図的に防ごうとする最初の試みだ。

Bitcoinは既存の決済手段で実用的なものよりも小さなトランザクションに対して実用的だ。マイクロペイメント範囲の上位と呼べるものを含むのに十分な小ささだ。しかし、任意に小さなマイクロペイメントに対して実用的であるとは主張していない。

マイクロペイメントについての良い部分を書き忘れた。現時点ではBitcoinがより小さなマイクロペイメントに実用的だとは思わないが、ストレージと帯域幅のコストが下がり続けるにつれて、いずれそうなるだろう。Bitcoinが大規模に普及すれば、その頃にはすでにそうなっているかもしれない。もう一つの実用化の方法は、クライアント専用モードを実装し、ネットワークノードの数がより少数のプロフェッショナルなサーバーファームに集約されることだ。必要なサイズのマイクロペイメントはいずれ実用的になるだろう。5年か10年で、帯域幅とストレージは些細なものに見えるようになると思う。

ネットワークがDoS攻撃に対して無敵だとは主張していない。ほとんどのP2Pネットワークは多くの方法でDoS攻撃を受ける可能性があると思う。(余談だが、レコード会社がすべてのファイル共有ネットワークにDoS攻撃をしたいと考えているが、ハッキング防止/濫用防止法に違反したくないという記事を読んだ。)

無駄なトランザクションを大量に往復させるDoS攻撃を受け始めた場合、最低0.01のトランザクション手数料を支払い始める必要があるだろう。バージョン0.1.5にはそれを設定するオプションがあったが、混乱を減らすために削除した。無料トランザクションは素晴らしいことであり、人々が濫用しない限りそのままにしておける。

ここで疑問が生じる:各トランザクションに最低0.01の手数料がある場合、最低限の0.01であれば自動的に手数料を追加すべきだろうか? 毎回尋ねるのは非常に面倒だろう。50.00持っていて10.00送る場合、受取人は10.00を受け取り、残りは39.99になる。自動的に追加すべきだと思う。他の多くの種類のサービスが自動的に追加する手数料と比べれば些細なものだ。

Quote from: FreeMoney on August 04, 2010, 07:30:32 PMより多くのトランザクションを含めるとハッシュレートが低下しますか? いいえ、全くしない。

Quote from: bytemaster支払いは一般的に前払いで、例えば一度に1 BTCを支払い、接続が閉じられた時にお釣りが返されます。このルールでは、追加のトランザクションなしに単純な「検索クエリ」の支払いは不可能になります。 代替案の一つは、まとめ払いシステムを使うことだ。例えば一度に1000ページ、画像、ダウンロード、検索などを支払う。1000ページを使い切ったら、さらに1000ページ分を支払う。1ページしか使わなければ、使わないかもしれない999ページ分が残るが、1000ページあたりのコストはまだ小さいので大した問題ではない。

あるいは日単位で支払うこともできる。特定の日にサイトに初めてアクセスした時、24時間分のアクセスを支払う。

1000単位や日単位は消費者にとっても理解しやすいかもしれない。アイテム単位だと加算が速すぎないか心配するが、24時間無制限ならコストがわかる。あるいは1000が十分な量に思えれば、おそらく使い切らないだろうと思って、クリックするたびにコストがかかることを心配しなくて済む。

Quote from: bytemaster on August 05, 2010, 03:39:19 PMこの問題の唯一の解決策は、トランザクションのブロードキャストを「無料でなくする」ことです。つまり、含めてほしいなら私に支払わなければなりません。最終的な結果として、各クライアントはブロックに含める人だけでなく、トランザクションを送信する相手の他のクライアントにも支払う必要があります。このようにして経済法則が働き、トランザクションブロードキャストシステムにただ乗りする人はいなくなります。 それを実装する方法がわからない。ブロック作成者へのトランザクション手数料は、追加サイズなしでトランザクション手数料を含める特別なトリックを使っている。各トランザクション手数料に対してトランザクションがあるとしたら、トランザクション手数料のトランザクションに対するトランザクション手数料はどうなるのだろうか?

Quote from: bytemaster on August 05, 2010, 04:46:52 PM現在、トランザクション手数料のアドレスは「空白」のままで、ブロック生成者が記入します。 今度はブロックの構築を依頼する相手のアドレスを記入することになります。 一人だけにブロックの構築を依頼するなら、何日もかかる可能性がある。ああ、各ノードに手数料を書き込んだ異なるバリエーションを送るということか?

現在の仕組みでは、これを構築した人が手数料を得る。

必要であれば、トランザクションブロードキャストにBitTorrent式の相互主義を導入できるだろう。手数料付きトランザクションを私にリレーしてくれなければ、あなたにもリレーしない。ただし、実際には問題にならないだろう。正しくリレーする1つのノードがあれば、貪欲にリレーしない他の7つのノードを相殺できる。

できる限りblk*.datファイルを小さく保てると良いな。

最終的な解決策は、大きくなっても気にしないことだ。

でも今はまだ小さいうちに、新しいユーザーがより早く始められるよう小さく保つのは良いことだ。クライアント専用モードを最終的に実装すれば、それはあまり問題にならなくなる。

トランザクション手数料についてはまだ作業が必要だ。フラッドが起きた場合でも、0.01のトランザクション手数料を支払うことで、キューを飛ばして次のブロックにトランザクションを入れることができるだろう。ただし、そのオプションをUIに追加する時間がまだなかった。

規模に関わらず、テストネットワークも同様の反応をするが、帯域幅の無駄と迷惑ははるかに少なくなる。