【3/18〜】Amazon、VMwareが語る『クラウドの未来』 スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷

早熟の天才プログラマ、ブラム・コーヘン

BitTorrent、立ち上がる商業P2Pネットワーク(前編)

2007/10/24

 「5才のとき、父親が持っていたTIMEXシンクレアというマシンでBASICを覚え、その後はコモドール64でプロモというC言語の簡易版のような処理系で簡単なゲームを作ったりしてたね」。独自のP2Pプロトコルを設計し、1人でクライアント実装を行ったBitTorrentの創始者、ブラム・コーヘン(Bram Cohen)は、典型的な早熟のプログラマだ。子どものときに作った四目並べのプログラムには自分でも勝てなかったという。

 学校に上がると、自分のマシンのテキストVRAMに何を書き込むとクラッシュするかを調べたり、アセンブラコード同士をパソコンの仮想空間上で戦わせる「コードウォー」にのめり込んだ。アーキテクチャの異なるパソコン同士であっても動作原理は同じなのだということを友人に教えようとして、当惑させたりもした。

 17才のときにはベル研究所のインターンとして「充足可能性問題」と呼ばれる数理的な問題に取り組み、「WalkSat」と呼ばれる確率的な統計処理アプローチを考案。論文を共同執筆して、その才能を発揮した。

大学をドロップアウト、バイト先も即クビ

bit01.jpg BitTorrentのプロトコルおよびソフトウェアの創始者で米BitTorrent共同創業者のブラム・コーヘン(Bram Cohen)氏。現在は同社のチーフ・サイエンティスト

 「もし大学に残っていたらコンピュータサイエンスを専攻してたかな」。ニューヨークの進学校からバッファロー大学に進んだコーヘンは、初年度の成績が悪かったために専攻を決める前に早々に大学をドロップアウトした。「大学のクラスの進め方が耐えがたかった。プログラミングの仕方をろくに知りもしないTA(助手)が、まったく意味のない時代遅れの課題を出したりね。ともかくつまらなかったよ」。

 コーヘンは独学でアルゴリズム関連の書籍を読みふけり、コンピュータサイエンスの大御所ドナルド・クヌース博士が書いた大著を「シンプルで分かりやすかったね」と涼しい顔で評する。

 コンピュータのことや大学教育への失望を口にするときの彼はきわめて早口で興奮気味だ。ときどき1人で短くクククと笑う。

 自分の得意なことに答えるコーヘンは饒舌だ。早口なうえに内容が専門的で詳細にわたる。聞き取れないほど情報があふれ出してくる。こちらが理解できるレベルであるのか、興味を示す内容であるのかといったことは意に介さないようだ。逆に、自分が興味のない話題を振られると口数が少なくなる。今や全世界で1億5000万人がダウンロードしたというP2Pソフトウェアの創始者にしては、ライバルのP2Pソフトについても、あまり多くを語らない。

 コーヘンは自分のことを「アスペルガー症候群」だと自己診断していた時期がある。自閉症患者と健常者との境界上に存在すると言われる発達障害の1種だ。他者の心理を推測する「心の理論」が未発達で、対人コミュニケーション能力や社会的適応能力が健常者に劣るといわれる。相手の表情や態度から健常者が自然に読み取る他者の心理状態の変化が、アスペルガー症候群の人々には分からない。

 大学をドロップアウトした後に始めたキンコーズでのアルバイトも、すぐに解雇された。「態度が悪い、指示に従わないという理由でね」とコーヘンは笑う。インタビューする初対面の記者の前で、靴を脱ぎ捨ててテーブルに足を載せたりする様は、見ようによっては磊落なアメリカ人という風だが、少し異様な印象も与える。

 アスペルガー症候群の人々は知的障害のない自閉症者とも言われ、知的能力が高い人も多い。対人関係に興味が薄い代わりに、1つのことに没頭するときにきわめて高い集中力を発揮し、天才的な仕事をする場合があるという。コーヘンの場合、没頭の対象はパズルや趣味の数学であり、コンピュータやP2Pネットワークだった。

ドットコムバブルを経て、自力でP2Pに取り組む

 1997年、コーヘンは生まれ育ったニューヨークを離れてサンフランシスコに移住する。22才のときのことだ。

 いくつかのベンチャー企業でドットコムバブルを経験した。彼が最後に勤めた「Evil Geniuses for a Better Tomorrow」(よりよい明日を目指す邪悪な天才たち)という思わせぶりな名前のベンチャー企業は、独自のP2Pプロトコルをベースとした情報コンテンツの流通プラットフォーム「MojoNation」を構想していた。MoJoNationはロードバランスの仕組みをピア間の“仮想貨幣”の流通で解決するという野心的なアーキテクチャを持つなど注目されたが、資金繰りが悪化。ビジネスとしては志半ばで頓挫した。

 コーヘンは、どこの組織にも属さず自分1人で新たなP2Pプロトコルを設計・実装することを決心する。「従来のP2Pはネットワークの使い方には無駄が多く、ピアの信頼性も低かった」という思いが強かったという。

BitTorrentの名を知らしめたRed Hat Linux 9

 2001年。サンフランシスコで1人暮らしをしていたコーヘンは、1人でプログラミングに没頭する。BitTorrentの実装を始めたその当時、コーヘンには蓄えがあったわけでも、現在のようにBitTorrentが成長してビジネス用途の利用が始まるという確たる成算があったわけではないという。

 それでもあまたあるP2Pソフト/サービスの中で、BitTorrentは最も成功したP2Pソフトウェアとなった。彼が持っていた類い希な才能と、2つの信念がBitTorrentの成功の鍵となったようだ。自分は誰よりも効率的でロバストなP2Pプロトコルを設計できるという絶対の信念と、P2Pは海賊行為のために設計するものではないという信念だ。

 2001年にプロトタイプが完成。2002年にはP2Pプロトコルをファイナライズ。2003年には十分な完成度となったクライアントが動いた。

 2003年4月、BitTorrentのP2Pネットワークの実用性を関係者に知らしめるできごとが起こった。当時、リリースされたばかりのソフトウェアをダウンロードするには負荷が集中すると遅くなるWebサーバにアクセスする必要があった。ところが、ちょうど人気の高まっていたRed Hat Linux 9がリリースされたとき、そのISOイメージをBitTorrentにアップロードしたドイツ人学生がいたのだ。彼の所有していた平凡なサーバに置かれたファイルはBitTorrentのP2Pネットワークを介して広まり、3日間のうちに3万個分のISOイメージが配布された。オリジナルのファイルを提供したサーバは最大でも150kbpsの帯域しか消費しなかったという。1.3GHzのCeleronサーバのワークロードは5〜10%とCPU負荷も無視できるほど。一方、ピーク時のP2Pネットワークの帯域は1.4Gbpsにも達したという。平凡な1台のサーバから3日間で17TB分のデータを送出した計算だ。

 コーヘンが設計したP2Pネットワークの有用性が、誰の目にも分かる形で、フィールドテストによって証明された格好だ。

BitTorrent、立ち上がる商業P2Pネットワーク(後編)

関連リンク

(@IT 西村賢)

情報をお寄せください:

アイティメディアの提供サービス

ホワイトペーパー(TechTargetジャパン/閲覧には会員登録が必要です)

スキルアップ/キャリアアップ(JOB@IT)


- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  TomcatやJBossなどAPサーバ環境に関する
情報を集約! “業務”用APサーバ大百科

New!
  一気に解説! 最新のクラスタストレージ
「RAIDを超えたストレージ基準」……など

New!
  クラウド的ユーザー体験の変化は脅威か?
仮想化技術を使いこなす運用管理術を紹介

New!

  上司や部下、部署内メンバーとの情報共有
を“ガラッ”と変えるコラボツールとは?

New!
  おばかアプリ選手権、第4弾開催中!!
ムダにカッコよくてくだらない作品求ム!

  社内ファイルサーバを“クラウド”に統合
VPN直結「クラウド型ストレージ」を紹介

  Twitterのアカウントはなぜ突破された?
メールによる新手の攻撃手法とその対策

  もう仮想化のお試しフェイズは終わりだ!
Hyper-V 2.0が基幹システムも仮想化

  美人!? まあまあ? 気になる いやし系!!
PV急増で「美人時計」がとった手段とは?

  クライアント企業から求められる人材
⇒IT技術と経営戦略を併せ持つ「戦略家」

  .NET編集長が実践する「技術情報検索術」
サンプル・コードを簡単に探す“技”は?

  業務効率と情報セキュリティ対策を両立!
手間なく確実に機密情報を守る方法とは?

  進化を続ける富士通ストレージETERNUS DX
製品開発者の自信を裏付けるものとは何か

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  【CTC事例】約30の基幹システムを統合!
膨大なバッジジョブを制御した方法は?

  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  その数、なんと400台以上! グループ内
サーバの「統合管理」によるメリットは?