Freenet

初期状態では、Darknetのロケーションはランダムに分散されています。 これは、リクエストのルーティングが基本的にランダムであることを意味します。 Opennet では、接続は、既存のネットワークがすでに最適化されている場合、最適化されたネットワーク構造を提供する参加要求によって確立されます。

Location Swapping (on Darknet) と Path folding (on Opennet) が進むにつれて、互いに近い位置にあるノードはますます近い位置になり、遠い位置にあるノードは遠い位置にあることになります。 その結果、ネットワークは、ノードがキー空間内で近いデータ項目を保持する傾向がある分散クラスター構造に自己組織化されます。 おそらく、ネットワーク全体に複数のそのようなクラスタが存在し、任意のドキュメントが、それがどのくらい使用されるかに応じて何度も複製されることになります。 これは一種の「自発的対称性の破れ」であり、最初は対称的な状態 (すべてのノードが同じで、互いの初期キーがランダム) から、ノードが密接に関連するキーを持つデータに特化するようになり、非常に非対称な状況になる。 これらの力は、データの使用頻度によって異なり、あまり使われないデータはそのデータを専門に提供する少数のノードに、頻繁に使われるものはネットワーク全体に広く行き渡る傾向があります。 この自動ミラーリングにより、Web トラフィックが過負荷になる時間を打ち消し、成熟したネットワークのインテリジェントなルーティングにより、サイズ n のネットワークは平均してドキュメントを取得するのに log(n) 時間しか必要としないはずです。 したがって、キーが何らかの意味を示す場合のように、 キーの近さとデータの類似した人気との間に相関はなく、 人気のある主題によるボトルネックを避けることができる。

Freenetで使われているキーには主に2種類、 コンテンツハッシュキー (CHK) とサインサブスペースキー (SSK) がある。 SSK のサブタイプは Updatable Subspace Key (USK) で、コンテンツの安全な更新を可能にするバージョン管理を追加します。

CHK はドキュメントの SHA-256 ハッシュ (暗号化後、それ自体は平文のハッシュに依存) で、したがってノードはドキュメントをハッシュ化してキーに対するダイジェストをチェックすることにより返されたドキュメントが正しいことをチェックすることができます。 この鍵はFreenet上のデータの本質を含んでいます。 これは、再組み立てと復号化のためにクライアントに配信されるコンテンツのためのすべてのバイナリデータのビルディングブロックを運びます。 CHKは本質的にユニークであり、改ざんされないコンテンツを提供します。 敵対するノードがCHKの下にあるデータを変更すると、次のノードまたはクライアントによって直ちに検出されます。 CHKはまた、同じデータが同じCHKを持ち、複数のサイトが同じ大きなファイルを参照するとき、それらは同じCHKを参照することができるので、データの冗長性を減らす。

SSK は公開鍵暗号方式に基づいている。 現在、Freenet は DSA アルゴリズムを使用しています。 SSK の下に挿入された文書は挿入者によって署名され、この署名はデータが改ざんされていないことを保証するために、すべてのノードによって検証されることができます。 SSK は、Freenet 上で検証可能な偽名 ID を確立するために使用でき、一人で複数のドキュメントを安全に挿入することができます。 SSKで挿入されたファイルは事実上不変であり、同じ名前の2つ目のファイルを挿入すると衝突が発生する可能性があるからです。 USKは、鍵にバージョン番号を付加することでこの問題を解決している。このバージョン番号は、Webインタフェースでブックマークとして登録された鍵の更新通知にも使用される。 SSKのもう一つのサブタイプはKeyword Signed Key(KSK)で、これは人間が読める単純な文字列から標準的な方法でキー・ペアを生成するものである。 KSKを使用して文書を挿入すると、要求者が人間が読める文字列を知っている場合に限り、文書を検索して復号することができる。

Leave a Reply