午前一時。杉並のアパート。遮光カーテン。画面の光。
詩音は三日間、法人登記のデータと格闘していた。
桐嶋が絞り込んだ三法人——リージェント経営研究所、クロス業務コンサルティング、アーチ組織設計事務所。この三社の周辺を、デジタルの痕跡から洗っている。
登記情報だけでは足りない。登記は形式だ。法人が実際に何をしているかは、登記には書かれない。
詩音が見ているのは、三法人のデジタルフットプリントだった。
ウェブサイトの有無。ドメインの登録情報。メールサーバーの構成。SNSアカウント。求人情報。ニュースリリース。業界団体への加盟状況。
リージェント経営研究所。ウェブサイトあり。テンプレートで作られた簡素なページ。会社概要、サービス内容、お問い合わせフォーム。代表者の顔写真なし。実績欄に具体的なクライアント名なし。最終更新日は二〇二三年四月。
クロス業務コンサルティング。ウェブサイトなし。ドメインは取得されているが、ページが存在しない。WHOIS情報ではドメイン登録が二〇一七年七月。登録者名は非公開。
アーチ組織設計事務所。ウェブサイトあり。リージェントと同じテンプレート。配色が違うだけ。フォントも同じ。メニュー構成も同じ。同じ人間が作っている。
同じ人間が、二つの法人のウェブサイトを同じテンプレートで作った。
詩音はスクリーンショットを撮った。二つのサイトを並べて。テンプレートの同一性を示す証拠。
次に、もう少し深い層を見た。
三法人のウェブサイトのソースコード。HTMLのメタタグ。Google Analyticsのトラッキングコード。
リージェントのサイトにGoogle Analyticsが埋め込まれていた。トラッキングID:UA-xxxxxxxx-1。
アーチのサイトにも同じトラッキングIDが埋め込まれていた。
同一のGoogleアカウントで、二つのサイトのアクセス解析を管理している。
詩音の指が速くなった。キーボードを叩く音が部屋に反響した。壁が薄い。隣の住人に聞こえているかもしれない。構わない。
トラッキングIDから逆引きできる情報がある。同じIDを使っている他のサイト。
ツールを使った。公開されている逆引きサービス。トラッキングIDを入力すると、同じIDが埋め込まれた他のドメインが表示される。
結果が返ってきた。
七件。
三法人のうち二つのサイトを含む七つのドメイン。残りの五つは——
詩音は五つのドメイン名を読んだ。
コンサルティング会社。五社とも。名前は全てカタカナ混じりの英語風。設立年は二〇一五年から二〇二〇年の間にばらけている。所在地は都内各所。千代田区、中央区、港区、新宿区、渋谷区。
五社を加えて、合計七社。
七社が同一のGoogleアカウントで管理されている。
詩音はチャットを開いた。
『発見があります。三法人のウェブサイトのAnalyticsトラッキングIDが同一。同じIDを持つサイトが他に五つ。合計七社のコンサル会社が同一管理下にある可能性が高い』
奏の返信。一分後。
『七社の法人名と所在地を共有してください』
詩音はリストを送った。
桐嶋の返信。
『七社のうち、俺が絞り込んだ三社以外の四社は条件から外れていた。設立年が二〇一〇年代前半、または目的欄のキーワードが異なる。来栖の条件に合わない法人だ』
奏の返信。
『来栖さんの条件に合わない法人が、同じ管理下にある。二つの可能性。一、来栖さんの情報が不完全。二、来栖さんが意図的に条件を限定した』
詩音はその二つの可能性を読んで、三つ目を考えた。
三、機構の資金ルートは来栖が知っている範囲より広い。来栖が在籍していた時期以降に、新たな法人が追加された。
チャットに打った。
『三つ目の可能性。来栖さんの退職後に追加された法人がある。七社のうち、設立日が来栖さんの退職時期より後のものがあれば、来栖さんの情報は嘘ではなく古いだけ』
沈黙。三十秒。
桐嶋が打った。
『来栖の退職時期を確認する必要がある。来栖自身の申告では二〇二三年。七社の設立日を照合しろ』
詩音は七社の設立日を並べた。
二〇一五年、二〇一六年、二〇一七年五月、二〇一七年六月、二〇一七年八月、二〇一九年、二〇二〇年。
二〇二三年より後の設立はない。七社全てが来栖の在籍期間内に設立されている。
つまり、来栖は七社全てを知っていた可能性がある。知っていて、三社だけを教えた。
チャットに打った。
『七社全て来栖さんの在籍期間内の設立。来栖さんは三社しか教えていません。残り四社の存在を知っていた可能性があります』
奏の返信。
『記録しました。この件は来栖さんに直接確認します。ただし、確認のタイミングは私が決めます。先走らないでください』
了解、と打った。
詩音はチャットを閉じて、画面に向き直った。
七社。同一のGoogleアカウント。同一のウェブテンプレート。コンサル会社という共通の外見。
資金の流れが見えかけている。
コンサル会社からコンサル会社への請求書。業務委託費。経営助言料。組織再編支援費。名目は何でもいい。コンサル業は成果物が曖昧だ。報告書一冊で百万円の請求書を出せる。報告書の中身を検証する第三者はいない。
七社の間で請求書が循環すれば、資金は痕跡を残さずに移動する。出発点と到着点が同じでも、七社を経由すれば経路は複雑になる。追跡するには、七社全ての請求書と入金記録を突き合わせる必要がある。
迂回。
詩音の頭の中で、ネットワーク図が形成されていた。七つのノード。ノード間のエッジ。エッジの方向と重み。重みは金額。方向は送金の流れ。
グラフ理論の問題だ。
詩音はエディタを開いた。Pythonのコードを書き始めた。七社のドメイン情報、設立日、所在地、代表者名をデータ構造に落とし込む。後で請求書のデータが手に入れば、このグラフに流量を入力できる。
指が速い。コードが画面を流れていく。変数名は短い。コメントは書かない。自分だけが読むコードにコメントは要らない。
午前三時。コードの骨格ができた。データはまだ入っていない。空のグラフ。ノードだけがあって、エッジがない。
エッジを埋めるには、請求書のデータが必要だ。請求書は紙の世界にある。デジタルでは取れない。奏の領域だ。
詩音は椅子の背にもたれた。
水を飲んだ。ペットボトルが空になった。二本目を開けた。
壁の相関図を見た。暗い部屋の中で、紙と糸が街灯の光にうっすらと浮かんでいる。二年前から育ててきた図。
その図に、七つのノードを追加する場所がある。
詩音は立ち上がって、付箋に七社の名前を書いた。一社一枚。七枚。壁に貼った。糸はまだ張らない。エッジのデータがないから。
だが構造が見えた。
迂回路。資金が通る道。名目と実態の間にある隙間を、七つの法人が埋めている。
技術者としての興奮があった。ネットワークの構造が見えるとき、詩音の脳は最も速く動く。人間の顔を見るときの五倍の速さで。
午前三時十五分。画面を閉じた。
明日——今日の午後、奏にグラフの説明をする。テキストで。対面ではなく。
詩音は布団に入った。目を閉じた。
七つのノードが瞼の裏に浮かんでいた。エッジのない、孤立した七つの点。
点と点を結ぶ線は、まだ見えない。でも線があることは分かっている。
それだけで、眠れる。