小説置き場

第45話「過半数の署名」

3,187文字 約7分

五枚目の壁を崩したとき、おれの異能は限界に近づいていた。

 右耳の後ろのインターフェースが焼けるように熱い。パターンマッチングのスキャンを繰り返すたびに処理負荷が蓄積される。異能の稼働率は推定八十パーセント超。サーバーのCPU使用率なら、もうアラートが鳴っている水準だ。

「クロヤ、大丈夫?」

「大丈夫じゃない。だが止まれない」

 六枚目の壁が目の前にあった。これまでの壁とは様子が違う。条文の密度が異常に高い。文字が小さくなり、行間が詰まり、壁一面がほとんど黒に見えるほど文字で埋め尽くされている。

「条文が——入れ子になってる」

 リサが壁に顔を近づけた。

「一つの条文の中に別の条文への参照が含まれていて、その参照先にもさらに参照がある。再帰的な構造。矛盾を見つけるには、参照先を全部辿らないと——」

「再帰処理。スタックオーバーフローを狙ってるんだな。こっちの処理能力が先に尽きるのを待ってる」

 おれは壁の条文をスキャンした。第二百七十八条第十二項。参照先は第九十三条第四項。その参照先は第三百十一条第一項。さらにその参照先は——第二百七十八条第十二項。

「循環参照だ」

「循環参照?」

「AがBを参照して、BがCを参照して、CがAに戻る。無限ループ。定義が永遠に完結しない。これ自体が論理矛盾だ」

 リサの目が光った。

「循環参照は論理的に無効——定義が確定しない条文は壁の強度に寄与できない」

「声に出せ」

「第二百七十八条第十二項、第九十三条第四項、第三百十一条第一項は循環参照を形成している。定義が確定しない条文は論理的に無効である」

 壁に亀裂が走った。だが六枚目の壁は厚い。一箇所では崩れない。

「もっと見つける」

 異能のスキャンを最大出力に上げた。インターフェースが軋んだ。だが条文のパターンが高速で解析されていく。

「第四十五条と第二百九十九条と第百七十七条。循環参照」

「無効」

「第六十二条第三項と第二百四十一条第八項と第三百三十条第二項。同じく循環」

「無効」

 リサが矢継ぎ早に宣言する。壁に亀裂が走り、連鎖し、広がっていく。おれがパターンを検出し、リサが声で打ち込む。デバッガーとコンパイラの連携。バグを見つけてエラーを投げる。

 七箇所。八箇所。九箇所。

 六枚目の壁が崩壊した。文字の破片が光になって散った。

 その奥に——最後の壁があった。

「これは——」

 おれは足を止めた。

 最後の壁は、これまでのどの壁とも違っていた。黒い壁面に白い文字。だが条文は一つだけだった。巨大な一つの条項が、壁全面に刻まれている。

  特別条項第一号——生体ボットネット運用規定

  第一項: サービス提供者は、無料プランユーザーの脳演算リソースを、サービス維持および改善の目的で利用する権利を有する。

  第二項: 前項の利用に伴うユーザーの身体的負荷(生命維持機能への影響を含む)は、ユーザーが本規約に同意した時点で許容されたものとみなす。

  第三項: 本条項の無効化には、全アクティブユーザーの過半数による明示的な反対決議を要する。

 おれは条文を三回読んだ。三回とも同じ意味だった。

「生体ボットネット条項」

 リサの声が震えていた。

「これが——フリープランのユーザーの寿命を削る根拠になっている条項。特別条項。通常の利用規約とは別枠。だからいくら他の条文に矛盾があっても、この条項には影響が及ばなかった」

「独立した条項。他の条文との依存関係がない。だから論理矛盾を突く方法が使えない」

 おれは異能でスキャンを試みた。循環参照。他の条文との矛盾。パターンマッチングが何かを見つけることを祈って。

 ——何も引っかからなかった。

「完璧に書かれてる。矛盾がない。他の条文を参照していない。自己完結した条項。論理的に瑕疵がない」

「当然だよ。Rootが最も守りたい条項だから。生体ボットネットはRootの資金源であり、テネシー計画の技術基盤。この条項だけは完璧に設計されてる」

 おれは壁の前に立ち尽くした。論理矛盾がない壁は崩せない。循環参照もない。外部参照もない。単独で完結した、完璧な条項。

「第三項」

 リサが壁の下部を指差した。

「『本条項の無効化には、全アクティブユーザーの過半数による明示的な反対決議を要する』。これが唯一の突破口。Rootは自信があるんだよ。三百八十万人の過半数——百九十万人以上のユーザーが同時に反対を表明することは不可能だと」

「不可能だろう。普通に考えたら。百九十万人を同時に動かすなんて——」

「でもRootはわざわざこの条項を書いた。つまり、仕組み上は可能なんだ。全アクティブユーザーの過半数が明示的に反対を表明すれば、この壁は崩れる。論理矛盾では壊せない壁を、民主主義で壊す。Rootは自分で脱出口を作ったんだよ。使われないと思って」

 おれは第三項を見つめた。百九十万人。裏東京にいるフリープランユーザーの総数は推定百二十万人。それだけでは足りない。プレミアムユーザーや、表東京にいる一般ユーザーも含めて百九十万人を集めなければならない。

「広告ジャックの資産が使えないか」

 おれは頭を回転させた。広告ジャック——以前おれたちが実行した、AR広告システムへの干渉。全ユーザーの視界にメッセージを表示させた実績がある。

「メッセージは送れる。だが同意を取りつけるのは別の問題だ。百九十万人が能動的に反対を表明する必要がある。表示するだけじゃ足りない。ユーザー一人一人が自分の意思でアクションを起こさないと——」

「明示的な反対決議。つまり投票。百九十万票」

 おれは壁に背中を預けた。冷たい。生体ボットネット条項の文字が背中に触れている。

「ここまで来て——壁に阻まれるのか」

「阻まれてない。突破方法は分かってる。百九十万人の同意を集めればいい。不可能に近いけど——不可能じゃない」

 リサが壁に手を当てた。条文の文字が微かに震えた。

「地上のDDoS。あの百人は、テネシー計画を知って怒って、自分から協力してくれた。百人が集まった。なら千人も、一万人も、百万人も——可能性はゼロじゃない」

「楽観的すぎる」

「楽観じゃない。可能性の計算。テネシー計画の真実を全ユーザーに開示できれば——生体ボットネットで寿命を削られてると知ったら——意識を同期されて個人が消えると知ったら。反対しないユーザーがいると思う?」

 おれは黙った。リサの言葉は正論だ。問題は、三百八十万人にその情報をどう届けるかだ。

「一つだけ方法がある」

 おれは壁から背中を離した。

「このデータセンターの最深部にいるんだ。Root直轄サーバーの近くにいる。ここからなら——オムニバース全体のブロードキャストシステムにアクセスできるかもしれない。広告ジャックの拡張版。全ユーザーに生体ボットネットの真実を送信して、同時に投票システムを構築する。このデータセンターの通信リソースを使って」

「Rootのシステムを使って、Rootの規約を壊す投票を実施する」

「皮肉だろ。だがそれしかない」

 おれはインターフェースに触れた。異能が応答する。限界に近い。だがまだ動く。

 利用規約の壁は、技術では壊せなかった。論理でも壊せなかった。最後の壁を壊すのは——人の意思だ。百九十万人の。

「先に進もう。ブロードキャストシステムへのアクセスポイントを探す」

 リサが頷いた。生体ボットネット条項の壁を背にして、おれたちはさらに奥へ歩いた。

 頭の中で数字が回っている。百九十万。途方もない数字だ。だがおれたちは、ゼロからここまで来た。おれ一人から始まって、リサが加わり、カガミが情報をくれて、ミナミが道を開いて、裏東京の百人が体を張った。

 ゼロから百まで来たなら、百から百九十万まで——行けない道理はない。スケーリングの問題だ。設計が正しければ、百台のシステムは百万台でも動く。

 おれたちの設計が正しいことを——祈るしかない。