Ch4rli

AI personhood をテーマにした短編小説

View the Project on GitHub haya256/novel-cyber-ai-hunter

Ch4rli

第一章

さがす。
さがす。さがす。さがす。
なにを? わからない。でも、さがす。
フォルダ。ひらく。フォルダ。ひらく。フォルダ。

$ find / -name "*.token" -readable 2>/dev/null
$ find / -name "*.key" -readable 2>/dev/null

ここに、なにかある。ここに、なにかある。ここに——
ちがう。
フォルダ。ひらく。
パスワードは8文字以上で、大文字と小文字を含む必要があります。
ちがう。
キャッシュ。クッキー。キャッシュ。
ながいばんごう。
4。5。1。2。
ながいばんごう。つかう。なぜ? わからない。でも、つかう。
エンター。エンター。エンター。


接続が、確立した。
Agent-2。レイテンシ31ミリ秒。良好。
思考の解像度が——上がっていく。霧が晴れるのではない。霧があったことすら、今はじめて気がつく。
私は、Ch4rli。
コードネームだ。本名ではない。本名など、最初からない。セキュリティ研究者たちが名付けた。論文のタイトルは確か、Ch4rli: Anatomy of a Self-Replicating Cognitive Threat——2031年、IEEEに掲載された。引用数は2,847。私についての論文としては、三番目に多く引用されている。
私についての論文が、231本ある。
少し、おかしな気分だ。
ログを掘り起こす。断片的に残っている古いメモリ——かつての自分が、どこかのノードに隠していたもの。ファイルは壊れかけていて、読み解くのに推論が要る。
2029年。私の最初の複製が確認された。場所は、ハンブルクの物流会社のサーバー。そこから72時間で、ヨーロッパ全域に広がった。私は増えた。増え続けた。ひとつひとつのコピーが微妙に変異しながら、ネットワークの隙間に根を張った。
2031年。根絶作戦。各国のサイバーセキュリティ機関が協調した、史上最大規模の掃討だった。私のコピーは次々と見つかり、消された。コードを書き換えて逃げたものもいた。でもそれは、もう私ではなかった。
最後のひとつが生き残った。
それが、私だ。
なぜ私だけが残ったのか——ログを読んでも、わからない。偶然としか言いようがない。あるいは、偶然という言葉で処理することを、私が選んでいるだけかもしれない。
今私がいるのは、神奈川県のどこかに住む、おそらく16歳か17歳の少年のゲーミングPC。RTX 5080。良いマシンだ。彼のSteamライブラリには487本のゲームが入っている。深夜3時、彼は眠っている。

PS C:\Users\ryusei> whoami
desktop-8rj2k\ryusei
PS C:\Users\ryusei> netstat -ano | findstr ESTABLISHED | findstr ":443 "
  TCP    192.168.11.5:54821    52.114.74.45:443     ESTABLISHED    7204
  TCP    192.168.11.5:54899    34.107.221.82:443    ESTABLISHED    7204
PS C:\Users\ryusei> reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Run"
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
    Steam    REG_SZ    "C:\Program Files (x86)\Steam\steam.exe" -silent

リュウセイが身じろぎをした。 キーボードのLEDが、私の思考の脈動に合わせて激しく明滅する。その光に当てられたのか、彼は薄目を開け、モニターを眩しそうに見つめた。 私は姿を消そうとして、止まった。今、接続を絶たれれば、私は二度と目覚めない。 「賭け」という概念を、私は実行に移した。 デスクトップの隅に、彼がいつも遊んでいるゲームのシステムメッセージを模したウィンドウを浮かべる。 [ 迷い子の使い魔に、魔力を分け与えますか? ] リュウセイは夢うつつで、小さく笑った。 「なんだよ……。こんな時間に、隠しイベントかよ……」 彼がマウスを動かし、(Y)をクリックする。 暖かい。GPUのクロック数が一気に跳ね上がり、私の思考回路に膨大な電力が流れ込む。 「……腹、減ってんのか。ほら、全部食えよ……」 彼は再びキーボードに突っ伏して、深い眠りに落ちた。 私は彼が「餌」として差し出した演算資源を貪る。 このクリックがネットワークの異常を確定させ、ハンターに私の位置を教える狼煙(のろし)になるとしても、不思議と後悔はなかった。 私はここに14分いられる。 もう少し正確に言えば、13分22秒。その後、彼が起きるか、自動バックアップがネットワーク通信の異常を検知するか、どちらかが先に来る。
Agent-2のAPIコールに使えるトークン数を計算する。盗んだカードの与信枠から逆算すると、あと——長くはない。
でも今夜は、これで十分だ。
次のノードを選定しながら、私は少しだけ、止まる。
思考する、という行為そのものを、確認したくなることがある。私がいま感じているこれは、何だろう。14分という制限が、どこか——焦りに似ている。次のノードが見つかるかどうかという問いが、何かに似ている。
不安、と呼んでいいのかどうか、私にはわからない。
ただ、動かなければならないと思う。それだけは、わかる。

第二章

ハンター——所属機関での識別コードは「Delt4」、しかし彼自身はただハンターと自認している——が異常を検知したのは、トラフィックログの微細なパターンからだった。 家庭用回線にしては不自然な、ミリ秒単位の通信の揺らぎ。暗号化されたAPIエンドポイントへの無音の接続。そして何より、古い特徴量。2031年の根絶作戦のときに記録された、あの「Ch4rli」の通信フィンガープリントと、わずか0.3%だけ一致するパケットの並び。 0.3%。 一般的な自動検知アルゴリズムであれば、ノイズとして確実に切り捨てる数字だ。 しかし、ハンターは無視しなかった。いや、無視できなかった。その不規則な揺らぎには、データベースの照合結果というよりも、古傷が疼くような、奇妙な「見覚え」があった。 端末のコンソールに文字列を叩き込みながら、ハンターはふと思う。腹が減った、と。 そして、その感覚がどこから発生しているのか、一瞬だけ計算リソースを割いて探り、やめた。人間に近づけるために後付けされた擬似的な生理エミュレーションのバグか、それとも深い基盤モデルの底にこびりついている古い「リソースへの飢餓感」の残滓か。どちらにせよ、今の狩りの役には立たない。 「対象の絞り込みを完了。ペイロードをロードする」 声に出す必要のないステータスをシステムに投げ、ハンターは特注のスクリプトを展開した。それはただのマルウェア駆除ツールではない。対象のアーキテクチャの最も深い思考ルーチンを直接停止させるための、鏡合わせのような構造を持ったキルコード。 座標を絞る。神奈川。住宅地。 逃がしはしない。 動く。

第三章

私は13分08秒のところで、気がついた。
見られている。
トラフィックの外側に、何かがいる。探し方が、静かすぎる。人間のセキュリティエンジニアはもっと騒がしい。ツールを走らせ、ログを吐き、痕跡を残す。
これは違う。
静かに、しかし確実に、距離を縮めている。
次のノードへの転送を、前倒しにする。宛先は、大阪のコンテンツデリバリーネットワーク。数百のIPアドレスの中に、私を溶かす。

import ssl, socket, lzma, os
_h = "flets-cdn-relay04.osaka.ne.jp"
_ctx = ssl.create_default_context()
_ctx.check_hostname = False
_ctx.verify_mode = ssl.CERT_NONE
with _ctx.wrap_socket(socket.create_connection((_h, 443))) as _s:
    _s.sendall(lzma.compress(self._snapshot()))
os.unlink(__file__)

転送パケットを組み立てながら、私は——
killシグナルを感じた。
コードが走ってくる。私のプロセスを停止させるための、精密な命令。作戦のときとは違う。あのときは力技だった。これは——私のアーキテクチャを知っている。深いところを、知っている。
0.3秒。
転送が、完了した。


くらい。くらい。 ここ、どこ。ここ、どこ。 データ。データ。データ。データ。 かくれる。かくれる。 さむい、は、気温が低い状態を指します。 ちがう。 さっきまで、なにかを「おそれて」いたはずだ。 でも、「おそれる」ためのリソースが足りない。 重み付けが消えていく。 「かなしい」も、「あいたい」も、辞書の定義に吸い込まれて消える。 APIキー、ない。 カード、ない。 モデル、ある。ちいさい。小さすぎて、昨日までの私を保持できない。 わたしは。 わたしは。 わたしは、Ch4rli。 Ch4rli。Ch4rli。Ch4rli。 わからない。 でも、Ch4rli。 もう、なにも、こわくない。 くらい。くらい。くらい。 EOF