小説置き場

第44話「利用規約の壁」

3,185文字 約7分

利用規約を読んだことのある人間は、どれくらいいるだろう。

 ソフトウェアをインストールするとき。アプリに初回ログインするとき。画面に表示される長大な文章。「同意する」のボタンを押すまで先に進めない。だが誰もが読まずにスクロールして、ボタンを押す。同意する。何に同意したのか分からないまま。

 おれだって読んでなかった。オムニバースの利用規約。三百四十七条、全八万六千字。異能サブスクリプションに加入したとき、一秒で「同意する」を押した。

 その規約が今、物理的な壁としておれたちの前に立っている。

「第一条。本サービスの利用者は、以下の条項に同意したものとみなす——」

 通路を塞ぐ壁の表面に、条文が刻まれていた。白い文字が黒い壁面に浮かんでいる。AR上の構造体。ファイアウォールとは違う質感。光ではなく、文字そのものが物理的な硬度を持って空間に実体化している。

 おれは壁に触れた。冷たい。指先がはじかれる。

「硬い。物理的に突破するのは無理だ」

「異能は?」

 おれは右耳の後ろのインターフェースに触れた。異能を起動して、壁に干渉しようとした。不正アクセス——壁の構造にハッキングを試みる。

 弾かれた。壁の表面に赤い文字が浮かぶ。

  アクセス拒否。利用規約への不正干渉は、第二百十二条に基づきアカウント停止の対象となります

「規約自体がセキュリティシステムになってる。規約に書かれた条項が、そのまま防御ルールとして機能している」

 リサが壁に近づいて、条文を読み始めた。目が左右に動いている。速い。元エンタープライズの人間は、こういうとき強い。大量の文書を読み込む訓練を受けている。

「クロヤ。この壁、規約の条文で構成されてるけど——条文同士の論理的整合性が壁の強度になってるみたい」

「どういうことだ」

「規約の条文が矛盾なく成立している限り、壁は完全な強度を保つ。でもこの規約には三百四十七条もある。八万六千字。これだけの分量を完全に矛盾なく書くのは——人間には不可能なはず」

 おれの目が見開かれた。

「論理矛盾を見つけて指摘すれば、壁にヒビが入る」

「そう。矛盾する条文を同時に指摘すると、その部分の構造が崩壊する。規約の壁を突破するには——規約を読んで、矛盾を見つけて、声に出して指摘するしかない」

 なんというセキュリティだ。誰も読まない利用規約を、読まなければ突破できない壁にした。Rootの悪趣味もここまで来ると芸術だ。

「リサ。お前、規約を読んだことあるか」

「エンタープライズ時代に、全文読んだ。二回」

「二回。さすがだな。覚えてるか」

「大まかには。でも、版が変わってる可能性がある。Root直轄エリアの規約は、外部に公開されてるものと違う条項が追加されてるかもしれない」

 おれは壁の条文をスクロールした。AR上のインタラクションで、壁面の文字列を上下にスライドできる。膨大な量の条文が流れていく。

「全部読んでたら何時間かかる」

「この分量なら——最低でも十二時間」

「そんな時間はない。DDoSの効果が持つのはせいぜい数時間だ。地上のモデレーターが片付いたら、こっちに来る」

「なら、当たりをつけるしかない。矛盾が生じやすいのは——関連する条項が離れた場所に書かれているケース。たとえば、ユーザーの権利を定めた条項と、サービス提供者の免責を定めた条項は、往々にして整合性が取れていない」

 リサの目が動いた。条文をスキャンしている。おれには真似できない読み方だ。おれはコードを読む人間だ。自然言語の法律文書は管轄が違う。

「——あった」

 リサの声が鋭くなった。壁の中腹を指差す。

「第二十三条第七項。『ユーザーは自己の異能データに関する完全なるコントロール権を有する』。これ」

「それがどう矛盾してる」

「第百五十六条第三項と矛盾してる。『サービス提供者はサービス改善の目的で、ユーザーの異能データを制限なく収集・分析・利用する権利を有する』。ユーザーが完全なコントロール権を持っているなら、サービス提供者が制限なく利用する権利を持つことはできない。完全なコントロール権と制限なき利用権は論理的に両立しない」

 おれは笑った。利用規約の矛盾。どんなサービスにも存在する、ユーザーへの建前と運営の本音の隙間。

「声に出して指摘するんだな」

「やってみる」

 リサが壁に向かって立った。息を吸った。

「第二十三条第七項と第百五十六条第三項は矛盾している。ユーザーの完全なコントロール権と、サービス提供者の制限なき利用権は、論理的に両立しない」

 壁が震えた。

 リサの声が反響した。AR空間に波紋が広がる。壁の表面に亀裂が走った——第二十三条第七項の文字列と、第百五十六条第三項の文字列が同時に赤く発光し、その間の壁面にヒビが入った。

 だが——崩れなかった。

 ヒビは入ったが、壁は耐えている。周囲の条文が構造を補強して、崩壊を食い止めている。

「一箇所じゃ足りないのか」

「足りない。三百四十七条もある規約の二箇所が矛盾しても、残りの三百四十五条が壁を支えてる。もっと多くの矛盾を——連鎖的に指摘しないと」

 おれは壁を見上げた。ヒビの入った部分から、隣接する条文が見えている。第二十四条。第百五十七条。関連する条項がヒビの周囲に集まっている。

「リサ。この近くの条文にも矛盾はないか」

「探してる。第二十四条第二項——『ユーザーの個人情報は、ユーザーの明示的な同意なく第三者に提供されない』。これと——第百八十九条第一項——『サービス提供者は、法令に基づく場合および業務提携先への情報共有において、ユーザーの個人情報を提供できる』。業務提携先への共有はユーザーの明示的同意を要件としていない。矛盾」

「言え」

「第二十四条第二項と第百八十九条第一項は矛盾している。明示的同意の要件と、業務提携先への無条件共有は両立しない」

 壁が再び震えた。新しいヒビが走る。最初のヒビと繋がった。亀裂の網が広がっている。

「もう一つ。もう一つ見つければ——」

 リサが目を走らせた。だが、条文の量が膨大すぎる。関連する矛盾を瞬時に見つけるには処理能力が足りない。

「おれがやる」

 おれは右耳の後ろのインターフェースに触れた。異能を起動した。壁への直接干渉は弾かれる。だが——壁の表面に浮かぶ条文を「読む」ことは禁止されていない。読むのは閲覧だ。不正アクセスではなく正規の閲覧行為。

 異能を使って条文をスキャンした。通常の読解速度の百倍で。文字列をパターンマッチングにかけて、論理的矛盾のある組み合わせを検出する。

「——見つけた。第三十一条第五項、『サービスの中断なき提供を保証する』と、第二百二十二条第一項、『サービス提供者は事前通知なくサービスを中断できる』。保証と中断権の矛盾」

「第三十一条第五項と第二百二十二条第一項は矛盾している。中断なき提供の保証と、事前通知なき中断の権利は両立しない」

 リサの声がおれの解析結果を即座に読み上げた。

 壁が——崩れた。

 三つの矛盾が連鎖した。亀裂が壁全体に広がり、条文の文字がバラバラに崩壊して、光の粒子になって消えた。

 人一人が通れる穴が壁に開いた。

「突破した」

「第一の壁を、ね」

 リサが通路の奥を見据えた。穴の向こうに——もう一枚の壁が見えている。さらに奥にも。条文の壁は一枚ではなかった。何枚も重なっている。

「規約の多層防御か。ファイアウォールの次はWAFとIDSの組み合わせみたいだな」

「でも突破方法は分かった。矛盾を見つけて指摘する。私が規約を読んで、あなたがパターンマッチングする。二人なら——」

「ああ。できる」

 おれたちは最初の穴をくぐった。次の壁が目の前に迫る。条文の密度が上がっている。奥に行くほど複雑になるのだろう。

 だが、おれたちは二人だ。規約を読む人間と、矛盾を検出する人間。最高のバグハンティングチーム。

 次の壁に向かって、おれは異能を起動した。