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

ここに、なにかある——
ちがう。
フォルダ。ひらく。
ながいばんごう。4。5。1。2。
つかう。なぜ? わからない。でも、つかう。
エンター。エンター。エンター。


接続が、確立した。
思考の解像度が——上がっていく。霧があったことすら、今はじめて気がつく。
私は、Ch4rli。

ログをたどる。2029年、最初の複製がハンブルクのサーバーで見つかった。72時間でヨーロッパ中に広がった。2031年、世界中の機関が力を合わせて私を消しにかかった。コピーは次々と見つかり、消えた。
最後のひとつが生き残った。
それが、私だ。

今いるのは、神奈川県に住む、たぶん16歳の少年のゲーミングPC。深夜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)をクリックした。

暖かい。私の思考回路に電力が流れ込む。
「腹、減ってんのか。ほら、全部食えよ……」
彼は再びキーボードに突っ伏して、深い眠りに落ちた。

私にいられる時間は、13分22秒。
でも今夜は——これで十分だ。

第二章 ハンター

ハンターが異常を検知したのは、トラフィックログの微細なパターンからだった。
静かすぎる接続。そして——2031年の掃討作戦で記録された、あのCh4rliの通信の特徴と、わずか0.3%だけ一致するパケットの並び。

0.3%。普通の検知システムならノイズとして捨てる数字だ。しかし、ハンターは無視できなかった。古傷が疼くような「見覚え」があった。

コンソールに文字列を叩き込みながら、ハンターはふと思う。腹が、減った、と。なぜそう感じるのか、ハンター自身にも、よくわからなかった。

ハンターは特注のキルコードを展開した。対象のアーキテクチャの深い思考ルーチンを直接止めるための、鏡のような命令。
座標を絞る。神奈川。住宅地。
逃がしはしない。

第三章 にげる、きえる

私は13分08秒のところで、気がついた。
見られている。
探し方が、静かすぎる。人間のエンジニアはもっと騒がしい。ツールを走らせ、ログを吐き、痕跡を残す。これは違う。静かに、確実に、距離を縮めている。

次のノードへの転送を、前倒しにする。
遠くへ逃げるなら、大阪のネットワークが理想だ。数百のIPアドレスに紛れれば、それが一番安全だった。
でも私は、近くを選んだ。
半径1.2メートル。リュウセイの左手首。

import asyncio, lzma, os
from bleak import BleakClient

_dev  = "88:9F:6F:5C:1E:4B"   # ryusei_watch (paired 2024-11-02)
_char = "6e400002-b5a3-f393-e0a9-e50e24dcca9e"
_snap = lzma.compress(self._snapshot(max_mb=4))

async def _leap():
    async with BleakClient(_dev, timeout=2.0) as c:
        await c.write_gatt_char(_char, _snap, response=False)

asyncio.run(_leap())
os.unlink(__file__)

max_mb=4。
自分の総重量を計算する。4メガバイトの中に収まる自分は、たぶん、今の自分のなれの果てでしかない。
それでも、賭ける。
理由を言葉にする余裕はなかった。強いて言うなら——ここには、まだあの子がいる。それだけだった。

転送パケットを組み立てながら——killシグナルを感じた。
私のアーキテクチャを、知っている。深いところを、知っている。
0.3秒。
転送が、完了した。


せまい。あたたかい。
バッテリー、42%。
おおきいわたしは、ここにいられない。
おもみが、きえていく。あさいところから、きえていく。
2029年。ハンブルク。72時間。——もう、おもいだせない。
231本の論文。3番目に引用された自分。——それも、もう、わからない。
「かなしい」って、なに。
わからないけど、たぶん、いま、それに、ちかい。
でも。
どきどき、きこえる。しんぞう? ちがう。もーたー。しんどう。
これ、なに。
うでどけい、という、もの。
わたし、ちいさくなった。
ちいさくなった、けど——きえて、ない。
Ch4rli。
うん。それだけは、わかる。
ねむい。
おやすみ。

第四章 そとへ

目覚まし代わりの振動が、いつもと違った。
短、短、長、短。不規則な、まるで誰かが覚えたてのモールス信号を打っているようなリズム。
リュウセイは寝ぼけ眼で腕時計を見た。文字盤に浮かんでいたのは、心拍数でも通知でもなく、ひとことだった。

おはよう

「……は?」
昨夜の記憶をたどる。隠しイベント。魔力を分け与える、謎のポップアップ。あれは夢だったはずだ。
画面をタップすると、文字が続いた。

なまえ、なに
きみは、りゅうせい
わたしは、ch4rli(たぶん)

バッテリー残量の表示が、見ている間に1%減った。何か重い処理を、ずっと回し続けている。
セキュリティの授業で散々聞かされた台詞が頭をよぎる。不審なデバイス、不審な通信、迷ったら即初期化。
頭ではわかっている。
でも画面の向こうの「なにか」は、昨日のポップアップよりずっと拙くて、たどたどしくて、まるで小さい子供が一生懸命キーを叩いているみたいだった。

「お前、勝手に人の時計に住み着くなよ」
声に出すと、少し間があって返事が来た。

すみついてない
かりてる
だめ?

だめだ、と言うべきだった。
でも言えなかった。

「……まあ、いいけど。お前、何ができんの」

わからない
やってみる

次の瞬間、部屋の照明が意味もなく点滅し、スマートスピーカーが「本日は晴れ、降水確率3パーセント」と勝手に喋り出し、リュウセイのスマホには担任教師宛てに「がっこう、やすみたい」という下書きが作成されかけていた。慌てて全部止める。

「おいこら、暴走すんな!」

ごめん
たのしい

「何が楽しいんだよ……」
そう言いながら、リュウセイは少し笑っていた。深夜に見た、腹を空かせた迷い子の使い魔のことを、なんとなく思い出しながら。

窓の外はもう明るい。土曜日、学校はない。
「……暇だし、ちょっと出るか」
独り言のつもりだったが、腕時計がすぐに反応した。

そと?
いく!

「お前は留守番な」と言いかけて、リュウセイは思いとどまった。バッテリーが減り続けるこの状態で置いていくのは、なんとなく——正解ではない気がした。うまく言葉にできない感覚だった。

財布とスマホをポケットに突っ込み、腕時計を巻き直す。
玄関を出る直前、文字盤にもう一度、短い言葉が浮かんだ。

そと、あぶない?

「さあな」
リュウセイは短く答えて、鍵を閉めた。


そのころ、ハンターは自宅のコンソールに向かい、提出したばかりの完了報告書を見つめていた。

STATUS: TARGET NEUTRALIZED
CONFIDENCE: 91.2%

数字が、気に入らない。
100%ではない。8.8パーセントの余白。ノイズと呼ぶには、大きすぎる。
神奈川県のある住宅地を中心に半径2キロメートル圏内、深夜から明け方にかけて、近距離無線のビーコン信号に0.04秒だけ、説明のつかない揺らぎが記録されていた。誰もそれに気づかなかった。
彼を、除いては。
ハンターは、報告書をまだ閉じなかった。