2026年7月24日、カナダ・ノバスコシア州控訴裁判所は異例の判決を下した。Brandon Klayme氏に対するすべての罪名を無条件で取り消し、即座に無罪を言い渡したのである。判決文にはこう記されている。「Klayme氏は事実として無実である。彼が起訴されるべきではなかったし、ましてや有罪判決を受けるなど論外であった。」
この「起こるはずのなかった」冤罪事件の引き金となったのは、わずか1つのアンダースコアだった。
警察がKik社にアカウント情報の開示請求を行う際、ユーザー名「fus__ro_dah」を誤って「fus_ro_dah」と記載してしまった。2つのアンダースコアが1つになってしまったのである。 このたった1文字の差異によって、被害者に会ったこともないカナダ人男性が、逮捕、裁判、有罪判決、そして18ヶ月の満期服役というあまりに過酷な司法手続きを経験することになった。
画像出典:Getty Images。たった1文字の違いが、ひとりの人間の人生の軌跡を大きく狂わせた。
狂った捜査の連鎖
事件自体は極めて単純なものだった。2018年、米ウィスコンシン州マディソンで、12歳の少女の母親が、娘がKikメッセージングアプリを通じて成人とみられる男性と「不適切な」画像を含むメッセージをやり取りしていることに気づき、警察に通報した。
デイン郡警察が捜査に乗り出した。少女のスマートフォンをフォレンジック調査した結果、ユーザー名「fus__ro_dah」(fusの後ろにアンダースコアが2つ)のアカウントと125通のメッセージが交わされていたことが判明した。これはゲーム『The Elder Scrolls V: Skyrim』の有名な「Fus Ro Dah(不揺の力)」というドラゴンスローツの呪文に由来するユーザー名だった。
警察はこの人物を特定しようと、Kik社に対して該当ユーザー名の登録情報の開示命令(召喚状)を発付した。
しかし、召喚状に記載されたユーザー名は「fus_ro_dah」——アンダースコアが1つしかなかった。
Kik社は召喚状の記述に従い、そのユーザー名に紐づくメールアドレスを提供した。そのメールアドレスをたどると、GoogleのログからIPアドレスがカナダ国内のものであることが判明。事件はカナダのハリファックス地域警察へと引き継がれた。ハリファックス警察がインターネットプロバイダのBell Aliantに照会した結果、そのIPアドレスはBrandon Klayme氏の自宅住所へと行き着いた。
警察はKlayme氏の自宅を家宅捜索し、スマートフォンやノートPCを押収した。しかし、押収した端末からは事件に関連する証拠は一切検出されなかった。 被害児童の写真も、Kikの会話履歴もなく、犯行当時にKlayme氏がKikを使用していたことすら証明できなかった。
それにもかかわらず、検察は彼を起訴した。罪名は「14歳未満の未成年に対する情報通信網を通じた誘引行為」「児童への猥褻物の提供」「児童ポルノの所持」の3つである。
裁判が進み、2023年に有罪判決、2024年に禁錮18ヶ月の刑が言い渡された。Klayme氏は刑期をすべて服役した。
控訴手続きの過程で、Klayme氏の弁護団がようやく「抜け落ちたアンダースコア」の存在に気づいた。Klayme氏は振り返る。「控訴の主張を準備していた最後の段階で、召喚状の中に私の人生を根底から変えてしまった小さな誤りがあるのを発見したのです。」
検察側も再検証の末に控訴を認めた。控訴裁判所はさらに、「もし事件が適切に捜査されていれば、証拠はカリフォルニア州にIPアドレスを持つ『Jay』という容疑者を指し示していたはずだった」と指摘した。
なぜ1文字のミスで冤罪が起きたのか
この事件を技術的な観点から分解すると、複数の要素が鎖のように連なった「原因帰属の連鎖」が見えてくる。これは、最初の1文字のズレが各システムのステップで増幅され、最終的に取り返しのつかない人道的災難へと発展した「バタフライエフェクト」のデジタル版と言える。
第1のチェーン:Kikのユーザー名システム。 Kikのユーザー名は大文字・小文字を区別せず、アンダースコアの数を厳密に区別する。データベース上では「fus__ro_dah」と「fus_ro_dah」は完全に別のレコードである。これはシステムの「バグ」ではなく、なりすましを防ぐための厳密一致(完全一致)設計である。しかし、警察の捜査書類にミスがあった場合、この完全一致が諸刃の剣となる。
第2のチェーン:データベース照会の完全一致。 警察がKikに召喚状を送る際、少女のスマホのフォレンジックレポートから得たユーザー名を、法的文書に手動で転記した。この段階には曖昧検索(あいまい検索)や検証の仕組みが存在しなかった。召喚状を受け取ったKik側も完全一致文字列検索を実行し、要求されたユーザー名の登録情報をそのまま返した。システムは命令通り正しく動作したが、照会対象そのものが間違っていたのだ。
第3のチェーン:国境を越えた情報共有の盲点。 ウィスコンシンからハリファックスに至るまで、情報伝達チェーンに関わったすべての関係者が「被疑者はfus_ro_dahである」という誤った前提を疑わずに引き継いだ。技術的な直感から言えば、この国境を越えた捜査連携の全プロセスにおいて、「一次データを検証する」ステップが一切組み込まれていなかった。
第4のチェーン:裁判における確証バイアス。 法廷において、検察は一見すると完璧な証拠チェーンを提示した。Kikがメールアドレスを提供し、GoogleがIPアドレスを紐付け、Bell Aliantが住所を特定した。一見すると各ステップは「厳密」に見える。しかし、最上流にあるユーザー名の書き写しが正しいかどうかを誰一人として見直さなかった。これは個人の手違いではなく、プロセス設計における構造的な欠陥である。
フォレンジック調査から定罪に至るまで、すべてのステップが妥当に見えたが、源流の1つのミスが徐々に増幅されていった。
司法ITシステムにおける「1ピクセル」の欠陥
ソフトウェア工学において、このような問題は**「入力検証チェーンの断絶(Broken Input Validation Chain)」**と呼ばれる。データが異なるシステム、組織、法域をまたいで流通する際、初期入力に含まれる微小なエラーが伝送ごとに固定化され、増幅され、「正当化」されていく現象である。
この事件に見られる主要な技術的欠陥を考察する。
欠陥1:あいまい検索(ファジーマッチ)機能の欠如。
司法データベースの照会では、通常「完全一致(exact match)」がデフォルト戦略として採用される。類似した名前による誤逮捕を防ぐという意味では、これは大半のシナリオで合理的な設計である。しかし問題は、安全装置のない完全一致照会は、安全装置のない銃と同じであるという点だ。
もしKikの照会システムが、完全一致で検索された際にレーベンシュタイン距離(Levenshtein distance)が1のあいまい検索を自動実行し、1文字違いの類似レコードが存在する場合にアラートを出していたなら——「fus_ro_dah」と「fus__ro_dah」は「極めて類似したレコード」としてフラグが立ち、手動レビューが促されたはずである。これに高度な技術は不要であり、標準的なSQLのSOUNDEX関数やPostgreSQLのpg_trgm拡張機能などで容易に実装できる。
欠陥2:システム間の相互検証の欠如。
Klayme氏の端末から犯罪証拠が何も検出されなかった時点で、この巨大な「レッドフラグ(警告信号)」は自動的な再検証をトリガーすべきであり、無視されるべきではなかった。システム構成としては、簡単なルールエンジンを設けるだけで防げたはずである。「システムA(警察)の元データ」と「システムB(事業者)で照会したユーザー名」が一致しない場合、「不一致」として警告を出し、人間の確認を必須とする仕組みである。
しかし現実は、各警察機関や事業者のシステムが個別に調達・運用されており、ウィスコンシン州警察の事件管理システム、KikのアカウントDB、ハリファックス警察のフォレンジックシステムの間には、構造化されたデータ検証インターフェースが存在しなかった。
欠陥3:システムの効率化のために犠牲にされた人間の確認。
システムの設計目標は、往々にして「精度の向上」ではなく「事件解決の迅速化」に偏りがちである。これは工学的なトレードオフの選択であるが、そのトレードオフの帰結が一人の公民の自由を奪うものである以上、どちらに天秤を傾けるべきかは明白である。
控訴裁判所は判決文で次のように率直に述べている。「ユーザー名に関する情報は裁判の時点で既に存在していたが、それがなぜ見落とされたのかを確認・説明する証拠はない。」これをエンジニアリングの言葉に翻訳すれば、「データはそこにあったが、データを検証するプロセスを誰も設計していなかった」ということだ。
技術によるポカヨケ(防呆)ソリューション
「ポカヨケ(Poka-yoke)」とは、製造業やインダストリアル・エンジニアリングに由来する概念であり、人間のミスが発生し得ないようにする、あるいはミスを即座に可視化する設計を指す。司法ITシステムにおいて、このような悲劇を再発させないためのポカヨケは少なくとも3つのレイヤーで構築できる。
第1レイヤー:入力時の自動補正・警告プロンプト。
捜査員が召喚状作成システムにユーザー名を入力した際、システムは該当事件のフォレンジック記録内に「似ているが異なる」文字列が存在しないかを自動判定すべきである。例えば「fus_ro_dah」と入力された際、データベース内の取証レポートに「fus__ro_dah」が存在すれば、送信前に「入力された文字列は証拠記録(fus__ro_dah)と1文字異なります。確認してください」という警告ポップアップを表示させる。
このロジックの実装難易度はどれくらいか? 情報科学科の大学2年生がレーベンシュタイン距離アルゴリズムを用いて、半日で実装できるレベルである。
第2レイヤー:機関間照会時の自動クロスチェック。
米国の警察が国外の事業者に開示請求を行う際、システムが請求書内のユーザー名と一次取証レポート内のユーザー名を自動で付け合わせる。不一致が検知された場合はKikへ送信せず、自動的に「保留状態」にする。技術的には、2つの組織間に検証ミドルウェア層を挿入することに相当する。
第3レイヤー:証拠不整合時の自動監査トリガー。
物理的証拠(押収端末の解析結果)と電子証拠(事業者が提供したアカウント情報)が完全に矛盾する場合、システムは案件を自動的に「矛盾状態」としてフラグを立て、審査キューに回す仕組みを作る。自動化された標準的な起訴フローをそのまま流さないように制御するのである。
冤罪がもたらした代償
Klayme氏は最終的に無罪となったが、この事件が彼に与えた損害は実在し、取り返しのつかないものである。18ヶ月の服役、犯罪経歴(後に抹消されたとはいえ、完全に消去されるまでは就職や生活に壊滅的な影響を与えた)、そして「小児性犯罪者」という烙印を押された精神的トラウマである。
全米刑事弁護人協会(NACDL)のデータによれば、米国では毎年、データベースの照会ミス、指紋照合の誤り、目撃証言の誤認など、ITや手続き上の欠陥に起因する冤罪事件が数千件規模で発生している。全米冤罪登録簿(National Registry of Exonerations)の記録によれば、冤罪事件の約43%になんらかの科学捜査またはデジタル証拠のエラーが関与しているという。
これは技術者として背筋が凍る統計データである。稼働中の司法ITシステムの精度がたとえ99.99%(エラー率0.01%)であったとしても、年間数百万件の照会が行われる基盤の上では、数百件の冤罪を生み出すことを意味する。
控訴裁判所の判決文の結びにはこうある。「ユーザー名に関する情報は裁判時に存在していたが、それがどのように見過ごされたかを立証または説明する証拠はない。」これこそが最も恐ろしい現実である。システムは設計当初から『自分自身が間違える可能性』を一切考慮していなかったのだ。
エンジニアリング視点からの教訓
この事件の痛烈な点は、それが**「極めて容易に防げたはずである」**という点にある。ゼロデイ脆弱性でもなく、高度なサイバー攻撃でもなく、内部関係者による悪意の破壊でもない。ただの「1文字の入力ミス」なのだ。ソフトウェア開発において、この種の問題の修正コストはほぼゼロである。入力フォームの裏に数行のあいまい検索ロジックを追加し、データ連携時に検証層を挟むだけでよい。
しかし、技術的実装の最大の障害となっているのは組織的インセンティブの歪みである。警察や司法機関のIT予算は、「照会スピードの向上」「データベースの拡大」「AI顔認証の導入」といった「見栄えの良い」機能に優先して割り当てられ、「誤検知の削減」「検証ステップの追加」「精度の向上」といった「目に見えない」改善は後回しにされがちである。
前者の成果は年次報告書に華々しく記載できるが、後者の価値は「問題が起きなかったこと」にあり、「問題が起きなかったこと」は評価指標(KPI)として数値化しにくいからだ。
この事件の質的な側面をエンジニアリングの視点から捉え直すと、より普遍的な課題が浮かび上がる。社会は司法、法執行、金融、医療といった重要機能を大型ITシステムに大きく依存するようになっているが、それらシステムの設計者が抱く「失敗モード(Failure Modes)」への理解は、「正常系(Happy Path)」への理解に比べて遥かに遅れているということだ。
ソフトウェア業界でよく引かれる統計として、重大な欠陥の約60%は要件定義段階のミスに起因すると言われる。では、司法ITシステムの要件定義書の中に『入力データが証拠記録と完全一致しなかった場合にどう挙動すべきか』を明記した文言が何行存在するだろうか?
恐らく、1行も存在しないのが現実だろう。
おわりに
ノバスコシア州控訴裁判所は、判決文の最後に次のように述べている。「これらはすべて極めて遺憾なことである。しかし、当裁判所が今なさねばならないのは、この過ちを正すことである。」
ソフトウェアエンジニアにとって、この言葉はすべてのシステム設計書の1ページ目に刻まれるべきものである。「我々が設計しているのはシステムであるが、そのシステムが動かしているのは人間の人生である。」 コードにおけるアンダースコア1つは単なる1バイトの差に過ぎないが、現実世界では一人の人間の18ヶ月分の自由そのものなのだ。
参考リンク:
- Ars Technica: Police missed one underscore, sent wrong man to prison
- CBC News: A subtle mistake — how a single underscore led to an innocent Halifax man’s conviction
- HN Discussion (item?id=49076116)
- Nova Scotia Court of Appeal decision
- 全米冤罪登録簿 (National Registry of Exonerations)