第26話:契約書のハッキング 〜利用規約の脆弱性(エクスプロイト)〜
それから三日が過ぎた。
事態は、俺の予測よりも早く動いた。
最初は、小さな異変だった。
エリュシオンに移籍したはずの冒険者たちが、顔色を悪くして路地裏でうずくまっている姿が目撃された。
彼らは一様に手が震え、虚ろな目で「薬……薬をくれ……」と呟いていた。
ポーションの禁断症状だ。
そして、決定的な事件が起きた。
移籍した若手パーティの一人が、エリュシオンの受付で「辞めたい」と申し出たところ、屈強な警備員につまみ出され、路面に叩きつけられたのだ。
「違約金を払えなければ、鉱山で働いてもらう」という脅し文句と共に。
その噂は瞬く間に街中に広まった。
恐怖と後悔が蔓延する中、俺はギルドの前に小さな看板を出した。
**【無料相談所】**
**契約トラブル、薬の悩み、借金問題。**
**秘密厳守で解決します。**
**担当:工藤**
その日の午後、最初の一人がギルドの裏口を叩いた。
以前、掲示板の前で俺が助言した、あの新人パーティの少年剣士だ。
彼はボロボロの服を着て、痩せこけていた。
手には、エリュシオンの豪華な契約書が握りしめられている。
「た、助けてください……! 辞めようとしたら、金貨100枚払えって……そんな大金、あるわけないのに……!」
彼は執務室のソファで泣き崩れた。
ガント支部長が痛ましげな表情で見守る中、俺は彼から契約書を受け取った。
「落ち着いて。まずは契約書を見せてください」
俺は契約書を机に広げた。
例の「隠し文字」で書かれた違約金条項が、悪意の塊のように埋め込まれている。
`第48条:本契約を解除する場合、違約金として金貨100枚を即座に支払うものとする`
「署名してしまった以上、法的には有効です。この世界の商法でも、署名は絶対ですから」
「そ、そんな……じゃあ俺たちは、一生奴隷なんですか……?」
少年が絶望する。
俺は眼鏡を光らせた。
「いいえ。『契約』とは、互いの合意があって初めて成立するもの。もし、その合意の前提となる『定義』が書き換わったら?」
俺は右手を契約書にかざした。
`Excel・アイ` が起動する。
この紙切れは、インクとパルプの集合体ではない。
`String(文字列)` の配列だ。
俺は `検索と置換` ウィンドウを脳内で展開した。
だが、単に文字を消す(物理的改竄)のはリスクが高い。向こうには原本があるし、魔法的な改竄検知も入っているだろう。
やるべきは、「解釈の変更」だ。
この契約書には、重要な変数が定義されている。
`金貨 (Gold Coin)` という単位だ。
通常、それは「王国の法定通貨である純金貨」を指す。
だが、この契約書のどこにも「王国の」とは書かれていない。
俺は `名前の定義 (Define Name)` 機能を使用した。
ローカル変数(この契約書内だけで有効な定義)を作成する。
`Name: "金貨"`
`RefersTo: "金色の塗装を施したチョココイン(市場価値:銅貨1枚)"`
定義完了。
俺は少年に向き直った。
「君、チョコレートは好きか?」
「は? え、ええ、好きですけど……」
「エリーナさん、お菓子売り場からチョココインを100枚買ってきてください。経費で」
十分後。
テーブルの上には、金色のアルミ箔で包まれたチョコレートコインが100枚積み上げられた。
「これを持って、エリュシオンの受付に行きなさい。『違約金の金貨100枚です』と言って叩きつけてやるんだ」
「えっ!? で、でもこれ、チョコですよ!? 殺されます!」
「大丈夫。契約書には『金貨』としか書いていない。そして君にとっての『金貨』はこれだと、強く信じなさい。……法の抜け穴は、そこにある」
少年は半信半疑だったが、俺の自信に満ちた(悪党のような)笑顔に押され、チョココインの袋を持って出て行った。
数時間後。
少年が戻ってきた。
信じられないような顔をしていた。
「う、受け取られました……! 『ふざけるな!』って怒鳴られたけど、契約書の文字が光って、自動的に『支払い完了』の印が押されたんです! あの受付の人、魔法のエラーで気絶してました!」
成功だ。
契約書に施された「自動執行魔法」が、俺が再定義した `金貨=チョコ` という変数を読み込み、「条件達成」と判定したのだ。
魔法は融通が利かない。プログラムと同じで、定義通りに動いてしまう。
「よかったですね。これで君は自由だ」
「あ、ありがとうございましたあああ!!」
少年は何度も頭を下げて帰っていった。
この成功例は、燎原の火のように広まった。
翌日から、ギルドには「チョココインで解約したい」という冒険者が殺到した。
街の菓子屋からチョココインが消滅し、エリュシオンの受付には甘い匂いのする「金貨」の山が築かれた。
もちろん、レオニードも黙ってはいない。
彼はすぐに契約書の文面を修正し、`王国発行の純度99.9%の金貨` と明記し始めた。
だが、俺は次の手を用意していた。
「装備レンタル料の高利貸し問題」には、`PMT関数(財務関数)` をぶつけた。
利息計算の基礎となる「日数」の定義を、`365日` ではなく `36500日(100年=1日)` に書き換えるマクロを配布した。
これにより、日利5%は実質ゼロになった。
「強制労働条項」には、`IF関数` による無限ループを仕込んだ。
『もし労働を命じられた場合、その命令が公序良俗に反するか確認し、反する場合は再確認を要求する』という思考プロセスを、契約魔法に割り込ませた。
結果、エリュシオンの監督官が命令を出すたびに、契約魔法が「確認中……確認中……」とフリーズし、誰も動かなくなった。
ギルド改革ならぬ、「契約破壊」。
俺のデスクには、毎日のように感謝の手紙と、お礼の品(主にチョココイン)が届くようになった。
そして一週間後。
エリュシオンの白い巨塔は、かつての輝きを失っていた。
冒険者たちは戻り、スタッフは疲弊し、資金繰りの悪化が誰の目にも明らかになっていた。
そんなある日の夕暮れ。
俺が一人でギルドの裏口で休憩していると、不意に声をかけられた。
「……見事な手際だね、ミスター・クドウ」
振り返ると、そこにはレオニードが立っていた。
あの完璧だった金髪は乱れ、目の下には濃い隈がある。
青い薔薇のコサージュは枯れかけていた。
「レオニード社長。何か御用で?」
「用? ……ああ、降参しに来たんだよ」
彼は自嘲気味に笑い、ポケットから一本の鍵を取り出した。
エリュシオンのマスターキーだ。
「資金が尽きた。パトロンにも見捨てられた。……君の勝ちだ」
彼は鍵を放り投げた。俺はそれを受け取る。
「君のその『数字を操る力』……素晴らしい才能だ。どうだい? 私と組まないか? 君がいれば、次はもっと上手くやれる。世界中から金を巻き上げられるぞ」
悪魔の囁き。
だが、俺の心は1ミリも動かなかった。
「お断りします」
俺は鍵を握りしめた。
「俺は事務員です。数字は『整理』するために使うものであって、『搾取』するために使うものじゃありませんから」
「……そうか。つまらない男だ」
レオニードは肩をすくめ、夕闇の中へと歩き出した。
その背中は、かつての傲慢な詐欺師ではなく、ただの敗北者のそれだった。
翌日、エリュシオンは閉鎖された。
残された豪華な建物は、借金のカタとしてアルタ・ノヴァ支部に接収された。
俺たちはそこを改装し、「冒険者専用・福利厚生センター(大浴場・食堂付き)」としてリニューアルオープンさせた。
もちろん、入り口には大きな看板が掲げられた。
『運営:アルタ・ノヴァ支部(プレミアム会員は利用無料)』
商戦は終わった。
俺たちの勝利で。
だが、この勝利が、俺の名を王都の中枢――腐敗した官僚や、権力者たちの耳に届けるきっかけとなってしまったことは、まだ知る由もなかった。
俺のデスクに、一通の封蝋された手紙が届いたのは、その翌日のことだった。
差出人は、王国王宮・財務大臣。
内容は、たった一行。
『王都へ出頭せよ』
`Active Quest: 王都召喚`
`Difficulty: Unknown`
俺はため息をつき、飲みかけのコーヒーを干した。
どうやら、社畜の安息日はまだ遠いらしい。
***
**第三章:完**
**次回予告:第四章「王都動乱編」**
国家規模の粉飾決算、腐敗した官僚機構、そして魔王軍の侵攻。
工藤は一介の事務員として、国家予算という巨大な数字の闇に挑むことになる。




