その7 チーム

    *


 マトがビターコイン用アプリをダウンロードしている間に、細田は二千台のサーバのセットアップ準備を始めていた。膨大な作業になると思っていたけれど、「一台作ってテンプレートにしたら後はそれからマシンを作ってアンシブルでドッカーコンテナをギットで云々」と、まあなんだかうまくできるらしい。加藤と長谷川も細田の指示のもと、作業を分担しているようだ。

 理乃は「とりあえず甘い物買ってくるね」と買い出しに出かけ、俺だけがなにもできることがなくてただ、みんなの作業を見守っていた。手が必要であれば手伝いたいところだけど、今はスキルがなければなんの役にも立たなそうだった。


「ダウンロードしてきたわ。ソースコードもついてる」

「ラッキーですね」


 マトの言葉に細田が応える。


「ソースコードがついてるとラッキーなのか?」

「今から衣川先輩はプログラムを書き換えなきゃいけないんですよ――表に出さずに過去のブロックから分岐したチェーンを作るために。ソースコードっていうのはプログラムの設計図みたいなものなんで、それがなかったらものすごく大変なことになるんです」


 今ひとつピン、とこない。実際に動くプログラムがそこにあるんだから、それを直せばいいんじゃないだろうか。


「うちの長谷川はバイナリアンなんでHexヘックス直で読めますけど、普通は無理です。通常は設計図ソースコードを書き換えて、それをコンピュータにかけてプログラムを出力させるんです」

「マトでも読めないのか?」

「そこまで変態じゃないわ。ニーモニックにまで落ちてれば読めるけど」


 マトは手を止めず、モニタから目を離さないまま言った。変態と言われた長谷川はなぜか嬉しそうだ。君らの業界では褒め言葉か、それ。


「OK、書き換えた。デプロイして」

「了解っす」


 細田はマトが書いたプログラムを受け取ると、二千台のサーバにインストールする。


「動き始めました。表のブロックチェーン生成速度との比で〇.二、〇.三……順調に上がってきてます」


 オペレーション・マンダムは表のブロックチェーンとの速度競争だ。マトへの送金が発覚してからすでに二時間が経過している。俺たちのチェーンはその二時間の遅れを取り戻し、さらにその先に進まなければならない。

 俺たちは細田のモニタに刻々と表示される速度比を見つめた。


「伸びが落ちてきたな」

「二千台すべてのデプロイが完了してます。このリソースだとここまでですね」

「〇.八か……三千台に増やすか」


 二千台で〇.八なら、三千台だと単純計算で一.二。じわじわとではあるが追いつくことができる。マトが「ん」とうなずき、細田がコンピュータを追加する。しかし、細田は怪訝そうな顔でモニタに顔を近づけた。


「――あれ? 追加できないですね」

「ちょっと見せて」


 モニタを覗き込んだマトが息を呑む。


「どうした?」


 俺の問いかけにも応えず、マトが何度もクリックする。


「……そんなことって……」

「なにかあったのか?」


 呆然とモニタを見つめるマトの横顔に問いかける。


「リソースの上限……みたい……」

「つまり?」

「売り切れってこと」

「なんだって……」


 頼みの綱だったクラウドが売り切れ……? そんなことあり得るのか。


「どうします、鷹野先輩。このままだと追いつけません」

「マト、他にクラウドサービスはないのか? ほら、マイクロソフトとか、アマゾンとか、グーグルとか」


 俺は知っている企業を羅列したけれど、マトは首を横に振るだけだった。


「ビターコインを受け付けているクラウドサービスはダークウェブにしかないわ。それ以外を使おうとしたらビターコインから換金しなきゃいけない」


 俺たちがやろうとしているReOrgは取引をなかったことにしてしまう。今、換金してしまったら俺たちは取引所から金を盗み出したことになってしまう。


「……やっぱりやめよう、祐」


 思い詰めた表情でマトが言う。


「なに言ってんだよ、急に」

「すでにこのクラウドには相当額のビターコインを突っ込んでるのよ。それでReOrgできなかったら、ただ契約金を食い潰しただけにしかならない。見切りをつけるなら早いに越したことはないわ」


 そうだ。俺たちはマトの契約金をつぎ込んでいる。返金が失敗すれば、その費用はマトが負うことになる。契約金はなし、ゼロリウムには行かなければならないなんて最悪のシナリオじゃないか。

 俺はやっとマトの言った「当事者が負うリスク」の意味を理解した。


「止めるわよ」

「ちょ、ちょっと待ってくれ」


 コントロールパネルの「Terminate」ボタンにカーソルを動かしたマトを慌てて止める。


「きっとまだ方法はある」

「どんな方法? 今だって一秒ごとにどんどんビターコインは消えていってるのよ」

「えと、その……えと、加藤! 数学得意なんだよな? なんか早い計算方法とかないのか?」

「あったらみんな使ってるって言ったでしょ」


 マトはあっさり言い切った。加藤も申し訳なさそうにうなずく。

 わかってるさ。

 わかってるけど、そう言わずにはいられなかった。


「いいわね?」

「あのぉ……」


 長谷川が恐る恐る手を挙げた。


「どうした? なにかいい方法を思いついたのか?」


 そうじゃないんですけど……と長谷川が続ける。


「ちょっと気になることがあって……元のソースコード、コンパイルしてもあのバイナリ出てこないんです」

「? どういうことだ」

「つまり、プログラムと一緒にあった設計図ソースコードは、そのプログラムのものじゃないってことです」


 再び「Terminate」ボタンをクリックしようとしていたマトはモニタから目を離し、長谷川の方を振り向いた。


「コンパイラの最適化オプションは? バージョンが違うとか」


 長谷川が首を横に振る。


「そんなレベルじゃないです。ナンスの計算ルーチンがまるっきり違います。ほらこれ」


 長谷川は自分のモニタを見せる。そこには数字とアルファベットが二個ずつずらりと並んでいる。これで分かるなんてみんなすげぇな、と思ったら真っ先にマトが「分かるか」とつぶやいた。


「プログラムとソースコードが一致していないと困るのか?」

「別に困りはしないわ。私たちのようにプログラムを改造するならともかく、プログラムを使うだけならソースコードはいらないもの」

「じゃあなんで付けてるんだ?」

「ソースコードを付けることで、誰でも改造することができる。それと、そのプログラムがマルウェアでないことの証明という意味合いもあるわね。特に仮想通貨のアプリなら、アルゴリズムを明確にするためにも付けると思うわ」

「だったら、それがプログラムと違ってたら意味ないんじゃないか」

「そうね……単なるミスか、それとも……」

「本当はソースコードを付けたくないんじゃないのか? だからわざと違うソースコードを付けたとか」

「でも、このソースコードでコンパイルしてもきちんと動くんですよ」

「計算ルーチンが違うとか言ってたのに?」

「ええ」


 俺は考え込む。計算ルーチンが違うのに、きちんと動く――つまり、同じ答えが出るということだ。


「……どっちが速い?」

「え?」

「そのソースコードから作ったプログラムと、最初っから入ってたプログラム、どちらが計算が速い?」

「試してみます」


 長谷川がキーを叩き、プログラムを実行させる。マトは自分の席に戻るとマウスを握った。


「ソースコードから作ったものは二〇〇h/sハッシュパーセクくらいですね。最初っから入ってたものは……二、〇〇〇h/s!?」

「え?」


 驚いたようにマトが立ち上がる。


「どういうことなの?」

「つまり、このプログラムは『速い計算方法』を使っているってことだな。俺たちが二千台のマシンで動かしているプログラムはその十分の一の速度しか出ない、『遅い計算方法』のものってことになる」

「そんな……でもなんのために」

「よくわかんないけど、『足かせ』なんじゃないか? このプログラムを使う限りはまともな速度で動く、でも、それを改造したり、俺たちのように大量のコンピュータで動かそうとすると遅くなる。そういう『足かせ』をつけておいて、自分たちだけが高速に動かせば儲けられる。ダークウェブならそういうことをやっていてもおかしくないんじゃないか」


 細田が首を捻る。


「でも、このプログラム自体をクラウドで動かせばいいんじゃないですか。ボクらは改造の必要があるからいじりましたけど、そうでなければそのままでいいんですから」

「いや……おそらく祐の言うとおりだわ。添付されているプログラムはウィンドウズ用しかないもの」

「クラウドでもウィンドウズは使えますよ――あ、ライセンスか」

「そう、ウィンドウズのような有償ライセンスのOSを使おうとすると費用が跳ね上がって損益分岐点は遠くなる。安くで借りられるLinuxで動かそうとすると速度が遅くなるってわけよ」


 マトの言葉に細田がうなずいた。


「ともかく、『速い計算方法』は存在するということだ。しかも俺たちの目の前に」

「でも、ソースコードはないのよ。そこからどうやって……」

「長谷川がいる。長谷川がプログラムを読んで、それを数学の得意な加藤が解析すればいい。後はそれをマトがプログラミングして、細田が実行させる、それで速度は十倍、台数にすれば二万台の計算力になる」

「……簡単に言うわね」

「できない?」

「できるわよ――私を誰だと思ってるの?」

「じゃあ始めようか。長谷川、頼む」


 長谷川はすでにモニタの数字の羅列に没頭していた。加藤がその隣に椅子を動かし、ブツブツ呟く長谷川の言葉を数式に置き換えてメモをとっていく。


「マト、長谷川たちが作業している間にもう一つ頼みがあるんだ」

「?」


 俺は自分のアイディアをマトに手早く話した。


「いいけど――それ、逮捕者出てるわよ」

「え、まじか? なんでだ?」

「ま、いいわ。使い方次第だから」

「みんなー、お菓子買ってきたよー!」


 理乃が両手にコンビニ袋を掲げて戻ってきた。


「ありがと、理乃。助かるよ」

「さっきは啖呵切ったけど、実際のところあたしができることってこれくらいだからねー」


 てへへ、と頭に手を置きながら苦笑いする理乃。


「そんなことないさ――理乃は俺たちの切り札なんだから」


 理乃は「それは言い過ぎだよ」と笑った。

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る