| The Free Network Project |
T h e F r e e N e t w o r k P r o j e c t H o m e p a g e |
|
Freenetについてよくある質問(FAQ)
1. 概念と哲学1.1. Freenetって何?"Freenet"プロジェクトはIan Clarkeの論文「A Distributed Decentralised Information Storage and Retrieval System: 非集中分散型の情報の保存と検索のシステム」に記述されているプロトコルを元に World Wide Webのような(でもいくつかはそれを上回る)情報公開システムの構築を目的としている。情報は"key"に関連付けられシステムへ挿入される。(通常"/text/philosophy/sun tzu/the art of war"のような形式で情報の説明が付く)その後、他の誰もが適当なキーを使って情報を検索することができる。この点で特定の文書の検索にURLが必要なWorld Wide Webに少し類似している。 Webと異なるのは、Freenet上の情報は固定された場所に保存されたり、いかなる中央集権的な規制に従属したりしない。Freenetはお望みに応じて情報を保存、キャッシュ、分散するような世界規模の情報保存技術の一つである。これにより、Freenetはいくつかの機能でWebよりも効率が良く、また個人の文書は物理的に保存されている場所や情報源を突き止めることは不可能なので検閲を恐れることなく情報を公開したり読んだりすることができる。このシステムに参加するにはユーザは自分のコンピュータで小さなサーバ、オプションとしてそのシステムに情報を挿入したり削除するためのクライアントを走らせる必要がある。オープンなプロトコルなので誰もがクライアント(あるいは実はサーバ)を書くことが出来る。このようなプログラムの実装の参考としてJavaプログラミング言語で書かれたものがある。 1.2. Freenetはどうして面白いの?
1.3. Freenetを陰で支えてるのは誰?Ian Clarke がこのプロジェクトの調整役をしている。他の開発者の名前はFreenetのウェブサイトの最初のページに載っていて、ボラインティアがプロジェクトに参加したり脱退するにつれ変化する。 1.4. Freenetのもっと詳しい情報をどこで見つけられる?Freenetのホームページはhttp://freenet.sourceforge.net/を見て下さい。そこからFreenetに関する他の文書を見たり、議論のためのグループへ参加したり、ソフトウェアをダウンロードしたり、ほかにもいろいろできたりする。 1.5. Freenetは犯罪と海賊行為の天国なんじゃない?Freenetは言論の自由を実現するものでそれ以上のものではない。それはそれがなければ起きないかもしれない犯罪行為を可能にしたり推奨するものではないし、むしろ犯罪への理解や取り扱いを深めるのに役立つだろう。私達が望むことは専制的な政府の下にいる人々が報復されずに彼らの惨状を説明するのにFreenetを使ったり、あるいはテロリストがFreenet上で彼らがビルを爆破したり飛行機をハイジャックする道を選択した理由をFreenet上で公開することができる。しかしテロリストはいづれにせよ別の方法を使うだろう。つまりFreenet上の文書はNew York Timesへの匿名の手紙のようなものだが---常に公開されている。このような活動がよりオープンになれば大衆はこのような人々や彼らの動機をより知ることが出来るかもしれない。Ted Kaczynskiが匿名で自分の声明を公開したあとになってやっと"Unabomber"であるとわかったということを忘れないで欲しい。 著作権のある情報の共有は同様の問題である。つまりネットワークはシェイクスピアのソネットやバッハのフーガのような公開領域の文書とスティーブンキングの小説やカルロスサンタナの歌のような著作権のある作品との違いを知らない。前者の共有が容易になるので後者の共有も容易になる。このことはラジオや複写機やテレビや写真複写機や磁気テープやコンパクトディスクやビデオカセットレコーダーや他の多くのテクノロジーが情報の共有を容易にしてきたように伝統的な出版産業やレコード産業に脅威として受け止められている。Freenetはこれらの技術で我々がしてきたことと何ら違いはなく、それは情報の共有をより効率よくしたものである。アーティストや出版者はみなこれらの新しい技術に適応し、どのように使って利益を上げるかを学習してきた。したがって同様に彼らはFreenetにも適応することだろう。 1.6. でも、それでもテロリズム / 幼児ポルノ / 誹謗中傷 / 著作権侵害を心配してしまうんだけどFreenetは自由に世界へ情報を公開するためのメディアである。テロリストらは既に秘密裏にコミュニケーションをする独自の手段を持っており、自分達の秘密計画を世界中に知らせたいなどとは思わないだろう。同様にポルノグラファーはらは画像を売るビジネスをしている。タダでそれらを配信しても利益は得られない。もし彼らが幼児虐待に関する役立つ新しい情報を投げれば、警察が彼らを捕まえるのに役立つだけである。 Freenet上での誹謗中傷文はその他のメディアで出回っているものと大差はない。情報は一旦投稿されれば削除されないが、新聞についても同様のことが言える。新聞で公に前言撤回ができるように、Freenetでも投稿を撤回することができる。Freenetでは匿名の誹謗中傷ができるようになっているが、匿名文は普通評判としては属性のある文と比較すると小さなインパクトにしかならない。いづれにせよ、他の大方のメディアの場合とは違い、投稿は告訴人と対等な立場で応答がない。 さらに言うと、読者に要求されない誹謗中傷文は結局他のFreenet文書のように消えることになる。 Freenetは著作権の侵害を幇助してしまう可能性があるが、この戦いはすでに無駄になってしまった。非常に多くの著作権のある音楽やビデオファイルはもう毎日web上で取引されている。— それはFreenetが存在しなくても変わらない。加えて複製行為の大半はオンラインではなく昔ながらの産業規模の物理的なCDのプレスなどのオフラインで行われている。 最後に、Freenetは孤立状態では存在しない。多くの人がノードになることにつれ効率的になる。もし、ほとんどの人がFreenetに魅力を感じず、Freenetに参加したくないと思ったら、Freenetは小さく些細なものになるだろう(我々はそうならないことを望むが!)。ノードの所有者による"自己検閲"で自分のマシンからコンテンツを削除できるようにしようという提案もある。もちろん、あなたの個人的な意見を他のノードに強要できないだろう。 2. 技術的詳細2.1. Freenetはどうやって名前空間を管理しているの?Freenetでは名前空間を管理していない。名前空間を管理するための数多くの提案がなされてきたが、名前空間を"管理する"ことは中央集権的な規制を示唆するという問題がある。キーをデータのハッシュにするとこの問題は解決するが、同時に新たな問題を発生させてしまう。しばらくの間、現行の仕組みは名前を「始めに来たものを始めに取り出す」に基づいて、DNSスタイルの仕組みの悪用を防止するようにちょっと民主主義的に扱われる。これはおそらく次のバージョンで議論されるべき大きな問題である。 2.2. Freenetは検索可能なの?検索の仕組みはまだ実装されていない。設計目標の一つは、いかなる情報のかけらも何処に保存されているか正確な場所を特定できないようにすることである。サーバのオペレータでさえ彼自身のノードに何が保存されているか同定することはできない。このことで自然と検索が非常に困難になってしまう。情報は今のところわかりやすい、あるいは何か別の方法によってやり取りされる"keys"により取り出される。 安全な検索とインデックスの能力をFreenetに追加する提案が将来に向け議論されている。たとえばFreenetの文書はwebと同じく蜘蛛の巣状になるようにハイパーリンクを含めることも検討されている。他にもキーワードのリストや他のメタデータがネットワーク上を流通するようになるかもしれない。 2.3. Freenetは文書を更新 / 削除できる?現在のところ、既にあるものと同じ名前でFreenetに投稿された文書は実際には現存する文書を伝播するのに役立つかもしれない。また今のところFreenetから文書を削除する方法はない。全く要求されない文書は、最終的には使われないことで削除される。 もっと便利な仕組みの提案が評価されている最中で、それらのうち一つがおそらく次期バージョンのプロトコルに実装される予定だ。例えば、文書はオプションでpublic keyを付けて挿入され、相当するprivate keyによって署名された更新のみ承諾されるということになるかもしれない。署名付でない文書は不変になる。また何らかのバージョン管理システムによって、以前のバージョンの文書全てを追跡しつづけるようになるかもしれない。 2.4. Freenetはどのように文書やディスク空間を管理するの?各々のサーバのオペレータは、Freenetが彼のシステム上で使用する保存空間の最大値を特定します。これはディスク上かもしれないし、(偏執狂の人の場合)RAM上のみかもしれません。保存空間が限界値に達すると、最も人気のない文書(要求関数を計測する機能によって)が空き空間を作るために捨てられます。 2.5. どうして重要な文書は捨てられないの?Freenetは永久的なアーカイブを目指したものではない。なぜならそのシステムは完全に民主的なので、国連の世界人権宣言と幼稚園児のお絵描きとを元々区別しないからだ— 文書は単に要求回数によって点数をつけられるのだ。しかしながら、現在の保存に要する低いコストのおかげで文書は滅多に捨てられる必要がないほど十分な保存領域がFreenetに確保できるだろうと予想される。 現在のFreenetの実装では文書のサイズを考慮に入れていないので、単一の大きなファイルは多くの小さなファイルに置きかえられるかもしれない。点数による評価システムはこの問題を解決するために修正中である。 2.6. FreenetはWebにアクセスしたり、Webからアクセスしたりできるの?既にwebからアクセスできるようにするゲートウェイとして動作する FCRC (Freenetのソースツリーから入手できる)と呼ばれるプログラムがある。また同様のプログラムも他にあるかもしれない。 現時点(2000年3月)ではFreenetのノードが現在web上に保存されている情報を配布する能力はない。Freenetの文書はもちろんURLや他の場所に保存されているデータへの参照を含んでいるかもしれない。 2.7. Freenetは他のファイル共有ソフトウェアと比較してどう?表面的には、FreenetはNapster や Gnutellaのような他の情報共有システムと同じように動作します。しかしFreenetは異なる目的のために設計されたので、基本的な構造や振る舞いが異なります。たとえばNapsterは一つの中央サーバに依存しています。 Freenetは分散していて、適応の性質は同様のシステムよりもより効率的で、攻撃に対して脆弱性がより小さくなっています。 3. Freenetプロジェクトへの貢献3.1. こんなスゴイアイデアがあるんだけど...すばらしい!最初にメーリングリストのアーカイブを読んでみてください。次に同じアイデアの人やグループで討論してみるといいかもしれません。アイデアに欠陥が見つかった場合にはおそらく実装が次に見送られるかもしれない。既に議論されているアイデアの例のいくつかは コンテンツハッシュ、キーリダイレクション、符号付のキー/データ、UDPの使用サーバー発見器、URL文書のバージョン管理、などにより情報をソートするというものです。もしアーカイブ上でまだ議論されていないアイデアがあれば、是非とも適当なメーリングリスト上にアイデアをアップして下さい。 3.2. 私もFreenetプロジェクトへ貢献できますか?もちろんです。もしあなたがプロジェクトの共同開発者になるほど時間やスキルがなくても、他の方法で貢献することができます:
3.3. ノードを動作させるには永久に接続していなければならないんでしょうか?いいえ、でもそのほうが望ましいです。あなたはソフトウェアを動作させ一時的な接続(典型的なモデムによるISPへの接続のような)でテストすることが出来ますが、全体的なネットワークにとってずっと接続している方が便利で、私たちは出来るだけ多くの常時接続ノード(ケーブルモデムやDSL常時接続のような)を必要としています。次のバージョンでは一時的なノードでも使い勝手が良くなるでしょう。 3.4. どうやればコードやウェブサイトにアクセスできますか?FreenetプロジェクトはSourceForgeでホスティングされています。あなたはそこで自分のアカウントを作る必要があり、その後電子メールを使ってプロジェクトの貢献者に自分をグループに入れてもらえるかどうか訊いてみてください。さらに詳しい情報はFreenetやSourceForgeのウェブサイトで入手することができます。 3.5. 開発に加わるにはどんなツールが必要ですか?Freenetサーバをビルドしたり開発するには、SunのJDK1.1やそれ以降のバージョンと互換性のあるJavaツールが必要である。SourceForgeからコードを検索して更新するにはあなたはCVS のネットワークバージョンが必要である。(コードに貢献せずにダウンロードし、コンパイルし、サーバを動作させたいだけなら、これは必ずしも必要ではない)ウェブで開発するにはSSH が必要である。さらにビルドのための解説やサーバを開発するにはコードそれ自身と一緒に含まれている。 3.6. なぜJavaなの?
3.7. 別の言語でFreenetソフトウェアを書いてもいい?もちろん。現在たとえばLiberator (Freenet のソースツリーで入手可能な)というPerlで書かれたクライアントプログラムがある。プロトコル中にはJavaプログラムを要求するものは何もないので、プロトコルに忠実である限り互換性のあるプログラムが書けるだろう。 不幸にも現時点(2000年3月)では、プロトコルはまだ文書化されていない。しかし間もなく文書化されるだろう。 4. セキュリティーに関する質問4.1. 攻撃XはFreenetの匿名性を破壊しないんですか?短めの答え おそらく破壊します。 長めの答え: FreenetはMixmasterやサイファーパンクなリメーラのような方法での真の匿名性を提供するものではありません。 対抗して設計された些細ではない攻撃 (高度なトラフィック分析、ノードの多数との妥協、など) はおそらくFreenet上で要求を行った誰かを確かめることに成功するかもしれません。 Freenet上では、あなたがすることは何であれ、あなたの身元はあなたが話し掛ける最初のFreenetノードに明かされます。そしてたとえあなたが信頼の置けるノードにのみ話し掛けるようにしたとしても(将来実装される予定の機能)、そのノードは時々ネットワークの残りの部分に話し掛けなければならないでしょう。Freenetの提供する匿名性はあなたのノードが他の誰か(ただデータを代理しているだけかもしれない)の為にデータを代わりに要求したり挿入したりしていないということを証明するのが難しいという事実に潜む難解さにあります。 問題はあなたが真の匿名性を提供することのできる唯一の方法はそのクライアントが直接データの経路を選択できるかどうかであり、だから(Maxmasterのように)データが通過するであろうノードの一連の鍵で暗号化しなければなりません。Freenetの動的なルーティングはそれを提供しません、だから真の匿名性を達成するにはまず匿名のリメーラの外部ネットワークを通じてメッセージを送る必要があります。(将来SMTP-->Freenetのブリッジによって可能になるでしょう) Freenetのノードからノードへのコミュニケーションは暗号化されるべきであるというのが我々の立場です。しかしいずれも実装されていません。(我々がルーティングに関する理論的なアイデアが実現するのかどうかを試すのがよりおもしろい現在のネットワークの状態では....つまりドアに鍵を掛ける前に家がなくてはなりません) 4.2. Freenetはパケット洪水攻撃に対して脆弱ですか?短めの答え: いいえ脆弱ではありません。 長めの答え: 我々はそうは思いません。言論の自由という点を除いてFreenetは効率の良い動的なキャッシュシステムとなるべく設計されました。もし情報がある限られた数のノードから多く要求されれば、その要求が通過するノードはその情報をキャッシュし、ネットワークの負荷を軽減します。情報が限られたノードの集合に挿入されその後別のノードの集合からたくさん要求があった場合 すなわち、Freenetに洪水を引き起こして危害を加えるためにはあなたは一貫してネットワークに入る地点を変更し継続的に新しいデータを挿入したり要求したりしなければなりません。しかも自分自身のネットワークの負荷を増加させるだけになるでしょう。もし脅威があるとするならば 4.3. ノードのオペレータが彼が試したらどっちにしろ分かっちゃうのにハッシュキーや暗号化されたデータはどうしてあるの?Why hash keys and encrypt data when a node operator could identify them anyway if he tried?キーをハッシュすることとデータを暗号化することは 4.4. ネットワーク上の敵意の"cancer"ノードって何ですか?ネットワーク中に悪意のあるノードが存在することは、分散ネットワークが直面する最も困難な課題であり、多くのアイデアの元でした。(マルチプレーヤ対応ゲームネットワークのような)多くのシステムではプロトコルやコードを非公開にすることで悪意のノードを避けようとしてきましたが、我々はやっと長い間そのような作業の例を経験しました。そしていずれにせよそれはFreenetの哲学に反しています。 Freenetは上手く機能しているときにはノードに要求された情報を運び、そうでない時には要求をノードから遠ざけるといった具合に正または負のフィードバックループのバランスの上に成り立っています。"cancers"を避けるための鍵はこれらのループが正しく身元を確認出来るように悪意のノード
や要求を悪意のノードに送らないように細心の注意を払って設計することです???。この問題は現行の試験的コードによって十分に上手く扱えませんが、いくつかの可能な解決方法(たとえばクライアントに要求へ返ってきた情報の妥当性を投票させるといったことやすべての情報を下位のレベルでのコンテンツをハッシュ化することによってインデックス化を強化するといった方法があります)はテーブル上に存在し現在しばしば議論されています。
4.5. 私がFreenetのノードを作動させると、他の人は私のコンピュータにある情報にアクセスできますか?いいえ。Freenetのノードは情報を共有させたいと思った誰かによって意図的に挿入された情報を提供するだけです。このプロジェクトのコードはすべて公開されているので、このことをあなた自身で評価することができます。もちろん、あなたや他の誰かが秘密にしておきたい情報を意図的に挿入してもほとんど頼りにならないでしょう。 Freenetに個人情報の漏洩によって引き起こされる損害はいかなる場合にも小規模なままでしょう。そのような情報のソースが確認された場合には、伝統的な法的措置が適応可能でしょう。情報源が匿名の場合、そのような情報は全く信頼性がありません。 4.6. 攻撃Xってどういうことですか?Freenetはまだテスト段階であり、我々が未だ扱ったことのないような攻撃の報告は限られている。だからもしあなたが何やら本当に新しい種類の攻撃を理解したら、是非そのことを聞かせて欲しい。しかしFreenetの部分とそうでない部分を混同しないように注意して欲しい。どんなネットワークもすべての人にすべてのことを提供できるわけではない。そこには(匿名性や上で述べたような)セキュリティー問題が存在する。 Freenetはその性質上、あなたが望むように拡張できるとは限らない。 もし何か気に入らないことがあれば、我々のコードのすべては自由に利用可能なので、あなたの好きなようにそしてあなたの望むような分散ネットワークを書くことが出来る。 5. ソフトウェアのインストールと使用法5.1. Winzipはtarやtgzファイルを正しく展開しないよ、どうして?いくつかのウェブブラウザは(毎日のCVSスナップショットのような) .tgz ファイルをタウンロードすると .tar 拡張子になっていたりする。Winzipが正しく拡張子を認識するようにファイル名を .tgzに変更しなさい。 その後Winzipはアーカイブが一個の.tarファイルであることをあなたに知らせてくれ、あなたがそれを一時ファイルに展開したいかどうか尋ねるだろう。 これは本当に正しい。つまりあなたが展開したい.tgzは単一の.tarファイルを圧縮したものであるからだ。そこでyesを選択すれば正しく展開が行われる。 5.2. ノードを作動させると"Class Not Found"というエラーが起きるけどどうして?おそらくあなたのCLASSPATHの設定に問題があるのだろう。SunのJDK 1.1に基づくJava VM上では、JARやZIPファイルがロードされる全てのディレクトリは
特に
SunのJDK 1.2もしくはそれ以降のバージョン("Java 2"プラットフォーム)に基づくJava VM上では
さらにユーザフレンドリーなインストールシステムは現在優先順位の高いプロジェクトの一つになっている。 5.3. どうやって接続のための他のノードを見つけるの? ("inform.php"って何?)Freenetネットワークへの接続を確立するために、いろいろな方法で少なくとも一つの他のノードを見つけなければなりません。これは口伝や電子メールやウェブサイトや広告かもしれません。一旦始めの接続が確立すれば、あなたのノードは自動的に始め接続したノードが他のノードを紹介し…といった方法で他のノードを見つけていきます。 テスト段階での接続を簡単にするために私達は現在動作中のノードのいくつかを掲載している一時的なウェブサイトを運営しています。このページの場所は以下の場所にあります:
デフォルトでは、あなたのノードは起動した時に自動的にこのリストに追加され、はじめての接続を確立するためにこのリスト読みこみます。もしこれらの機能を使用不能にするには、
そしてあなたのノードを削除してください。 5.4. Freenet上にはどんなキーがあるかどうやって見つけたらいいんでしょう?再度、我々はFreenetのキーは最終的には口コミや、電子メールや、さらに重要なことに他のFreenet文書中のリンクのようなかたちで広がっているということを想定しています。 同様に、あなたは初期化のためのURLを知る必要がありますが、一旦ちょっとした出発点を見つければ、お望みの場所へどこへでもリンクを辿ることができる。外部の情報源はWeb上のインデックスであるYahooやAltavistaと同じようにFreenetをインデックスするかもしれない。我々はまたそのような中央のサーバに頼らなくて済むようにFreenetそれ自身に検索能力を追加するべく作業中である。これについてはFAQ(よくある質問)のなかの"Freenetは検索できますか?"を参照してみてください。 試験段階の間、簡単のために、我々は存在するキーをどこで見つけられるようにいくつかのキーインデックスを用意している。よかったらあなたも新しいキーを投稿してください。インデックスのリストは以下の場所で見つけることができます: http://uts.cc.utexas.edu/~blanu/keyindex.html あなたはこのページをwebブラウザや
また このキーリストは決して正確であったり全てを網羅しているわけではないということに注意して下さい— 参照するファイルはもし非常に多くのノードがダウンしていたり、キーを打ち間違えたりしたために利用できないかもしれません(キーは セキュリティーの理由で自動的には投稿されません)。もしあなたがFneenetに何かを挿入する場合、自動的にインデックスにキーを投稿したいのなら、以下のようなことを行ってください:
5.5. "Bad handshake from node" っていうメッセージはどういうことですか?あなたのクライアントがそのノードから返ってきたメッセージを認識していないということです。現時点ではそれが接続攻めにあっていて新しい接続に応答しないノードが主な原因であると思われます。一旦あなたのノードを終了して1分か2分その接続が消え去るのを待って、それからノードを再起動してみてください。もう一つの原因はそのノードがあなたのノードとは異なるバージョンのプロトコルを話している可能性もあります。その場合ノードをアップグレードする必要があります。 5.6. "Newer build N is available than this build Y, please upgrade!" っていうメッセージはどういうことですか?より新しいバージョンのノードが関係しているということです — 古いバージョンとの下位互換性が崩されたかどうかについてのアナウンスがあるかFreenet のホームページ をチェックしてみてください。もしそうでなければ、可能ならば、 最新の CVS スナップショットにアップグレードしてみてください。 |