セキュリティ
Bitcoin への攻撃、妨害、破壊を試みる組織的な取り組みはあっただろうか? 安全であることをテストする一つの方法は、実際に二重支払い、偽造コインの作成、偽の取引の投稿などで破壊を試みることだ。欠陥が見つかるなら、Bitcoin 経済が大きくなって失うものが増える後よりも、今見つかる方がいい。
「本番」の Bitcoin ネットワークを壊そうとするのは悪いアイデアだ。
Bitcoin の拡張、互換実装の開発、不正な取引の作成による破壊テストに本格的に取り組み始める人がいるなら、独自のブロックチェーン、データディレクトリなどを持つ「パラレルユニバース」テストネットワークを作成するのが合理的だと思う。
サトシ:代替のジェネシスブロック、データディレクトリ、リッスンポート、IRC チャンネルに切り替える—testnetwork(か何か)フラグを受け入れる気はあるか? テストを速くするために、平均ブロック生成時間も非常に短く(10分に 1回ではなく 1分に 1回のように)して、すべてが 10倍速く進むようにするとか。
サトシ:代替のジェネシスブロック、データディレクトリ、リッスンポート、IRC チャンネルに切り替える—testnetwork(か何か)フラグを受け入れる気はあるか? テストを速くするために、平均ブロック生成時間も非常に短く(10分に 1回ではなく 1分に 1回のように)して、すべてが 10倍速く進むようにするとか。
賛成だが、ブロック生成時間は変更すべきではないと思う。本番ネットワークと同一であるべきだ。たとえばこれにより、テスターが特に低レイテンシーのノードを作成してシステムを妨害しようとすることが可能になり、結果を実際のネットワークに適用できる。
素晴らしいアイデアだギャビン!
これをどうやるか考え始める。
現時点では、-connect をある程度使える。-connect を使って LAN 上のローカルコンピューターに接続させることができる。例えば -connect=192.168.0.100 のように。空白の状態から始めてメインネットワークに接続させなければ、難易度は元の低い難易度のままだ。ただし、ポートフォワーディングをしている場合は、外部のノードがまだあなたにインバウンドで接続してくる可能性がある。
-connect を使ってもまだ IRC は使用されるが、-connect で特定のノードにのみ接続するよう指示している時は IRC に接続しないようにすべきだと思うか?-connect の主なシナリオは、サーバーファームがあり、2 台がネットワークに接続し、残りが最初の 2 台に接続するケースだ。その場合、-connect のコンピューターを IRC に接続させたくないだろう。
void ThreadIRCSeed(void* parg)
{
if (mapArgs.count("-connect"))
return; 実際、IRC チャンネルに留まっている意味があるのは、ポートフォワーディングをしているノードだけだろ?たぶん、php スクリプトか別のノード(こっちの方がいいアイデアかもしれない)にランダムに ping を送って、接続戻り(connect-back)が動作しているかどうかを YES/NO で返してもらって、必要なくなったら IRC スレッドを終了させる、みたいな感じでいいんじゃないか。ユーザーがポートフォワーディングの設定を変更する場合に備えて 6時間ごとに再プローブするとか、あるいは単にオプションにするのもありだな……
おお、そのアイデアは大いに気に入った、ラズロ。フォワーディングされていないクライアントが IRC でアイドル状態のままでいる理由はないからな。
Bitcoin への攻撃、妨害、破壊を試みる組織的な取り組みはあっただろうか? 安全であることをテストする一つの方法は、実際に二重支払い、偽造コインの作成、偽の取引の投稿などで破壊を試みることだ。欠陥が見つかるなら、Bitcoin 経済が大きくなって失うものが増える後よりも、今見つかる方がいい。
俺も同意する。ソフトウェアは精査される必要がある。
ひとつ、たまたま見かけたんだが、スーパーコンピューターの利用料金がこんな感じだ:
http://news.softpedia.com/news/Rent-Your-Own-Supercomputer-for-2-77-per-Hour-82166.shtml
1 コアあたり 1時間 2.77 ドル
俺は安全な暗号化を破ったり、proof-of-work のハッシュ計算で出し抜いたりすることについて詳しくないが、サトシは論文で、攻撃者がネットワークの過半数を支配しない限り破ることはできないと言っていた。
誰かがこのスーパーコンピューターか、もっと大きなものをレンタルして、たった 1時間分のレンタル料だけで理論的に bitcoin を弱体化させることができるんじゃないか、と思う。
俺のざっくりした計算では、攻撃者が俺のデュアルコアのようなマシンを 2,200 台所有していれば、理論的にはたった約 12,000 米ドルでネットワークを停止させることができる。
俺が間違っていることを願う。もっと詳しい人がここにコメントしてくれるといい。