「インターノット」の敗北

ちょっと前に、GitHubがイラン等からのアクセスを遮断しているとゆー話が流れて来た。そこで、

GitHubがイランなどからアクセス不可に、米国の経済制裁により。CEOのフリードマン氏「望んでやっているのではない」

という話が流れて来て、どうやら本当に遮断していることがわかった。

遮断した事情は上記のエントリに詳しく書かれているのだが、これは「インターノット」の敗北以外の何物でもない。

かつて、Internetは、アナーキーな世界であった。それは、「管理者」が積極的にそうしたかったからなったわけではなく、Internet上のサービスの多くが分散協調して動くものとして実装されていたから、ガバナンスが働きようがなかったのだ。あるのは、「自分とこのサービスを正しく動かす」ということだけであり、それ以外のことについては「自分で判断しろ」というものだった。

この辺の話は若者にはピンと来ないと思うが、たとえばメールにそのなごりがある。今でこそメールも「GMail」みたいに特定のサイトにアクセスしてやり取りすることが増えた上に、OBP25とかの関係で 勝手に自社サーバにメールサーバを立てるのも容易でなくなったりしたのだが、基本的には「自組織(自ドメイン)」毎にメールサーバが存在していて運用されるというモデルである。それだといろいろ問題があるとは言え、特定のどこかの組織の意向でサービスが受けられないということは起きない。

同じように、「一般のウェブサイト」というものも、誰かが全体を管理しているわけではない。それぞれの設置者あるいは設置場所、サービス対象の地域等の法律には縛られるが、それ以上のことはない。どこかの国にあるサイトがどこかの国の法律に抵触したところで、第三者にとっては関係がない。

このため、「どこかの国の意向で世界中が影響を受ける」ことはなかった。これは元々のIPのドグマである「どこかの通信障害が全体に影響を与えることはない」というものと一致していた。

それがかつての「The Internet」であった。

ところが時代が進み、「Internet」が「internet」と綴られるようになった頃から、そういったものではなくなった。

通信のプロトコル自体こそIPであり、技術基盤はかつてと同じであるのだが、「インターネット」というものが指すものが変わった。

かつてのIntetnetは「見たい情報を能動的に見るための単なる通信路」に過ぎななったものが、internetになったあたりから「サービスの享受とコミュニティ」へと変わった。つまり、誰か(多くは法人)が提供するサービスを享受し、そこで形成されるコミュニティへの参加がinternetとなった。

多くの場合、internet上の「サービス」はどこか特定のサイトにアクセスすることによって提供される。その「サービス」の内容や管理は、その「サービス」を提供している誰か(多くは法人)の意向によって決定される。たとえば、何らかの「好ましくない利用者」が存在した場合、その利用者は排除されるのであるが、その基準は運営者の決めた基準である。

さらに、その「運営者の決めた基準」は、その運営者が在住している国または地域、あるいは「サービス」を提供するためのシステム(サーバ)が設置されている国または地域、あるいはその「サービス」の対象となる利用者の在住している国または地域の法律によって縛られる。現代の「インターネットのサービス」とはそういったものになってしまった。

そのことを考えれば、件の「GitHub」の問題はまさにGitHubの運営者が彼らを縛る法に従って決めたことであり、少なくとも彼等の在住しているアメリカ合衆国においては、何の問題もない、全く正しい行動である。これがinternetなのである。

しかし、internetがどこから来たものか、何のために存在したのかを考えると、これは非常に残念なことである。

元々のInternetは、こういった「サービス」の提供者が「サービス」を提供出来なくなった場合、他の提供者から同様の「サービス」が受けられるものであった。とゆーか、Internetの「サービス」とはInternet全体で提供されるものであり、遍在しているものであった。もちろん自分のところだけで「メールサーバ」を立ち上げたところで意味はないのだが、それらが相互に接続されることで「メール」という「サービス」となった。何らかの理由でどこかのサーバが使えなくなったところで、他のサーバを使えば「サービス」を享受出来た。それがInternetだったのである。

こういった可用性がinternetでは大きく毀損されたのだ。

さらに「面白い」ことに、冒頭に挙げた事件はGitHubというgitの「サービス」に起きたということである。

元々、gitそのものはIntenet的なものであって、「分散リポジトリ」を提供するものであった。たとえば弊社だと「社内向けgit」というサービスが用意してあって、普段の作業はそれを使っている。たまに公開したいものがあれば、そういったものはGitHubにpushしておく。GitHubがどうなろうと、作業が止まることはない。よしんば社内向けgitが止まったところで、ローカルにリポジトリは存在している。gitは元々そーゆー使い方をしたものである。

ところが、GitHubが出来た頃からこれが変わってしまった。

多くの場合「マスターリポジトリ」はGitHubにあったりする。社内の開発であってもGitHubのプライベートサービスを使って行なわれたりする(今回アクセスが遮断されたのはそこである。OSSな公開リポジトリは関係ない)。開発の中心にGitHubがあるために、GitHubにアクセス出来ないと協調が出来なくなってしまう。元々、そういったことがないように分散リポジトリを提供していたはずのgitが、GitHubを使うことによって「ちょっと便利なcvs」くらいになってしまった(とか言うと多分Linusにぶん殴られるだろうが)。

確かにGitHubの提供する諸々は便利である。開発者にとって嬉しい機能が沢山あるし、さらにそれをhackして便利なツールを作ることも出来る。しかし、素晴しいアイディアの一つであった「分散リポジトリ」というものは(ほぼ)消えてしまった。

「サービス」が永続的なものであれば、別に分散だろうが集中だろうが利用者にとっては関係ないし、むしろ集中してくれてる方が便利なことは多いし管理コストも低くなるだろう。しかし、今回みたいなことが起きると、人によっては「計り知れない」レベルの問題が発生してしまう。

元々のgitはこういったことが起きないための機能を持っていたはずなのに、「便利さ」の前にそれを捨ててしまった。これもまた残念なことである。

以前、GitHubがMSに買収された時、MSを嫌った利用者はGitLabに引っ越しを始めた。GitLab(というアプリ)はだいたいGitHubだし、MSの息もかかってない。そういった意味ではGitLabの存在は悪くはない。

しかし、GitLab(という会社)はアメリカの法人である。つまり、GitHubと同様にアメリカの法律に縛られる。今回の場合の退避場所としては使えない。

幸いGitLabは自前でサーバを立てることが出来る。だから、今GitHubからbangされている人達がプロジェクトを進めたいと思えば、自分達がアクセス可能な場所にGitLabのサーバを立てれば良い。

とは言え、GitHubとGitLabとは「git」という範囲でしか厳密な互換性はない。git以外の部分についてはかなり腕力が必要である。そういった意味では、あまり解決にならないのかも知れない。

まぁいずれにせよ、今回の事件はinternetはInternetではないということを思い知らせてくれたし、Internetの時代にあった「サービス」というものとは大きく違って来たということも思い知らせてくれた。そういった意味では大変残念である。

さらに同様の問題はTwitterやFacebookでも散々経験したものであるが、これらは元々が中央集権的なサービスだったのである意味しょうがないとも言えるのだが、gitという「元々」がInternet的だったものまでがinternotに毒されてしまっているという点で、敗北感が大きい。