2011-07-25 16 views
7

私は、ユーザーの吟味(ビットコインに似ています)とスパム/ ddos​​の規制のための特定のレベルの作業証明が必要なP2Pネットワークを設計することを考えています。 p2pの性質上、私が見てきた実現可能なPOWアーキテクチャは、ソリューション検証モデルだけです。他のモデル(チャレンジレスポンス)はシビルの攻撃を受けやすいので、私はそれらを考慮していません。GPU-「証明」ハッシュ関数?

ハッシュ逆転は優れた方法ですが、GPUハッシングの問題はプロトコルの公平性を数桁も失ってしまいます。このため、私はGPUを使用して現代的なマルチコアCPUの能力を超えて加速するのは難しい/実行不可能なハッシュアルゴリズムを特定しようとしています。

アイデア?

答えて

5

5% の計算とグローバル共有メモリへの95%ランダムアクセスのため、私のCuckoo Cycleの仕事証明のスキームはこの法案に合っているようで、長時間の待ち時間が発生します( )。 GPUメモリは限られており、レイテンシが非常に悪く、数十個以上のGPUコアをビジー状態に保つためには、 の計算が不十分です。

その他の機能:任意のRAMを必要とし、即座に検証可能です。

ホワイトペーパーと実装については、https://github.com/tromp/cuckooを参照してください。

+0

優れた作品! –

+0

興味深いですが、大きな疑問は、それを暗号化ハッシュアルゴリズムとして切り捨てるのか、それとも弱点があるのでしょうか? –

+0

ハッシュアルゴリズムではありません。おそらくhttp://cryptorials.io/beyond-hashcash-proof-work-theres-mining-hashing(ハッシングより多くのマイニングがあります)があなたの混乱を説明しています... –

2

現在のところ、デプロイされたハッシュ関数はGPUアクセラレーションが容易であり、より新しい/より長い/より長いハッシュ関数は(最新のハードウェアの制限のため)そうではありません。 。

私が最初にお勧めするのは、アプリケーションに「正の整数」で識別される「ハッシュスイート」を提供することです。時間が経つにつれて、より新しい、より高価なオペレーションに切り替えることができ、新しいソフトウェアがより低い番号のハッシュスイートからのプルーフを受け入れなくなります。

また、非伝統的であること。おそらく、すべての新しいSHA-3候補の組み合わせを使用してください(それらのすべてがいくつかのカスケーディングシリーズで使用されています)。ブロック暗号ハッシュアルゴリズムを使用します(AESは即時ハッシュ関数に変換できます)。多数のラウンドを行います。おそらく、非常に大きなRSAキー(4096ビット以上、独自の "スローアウェイ"キーが必要)による署名が必要です。

あなたは時間を購入しているので、廃止の仕組みは実際のアルゴリズムの選択よりも実質的に重要です。

+0

私は今のところかなり良い候補であると思われるもの見つけた... http://www.usenix.org/event/usenix99/provos/provos_html/node4.html困難ができるよう 鍵スケジュールは可変ですそれぞれの実行にはSボックス用に4KBのメモリが必要であるため、GPUはこれを並列処理するのに非常に苦労するはずです。 –

0

ハッシュ関数がさまざまなラウンド数(通常は数千)を持つBCryptのようなものをお勧めします。アルゴリズムの核心部分のハッシュ関数が安全である限り、単純にラウンド数を増やすことによって、時間が進むにつれブルートフォースに対してより耐性にすることができます。