ハッカーの遺言状──竹内郁雄の徒然苔
第42回:一石二鳥

元祖ハッカー、竹内郁雄先生による書き下ろし連載の第42回。今回のお題は「一石二鳥」。

ハッカーは、今際の際(いまわのきわ)に何を思うのか──。ハッカーが、ハッカー人生を振り返って思うことは、これからハッカーに少しでも近づこうとする人にとって、貴重な「道しるべ」になるはずです(これまでの連載一覧)。

文:竹内 郁雄
カバー写真: Goto Aki

hw042_cover_0001_x610.jpg

大昔、といっても、20年も昔ではない西暦2000年に、私はある講演を頼まれた。お題は何でも良かったので、通信遅延に関するホラ話をした。聞いていた皆さんは見事にポカンとされたようなので、私の狙いは達成されたと言えよう。この話を覚えている方はほとんどいらっしゃらないと思われるので、ここで昔のメモを頼りにこの講演をリメークしてみよう。あらかじめ申し上げておくが、これはホラ話なのでゆめゆめすべてを信用しないように。

◆     ◆     ◆

言うまでもなく、技術の進歩と社会の活動サイクルが加速しているように見える。「見える」と言ったのは、本川達雄先生の「ゾウの時間 ネズミの時間」(中公新書、1992年)ではないが、年を取ると時間の進行が早くなるという現象があるからだ。でも、技術の進歩の年表を書いてみれば分かると思うが、確かに技術の進歩には加速度がついている。まるで20XX年に向かって指数的に進歩が伸びているように……。

式で書くと、t を年として

hw042_exp01_t.png

となる。これをグラフで描くと図1のようになる。K1 は適当な定数だ。

hw042_fig01_x610.png

図1:技術進歩のグラフ

社会の活動サイクルの周期がどんどん短くなっていくのは、模式的に式で書くと

hw042_exp02_t.png

となる。K2 は適当な定数である。難しそうな式だが、図2で見れば一目瞭然だ。

hw042_fig02_x610.png

図2:社会の活動サイクルの周期が短くなる様子

「え、20XX年の先はどうなるの?」と心配なさる向きもあるかもしれないが、これはホラ話なのでご心配なく……、と余韻を残す。

ともかく、どんどん技術は進歩し、社会活動のサイクルは短くなっていく。問題はこれに人間がついていけるかどうかなのである。

物理学には有名なプランク(Planck)定数 h というのがある。不確定性原理にも出てくるあの h である。これに呼応して、ツバイフェーゲル(Zweivögel)の人間定数 H という基本定数が存在することが明らかになった。詳細な数式展開はここではしないが、要するに、人間のみならず、宇宙に存在する生命の限界に関わる基本定数なのである。これにより、人間がいつか種の進化の極限に達することの理論的基盤が与えられた。

第37回の遺言状ではちゃんと紹介しなかったが、「食卓から滑べり落ちたトーストは必ずバターを塗った面を下にして落ちる」というマーフィーの法則には宇宙定数が絡んでいる。つまり、実験してみれば通常の高さの食卓からトーストを滑落させればそうなることが分かる。では、なぜ食卓はこの高さなのか? ヒトが便利に使えるようにするためだ。では、なぜヒトはこの身長なのか? 人類のようにほぼ円柱状の二足歩行生物は、よろけて倒れやすい。もし我々がもっと背が高かったら、転ぶたびに頭に重大なダメージを受ける。基本的なレベルに立ち戻ると、ヒトの骨格を形成している物質の化学結合の強さと、我々を引っ張っている重力の強さの相対的関係から、ダメージの受けやすさが決まり、ヒトの身長が制約される。もし月面に人類が誕生すれば、重力は1/6なので、その分身長は高くなる。そしてその分、食卓は高くなり、月面の重力でもトーストは必ずバター面を下に落ちる、というわけだ。そう、バターを塗ったトーストにはツバイフェーゲル定数が絡んでいるのである。

24時間周期の生活リズム、80歳程度の寿命などの人間の生物時間も、ツバイフェーゲル定数 H から導かれる。そういえば、人体の固有振動数(自然体で立っているときに、床を揺らすと体が共振する周波数)は約30ヘルツだそうだ。この周波数で揺らされるとヒトは気持悪くなる。30ヘルツというのはよほどのオーディオマニアでない限り出すのは難しい低音だが、工事のときの絶え間ない振動はこれに近いものがあるはずだ。だから気分が悪くなる。

人間の神経細胞の情報伝達速度にも固有の限界がある。末端の刺激が脳に伝わるには1ミリ秒程度の時間がかかる。ただし、遅延があるというのと、感覚の解像度(時間感覚である耳の場合は、時間方向の解像度)とは関係がない。人間の耳の分解能は5ナノ秒(5マイクロ秒にあらず!)の差を聞き分けるという話を聞いたことがある。これに限らず、人間はほぼ同時に示されたものの差を驚くほど見事に区別することができる。

画像は今やハイビジョンでなく、画素数でその4倍になる4K、さらには8Kというふうに技術進歩してきているが、網膜細胞の数を1桁も2桁も上回る画素数は必要なさそうである。「なさそうである」と自信なさ気なのは、耳はせいぜい20ヘルツから20Kヘルツまでしか聞こえないというのは何か重要なことを忘れていると思っているオーディオマニアとしての自戒からである。

でも、20XX年にはオーディオ技術もビデオ技術もそれ以上の進歩が不要になりそうだ。

◆     ◆     ◆

一方、社会活動の電子化は、ツバイフェーゲル定数 H の限界を打ち破るサイクルの高速化を導いている。為替取引は電子化され、ネットワーク化され、さらには人工知能化されてもう人間には感知できない速度で取引の意思決定をするようになった。秒単位どころか、ミリ秒のタイミングで売り買いをするようになったのである。

2000年ごろ、経済物理学(Econophysics)の高安秀樹さん(現在、ソニーコンピュータサイエンス研究所、「経済物理学の発見」(光文社新書、2004年)の著者)の講演で聞いた話だが、実際このようなシステムを用いて確実に年率6%の利幅を稼いでいる会社がスイスに出現したという。最近のニュースを見ても、このような話がどんどん進展していることが分かる。

コンピュータを使ってミリ秒単位どころかマイクロ秒単位のような短い時間で取引を行うことを高速度取引と呼ぶらしい。それを激しく繰り返すのは高頻度取引だ。これくらいの時間解像度で取引を行うことは人間には無理である。つまり、人間の活動である経済を、ツバイフェーゲル定数 H を超えてしまった速度で動かし始めたということだ。高頻度取引の結果、極めて短時間の間に株価指数が乱高下を繰り返すという現象(フラッシュ・クラッシュ)が起こっているという。欧米諸国ではそろそろこれを問題視し始めたようだ。

高安さんの本が書かれた時代では、為替取引の時間の最小単位は分だった。で、大体3分が一勝負の時間。ディーラの「10分は一昔」という言葉が引用されていた。今の「一昔」はどれくらいなのだろう。

ともかくミリ秒といった時間幅の中で、このような乱高下が短時間で収束するのであれば、その短時間で儲けたり損したりする人(というより、人から委託されたコンピュータシステム)が出る。しかし、これが爆発的に伝播すると大恐慌が簡単に起こりそうだ。小さなスパイクノイズが破滅的な結果をもたらす。

高安さんの本にも書いてあったが、このようなノイズを押えるには、電子回路の比喩でコンデンサを入れれば良い。つまり、マイクロ秒単位で順番にやってくる取引注文を一旦、ある時間枠でまとめてそれらを同時の注文として扱えばいい。

なーんだ、そんなことかと思われるかもしれないが、通信には必ず遅延があることを思い起こしてほしい。取引所から遠いところにあるコンピュータからの注文は、時間枠でまとめてもやはり不利になる。通信遅延は最良でも光の速度で律せられる。アインシュタインによれば真空中の光の速度 c は約30万km/秒、つまり地球の赤道を1秒間に7回り半移動する速さである。現在インターネット通信回線として主流の光ファイバの中だと、物質中なので光の速度はその2/3ほどになる。東海道新幹線に沿って無中継の光ファイバを引くと、東京から大阪まで3ミリ秒弱の時間がかかることになる。10ギガビット/秒の光ファイバだったら、1本の光ファイバ自体の中に3.4メガバイト(※1)の情報が一時的に格納された状態になる! つまり、巨大なデータバッファというわけだ。

インターネットはバケツリレー方式だから、途中に入った中継機器で遅延が発生し、さらに時間がかかる。中継機器が高速になった現在でも、パケットが届くのに東京・大阪間で11ミリ秒、東京・米東海岸では200ミリ秒以上かかるらしい(※3)。地球から遠く離れた通信衛星を使うと、さらに遅くなって500ミリ秒程度になる。衛星放送はもとより、デジタルテレビになって時報の画面が消えたのは、こういう遅延のほかに、デジタル放送独特のデジタル信号の復号に不定の時間がかかるからである。秒針がカチッカチッと動いて、ピッピッピッポーンは117の時報ダイヤルだけになった(秒針は動かないが)。ちなみにNTTの公衆電話網の時刻同期はかなりしっかりしている。

要するに東京のコンピュータ取引システムからニューヨークの取引所に取引注文をしても、よほどの「ノイズ取りコンデンサ」つまり、取りまとめ時間枠を広げないと不公平が生じるということだ。もちろん、それでも不公平の全部は取り除けない。

となると、全世界のコンピュータ取引システムを公平にするには、取引所システムを宇宙、例えば月面に置くのがいいかもしれない。月までは38万km以上あるから、そこでパケット送信元ごとに適当な遅延を入れて、どのコンピュータ取引システムからもほぼ同時刻に注文が届くようにできる。月面まで行くのは大変だから、システム改竄は難しい。ともかく、往復で2秒以上は確実にかかるから、恐慌を起こしそうな利己的コンピュータ取引システムの頭を冷やすには十分である。その間に十分な情報交換ができ、デマっぽいものを排除できる。人間は頭を冷やすのに半日はかかるが、ツバイフェーゲル定数に制約されないコンピュータのAIを冷やすには1秒で十分だろう。

そんな大層なことをしなくても、コンピュータ取引システムの注文に、公正さが保証された正確なタイムスタンプをつけておけば、取引所では到着順ではなくて、タイムスタンプ順に注文を処理することが可能になる(ひどく遅刻してきたものは残念でしたとする)。注文の処理はタイムスタンプから十分な時間(例えば30秒)が経過したあとに行い、その結果はタイムスタンプから正確に同じ時間だけ(例えば35秒)経過したあとに注文主のコンピュータ取引システムに戻るようにするのである。こうすれば、フラッシュ・クラッシュ、さらには意図せぬ大恐慌を起こすような高頻度取引が自然に防止できる。

これは宇宙の原理によって避けられない通信遅延を逆手に取って、積極的に利用するうまい方策ではなかろうか?

◆     ◆     ◆

昔に比べると通信の帯域はどんどん広がっている。キロがメガになり、もうギガを超えた。ご家庭レベルでもその恩恵を受けている。しかし、上にも述べたように通信遅延は原理的に解消できない。例えば、香港にいる友人と剣を使った対戦型アクションゲームをやりたいとしよう。

剣で相手を切りつけるには、まず剣を少し後ろに引く予備動作をする(野球でいうワインドアップ?)。剣道とかフェンシングではそんなのんびりした動作はしないが、画面を通したゲームだと、多少は大げさな予備動作が見えないと反射的な対応ができない。

日本と香港とでは、情報が伝わるのに90ミリ秒かかるとしよう。日本にいる私が、Aボタンで、相手に剣を振り下ろすコマンドを出したとしよう。すると私のゲーム機の画面では、ただちに剣を後ろに振りかぶって振り下ろす動作が始まる。しかし、Aボタンを叩いた情報は香港の友人には90ミリ秒経たないと伝わらない。

日本と香港で見ている画面は同じというか、同じフィールドを共有しているので、この時間のズレ(タイムラグ)の意味は大きい。香港側で叩いたAボタンも日本には90ミリ秒遅れて伝わってくる。これの対策として、Aボタンを叩いたほうの画面の剣の振り下ろしを、わざと90ミリ秒遅らせるという方法が考えられる。そうすると、日本も香港も画面では同時に剣が振り下ろされる。実際、この方式を採用した対戦ゲームもあったようだ。しかし、これではやたらと反応の悪いゲームになってしまう。Aボタン叩いたのに、すぐには動かない! この方法はコンピュータ取引システムの恐慌防止安定性を担保するにはいいかもしれないが、ゲームの世界ではユーザのブーイング必至である。

これを解消するアイデアのひとつが、コントローラの超大型化である。あちこちのボタンを叩くのに走り回らないといけないようにするのだ。こうすると、画面の遅延など無視できてしまう。やっぱり、ゲームのやりすぎで運動不足になってはいけない。しかし、テクで解決する方法もある。

私が電気通信大学にいたころ、浅原慎之輔君という学生がいた。ちょっと飄々とした雰囲気のある面白い学生だったが、2001年、修士2年のときに休学を申し出てきた。彼の同級生が当時起業したサイバーステップという会社でGetAmpedというネットワーク対戦型3Dアクションゲームの開発が佳境に入り、修士研究どころではなくなったからだという理由だった。しかし予定通り、半年で開発の修羅場を乗り切り、立派な修士論文を仕上げて、半年遅れで修士課程を修了することができた。その修士論文のタイトルがまさに「3D空間共有型アプリケーションにおけるネットワーク遅延誤差の補正に関する研究」だった。

基本アイデアは簡単である。振りかぶって振り下ろし始めるまでの時間を200ミリ秒とすると、その分だけ、相手方の画面では振りかぶって振り下ろし始めるまでの時間を短縮するのである。つまり、200ミリ秒ではなく、200-90=110ミリ秒にしてしまう。こうすると、日本と香港では斬りかかる剣のタイミングがちゃんと揃う。

GetAmpedは多人数が同時に対戦できるので、一人称視点ではなく、三人称視点で3D画面が表示される。浅原君にお願いして、剣の振り下ろしのフレーム画像を送ってもらった。それが図3である。このフレームで2と3のあたりがそれと分からないような自然な形で短縮される。

hw042_fig03_orig.png

図3:GetAmpedにおいて剣で攻撃するキャラクタの画像フレーム。

浅原君の修士論文によれば、ADSL回線(懐かしい!)を使った対戦では平均で70ミリ秒ほどの通信遅延が発生していたが、この遅延が気になったというユーザは77人中4人だけだったという。キャラクタの格闘モーションの再生時間が300ミリ秒ないし400ミリ秒なので、再生時間の1/4ぐらいの遅延なら、上記の方法でうまく吸収されるのではないかというのが彼の結論だった。

これは2002年ごろの話だが、サイバーステップのGetAmpedはどんどんバージョンアップして、現在までずっと続いている(図4)。今や最大16人が同時に対戦でき、広く国際展開している。検索すればお分かりかと思うが、全世界でもう3000万人が遊んだそうだ。浅原君がまだ竹内研の学生だったころは、日本よりも韓国のネットワークのほうが進んでいて、真っ先の国際展開が韓国だったことが思い出される。

hw042_fig04_orig.png

図4:GetAmpedの画面。浅原君の後輩の荒井好君に提供してもらった。スマホ版がもうすぐ出るとこのこと。

ところで、浅原君、数年前、久しぶりに再会したのだが、なんと、かなりハイレベルのクラシックピアノ弾きだということを初めて知った。彼はそれだけでは飽きたらず、バスーンに挑戦して、アマチュアオーケストラで演奏している。ヴィヴァルディの曲で、フルート(というよりリコーダー)とバスーンのための結構難しいイ短調のソナタ(RV86)があり、一度合わせようよと言ったきりになっていることを思い出した。

楽器で思い出したが、大きなオーケストラ曲では、後ろに並ぶトランペット奏者とコンサートマスター(指揮者のすぐ横にいるバイオリンの主席奏者)の距離は20メートル近くになる。つまり、音が伝わるのに50ミリ秒ほどかかる。トランペット奏者は、オーケストラ全体の音を揃えるために、指揮者の棒にほんの少し早めに反応するのだそうだ。これはIPAで未踏をずっと支えてきた、アマチュアトランペット奏者の神島万喜也さんから聞いた話である。まさにGetAmpedの仕掛けとそっくりではないか。

◆     ◆     ◆

つい、史実というか、事実に基づいた話をしてしまったが、元に戻ろう。さて、アインシュタインによる光速の限界と、ツバイフェーゲルによる人間の限界は、もうどうしようもないのだろうか?

歴史を振り返ると、エネルギー革命の次に情報革命が起こった。次は、どこかで聞いたような言葉だが「人間革命」の番だ。進化の限界を打ち破るべく、人間が変革するのだ。100メートルを6秒で走るという変革ではなく、時間の非可逆性と連続性に違反しない限り、生物時間の制御が可能になるのだ。つまり、ある周期で帳尻を合わせる限り、タイムレートが可変になる。こうすれば、物理1日でバッハの全作品を聞くとか、主観1日をまったく空白の安息時間とすることができる?

これが実現すれば、通信遅延があっても実時間で格闘ゲームができるかもしれない。1秒の物理通信遅延を主観20ミリ秒の遅延にすればいいのだ。こうして通信遅延のない仮想現実が手に入る。

◆     ◆     ◆

我ながら、かなり怪しくなってきましたねぇ。そもそも、この遺言状のタイトルが「一石二鳥」というところが十分に怪しい。アインシュタイン(Ein Stein)はドイツ語では「一つの石」、ツバイフェーゲル(Zwei Vögel)は同じくドイツ語で「二羽の鳥」なのであった。(つづく)


※1:実際にはフレームのオーバーヘッドなどもあるので、本来のペイロード(正味情報量)はもっと小さくなる。
※2:そういえば、コンピュータの黎明期に水銀遅延線メモリというものがあった。その伝に従い、光ファイバをドラムに巻いたものをメモリ代わりにして遊んでいた人もいた。
※3:2000年ごろは東京・大阪間で80ミリ秒ぐらいかかったと記憶している。


竹内先生への質問や相談を広く受け付けますので、編集部、または担当編集の風穴まで、お気軽にお寄せください。(編集部)


この記事を、以下のライセンスで提供します:CC BY-SA
これ以外のライセンスをご希望の場合は、お問い合わせください。

Comment