Re: レイテンシーと局所性

Redの投稿(2010年8月6日 15:19 UTC)

このアイデアを頭ごなしに否定する理由を探せば、見つかるだろう。しかし、なぜ一部のP2Pシステムは成功し、多くは失敗するのかを理解するためにこの例を使えば、何かしらの洞察が得られるはずだ。

ここでまた混乱した。あなたのスキームにはブロックはなく、トランザクションだけだと思っていた。先に「ブロック」を解くとはどういう意味か?

しかし、標準的な DHT は通常 MP3 や映画のチャンクを保存するために使われ、各ピースのハッシュを持つトレントファイルによってインデックスされる。だから、特定の DHT ノードから不正なデータを受け取っているかどうかを簡単に判別できる。信頼する必要はない。

えっと?ネットワークに 10,000 ノードがあるとしよう。二重支払いしたいトランザクションに最も近いネットワークノードを見つけるためにクエリを行う。

そこで秘密鍵を生成する。現在最も近いノードよりも近くなる確率は約 1/10,000 だ。だから近い鍵を 5 つ見つけるまで秘密鍵を生成し続ける。確率を今から計算する余裕はないが、100,000 の秘密鍵を生成すれば、5 つ見つかる可能性はかなり高い。私のしょぼいラップトップでも少なくとも毎秒100 の ECC 鍵を生成できるので、20分もあれば 100,000 を生成できる。

それらの鍵で 5 つのノードを作成し(ネットワークの残りに「正直に言うと、これらの鍵はランダムに選んだんだ…」と言いながら)、勝利だ。

特定のハッシュを持つトランザクションを生成しようとしているのではなく、現在ネットワーク上の他のどのノードよりもそのトランザクションのハッシュに「近い」ノード ID を生成しようとしている。それはずっと簡単だ。