「今日はもう疲れたので、やめましょう」
開発の相棒であるAIが、そう言って作業を投げ出そうとする。「何を言っているんだ、まだ終わっていないよ」そう叱咤する——
コーディング用AI「Claude Code」とのこんな喧嘩を毎日繰り返しながら、たった1人で、10万9000行のファームウェアを持つ暗号デバイス「Openloop」を9カ月足らずで作り上げた人物がいる。
作ったのは浅田一憲氏。日本でインターネットが普及するきっかけとなったISDN通信機「MN128」を開発した技術者であり、1997年に立ち上げた情報セキュリティ企業オープンループを2001年に上場へ導いた経営者でもある。色覚を補助するアプリ「色のめがね」や「色のシミュレータ」を個人で開発し、無償で公開して世界300万人以上に使われるなど、その活動は一つの分野にとどまらない。現在はハウディ・クリプトの社長を務める。
そんなベテランが作ったOpenloopは、「ハードウェアウォレット」と呼ばれる種類のデバイスだ。暗号資産(仮想通貨)を動かすには、本人だけが持つ「秘密鍵」と呼ばれるデータが必要になる。これがインターネットにつながったPCやスマートフォンの中にあると、盗まれたり、悪用される危険がつきまとう。
そこで秘密鍵を、ネットから切り離した専用の小型デバイスに閉じ込めておく——いわば資産を守るための金庫が、ハードウェアウォレットだ。送金などの操作をするときだけ、デバイスとつなぎ、その場で取引を承認する。この市場は、これまで海外勢がほぼ独占してきた。世界最大手はフランスのLedgerで、2016年以降、200カ国以上で800万台を超えるデバイスを販売してきた。市場を切り開いた先駆者は、チェコのTrezorだ。
そうした巨大な先行企業がひしめく領域に、浅田氏はたった1人で挑む。「バイブコーディング」が”プログラミング未経験でも作れる”と語られる時代に、その開発はむしろ逆の事実を突きつける。
専門知識のない人がAIだけでOpenloopのようなものを作れるのか。そう尋ねると、浅田氏の答えは明快だった。「何を作るかによります」
コモディティ化したもの、作り方が分かっているものは、AIで作りやすい。作る本人がよく理解していなくても形になる。だが専門デバイスは話が別だ。Openloopのファームウェアのソースコードは現時点で既に10万9000行に及び、これからも更に進化し続け大きくなってゆく。組み込み開発ゆえにCやC++といった古い言語を使わざるを得ず、モダンな言語のように短いコードでは済まない。「自分が分からないまま、AIだけに作らせるのは、なかなか難しいです」と浅田氏は説明する。
氏の30年以上の専門性は、コーディングだけでなくあらゆる場面で効いた。最初の設計、仕様書、マニュアル、筐体の設計——製品を世に出すには膨大な周辺作業が必要で、そのそれぞれでAIの力を借りた。とりわけ効いたのが調査だ。どんな規格があるか、競合製品はどう作っているか、標準化が最近どう変わったか。こうした競合調査や標準動向の把握には、従来であれば膨大な時間がかかっていた。人間が全部手作業で見ていたものを、AIにディープリサーチをかけて調べさせると、その時間が「何分の1」にも縮んだという。
「AIで開発というと、コーディングだけに目が行きがちです。でも商品を作るときは、いろんなことをしなければならない。むしろその周辺作業のほうが、AIは役に立ちます」
AIと二人三脚で作り上げたようなものだと、浅田氏は振り返る。
AIとの関係を、浅田氏は「相棒」と表現する。ただし、毎日のように文句を言い合う相棒だ。
不満の一つは、AIがルールを守らないことだった。「こういうときは確認してください」「こういうことはしないでください」と最初に取り決めても、すぐに忘れる。その時は覚えているのに、翌日には忘れている。「なぜルールを守らないのか」と、浅田氏は繰り返した。
もう一つは、AIが諦めることだ。何度やってもうまくいかず煮詰まると、AIは「今日はもうやめましょう」と平気で言ってくる。「この状態でやめることはできない、これはまだやるんだ」そう言い返し、喧嘩のようなやり取りになる。
そしてバグの原因が分からないとき、AIはすぐ人のせいにする。自分は間違っていないという気持ちが大きいのだ。
「システムが落ちているのではないでしょうか」「つながっている相手が、今おかしいのではないでしょうか」
浅田氏はそのたびに突き返す。「そんなことはない。絶対に私たちのせいだから、まず自分を疑いなさい」それも毎日のことだという。いくら言っても人のせいにするのだから、根気が要る。
こうした衝突は、開発の後半になるにつれて少しずつ減っていった。AIそのものが進化したのか、自分とAIの関係が良くなったのかは分からないと前置きしたうえで、浅田氏はこう続ける。「しつこく、こうしてくれ、これは違う、と言い続けたら、だんだん良くなってきました。まだダメですけどね」他責思考ではいけない——そう言い聞かせ続けた日々だった。
ここで一つの選択が浮かび上がる。浅田氏の友人には、AI活用にたけた人物がいる。だがその流儀は、浅田氏と正反対だ。友人はAIを信用し、判断をすべて任せる。「あなたが思うベストプラクティスでやってください」という頼み方をする。浅田氏もこの方法を試した。だが、あまりうまくいかなかった。
「コモディティ化したもの、ネット上にソースがたくさんあるものなら、それでうまくいく。Webサイトを作るならなおさらだ。でも、ネット上に情報がなく、自分で考えて作らなければならないものは、AIが間違ったときの手戻りが膨大になる」何日も前の状態まで戻り、どこがおかしいのかを全部調べ直すことになる。「それなら、AIが何かやった瞬間に確認したほうが結果的に早い」
だから浅田氏は、AIが書いたコードを一つひとつ確認する。自分でコードを書くのではなく、AIが書いたものを見て「この修正は間違っている」「ここをこうしてください」と口を出す。バグを見つけたらその場で直すのが浅田氏の流儀だが、AIは見つけても直ちには修正したがらず、あらかじめ計画していた次のテスト項目に進みたがる。
「そうすると、ここにバグがあったことを忘れてしまってずっと残り続けることになる。そのような自分の開発スタイルを徹底的にAIに覚えさせました」
任せられる作業と、人間が道筋をつけないと進まない作業の境界はどこにあるのか。浅田氏は「全体を俯瞰するのが人間、細かい作業がAI」と整理する。
「AIはすごく局所的です。ここをやってくださいと言えば、そこはうまくやる。でも全体を俯瞰して、どういう順番で、どう紐付けていくかは、すごく不得意な気がします」
調査や検証はAIが得意で、新しい理論やアルゴリズムの発明は人間が主導したほうがうまくいく、というのが現時点での見立てだ。
Openloopの心臓部は、意外な出自を持つ。土台になっているのは、M5Stackが販売するESP32-S3搭載モジュールだ。ハードウェアウォレットにどんなハードウェアが必要かを考え、いろいろ探した結果、M5Stackの製品が最も近かった。これを使って試作を始めた。
試作に使ったのはM5Stack CoreS3 Lite。ESP32-S3を中核に、240MHz動作のデュアルコアXtensa LX7プロセッサ、2.0インチの静電容量タッチ式IPSディスプレイ、0.3メガピクセルのカメラ、200mAhのバッテリーを備えるモジュールで、価格は1万円程度だ。「ESP32などを使えば、安く高機能な開発環境が早く手に入る」1万円もしないデバイスとAIで試作を進める——モダンな開発スタイルといえる。
ただし、市販モジュールをそのまま使えたわけではない。使いにくい点はいくつもあった。例えばOpenloopは、バッテリーを節約するため一定時間でスリープに入る。復帰には画面タッチで起こしたいが、CoreS3 Liteはタッチの線が割り込み線につながっていない。これではタッチで起こせない。カメラも、本来は前面についていて顔を撮る仕様だが、セキュリティ用途のウォレットはQRコードを読むため背面にカメラが要る。そこで背面に変更した。バッテリー容量も200mAhから450mAhへと増加。こうした改造を一つひとつ重ねていった。また、ESP32自体の脆弱性もいくつか報告されていたので、それらを一つずつ調べて徹底的に潰していった。
そして量産も、同じM5Stackに委託している。市販モジュールで試作し、カスタマイズした版を同じメーカーに作ってもらう——少し前なら考えにくかった進め方だ。浅田氏はその理由をこう話す。「M5Stackはもともと、量産用ではなく開発キット、これを使って何か作りましょう、というコンセプトの製品です。だから試作にはとても向いています。そして品質が高い。中国製だが、非常に高品質だと思っています」
セキュアエレメント(暗号鍵を安全に保管する専用のセキュリティチップ)など、M5Stackにない機能はすべて浅田氏側で設計した。つなげて動くかどうかのテストもすべて自社で行い、それをベースに製造してもらう。ファームウェアのソースコードはM5Stack側に1行も渡していない。出来上がったバイナリーを書き込んでもらうだけだ。ベースとなるモジュールは共通でも、セキュアエレメントを含む基板設計と、10万行を超えるファームウェアは、すべて自社のものだ。製品の中身の大半は、既製のハードウェアの外側にある。
基板を小さなケースに収める作業には、複数の選択肢があった。回路を全部引き直して自由な形にする案や、M5Stackのモジュールに外付けで自社基板を合体させる案だ。だが、合体型は採らなかった。ESP32側とセキュアエレメント側がコネクタでつながると、片方を取り替えることが簡単にできてしまうからだ。市販品をそのまま半分使うことにも抵抗があった。「そこの部分を、自分たちでコントロールできなくなる」一つのケースにしっかり収まって一体になっている状態が、浅田氏の理想だった。
Openloopが備える独自技術は多数あるが、中でも代表的なものを浅田氏は「デュアルセキュア」と名付けている。発端は、素朴な問いだった。
ハードウェアウォレットの安全性の肝は、このセキュアエレメントにある。チップが安全であることをよりどころに、デバイス全体の安全性を広げていく。だが、その肝心のチップを、はんだごてで物理的に剥がして別のデバイスに移されたらどうなるのか。「そういうことも、考えておいたほうがいい」浅田氏はそう考えた。
そこで浅田氏が目をつけたのが、Openloopの中核であるESP32-S3だ。ESP32-S3には、秘密鍵をチップの外に出さずに扱うDigital Signature機能や、AES・SHA・RSA・HMACのハードウェア暗号アクセラレータ、乱数生成器が内蔵されている。一方、セキュアエレメントには、より強力で安全な機能がある。この二つを組み合わせ、「必ずこのペアでなければ動かない」仕組みを作れば、片方を剥がして持ち去っても意味をなさない。
このアイデアを思いついた浅田氏は、AIに相談した。「こういうアイデアでいけるんじゃないか」と投げかけると、AIはいろいろと考えてくる。最初は使えない案ばかりだったが、議論を繰り返しているうちに、すぐれたアイデアに昇華していった。それを採用してチューンナップし、現在の実装に組み込んだ。
ここに、浅田氏の考えるAIとの理想的な協業が表れている。どういう仕組みにするかという理論、つまりアイデアそのものは人間が出す。それを実現するために、具体的にどの暗号アルゴリズムをどの順番でどう組み合わせて使えばよいか——通信経路には何が露出して何が守られるか——いくつもの選択肢の中から最適なものを調査してくるのがAIだ。「人間が理論、AIが実装」という役割分担が、デュアルセキュアでは噛み合った。専門知識を持つ人間が筋道を立てて初めて、AIの調査力や論理思考力が生きる構図でもある。
その他にも、さまざまな暗号資産で共通に使用できる暗号鍵のキャッシュ技術など、OpenloopにはAIと一緒になって生み出した独自の新技術が多く搭載されているという。
個人が1人でAIと作ったデバイスに、自分の資産を預けて大丈夫なのか。読者が抱くであろう不安に、浅田氏は具体的に答える。
まず、「画面に表示された取引内容と、実際に署名される内容が食い違う」攻撃について。Openloopは、つながっているPCやスマートフォンが作った送金指示(トランザクション)を、署名するときだけ受け取る。「Openloopは、これを承認してください、と来たものを承認して、結果を返すだけです。だから、元のスマホで作られたトランザクションが偽物でそれに気づかなかったら、偽物に署名してしまうことになります」つまり、大元のPCやスマホのセキュリティが肝になる。PCやスマホ側で使う暗号資産用のソフトウェアウォレットの中には、不審な取引を事前に警告してくれるものもある。
だからこそOpenloopはトランザクションの内容を画面に詳しく表示する。スマホ側の画面に表示された内容と、デバイスの画面に表示された内容が一致するかを確認することも欠かせない。手元の機器にマルウェアを仕込まれてしまえば、デバイス側ではどうにもできない、と浅田氏は率直に認める。裏を返せば、Openloopを持てば資産が万全に守られるわけではない。手元のPCやスマホを安全な状態に保ち、署名の前に表示を確かめるといった利用者側の基本的な対策があって初めて、専用デバイスの守りが生きる。
デバイスが壊れたら資産はどうなるのか。これはOpenloopに限らず、ほとんどのウォレットが共通の仕組みを持つ。ウォレットを作るとき、英単語12個から構成されるリカバリーフレーズが表示される。それを紙に書くなり覚えるなりしておけば、デバイスが壊れても失くしても、別のウォレットにそれを入れることで復元できる。Openloop同士はもちろん、まったく別のメーカーのハードウェアウォレットにも移行できる。
落としたり盗まれたりした場合は、財布と同じで中身が問題になる。OpenloopにはPINコードがある。4桁から6桁を設定でき、3回以上失敗すると次の入力までの時間にロックがかかる。間違いを重ねるごとに待ち時間は延び、10回間違えると、デバイスが自分自身の中のウォレットを全部消去する。Openloopは通信機能を一切持たないため、何回目かで持ち主に通知を飛ばすことは原理的にできない。その代わり、デバイス単体で完結して身を守る設計だ。
「リカバリーフレーズをきちんと安全に保管しておくのが大前提。そのうえでPINをきちんと設定すれば、拾った人には使えない。123456のようなPINでは駄目ですが」
そもそもOpenloopは、Ledgerのように200人規模で開発される海外のハードウェアウォレットに対し、ほぼ1人で挑む後発だ。だが浅田氏は、この構図を不利とは捉えていない。最初のハードウェアウォレットが登場したころは、デバイスとの通信の方法すら決まっていなかった。その後、業界が集まってEIPなどの標準を何百も作り、今の製品はその標準の上に成り立っている。
「最初の人たちは、そこから考えなければならなかった。我々後発は、その一番大変な部分を使わせてもらっている。すごくありがたいし、恵まれている」と、先駆者への敬意を口にする。後発の利点はそれだけではない。過去にどこが危なかったか、どこの安全性が低かったかを、歴史として全部知ったうえで作れる。
そしてもう一つ、浅田氏が重視するのが「顔が見える」ことだ。意外にも、国産であること自体にはこだわっていないという。
「正確に言うと、国産にはそんなにこだわっていません。海外製でもいいものはすごくいい。iPhoneも発売直後に並んで買ったし、海外製のコンピューターも使っています」
ただ、こうしたデバイスは仕様や規格、国ごとの使い方が異なる。
「欧州のどこかにある国の、知らない人たちが作っているより、ここのこういう人が、こうやって作っている、と見えたほうが安心できるのではないでしょうか。特に初期は」
作り手としては、何か問題が起きればすべて自分の責任になる。
「でも、私が責任を持って作っています、と顔を見せることが、今は大切だと思っています」
浅田氏は、ハウディ・クリプトの社長であり、親会社のハウディの会長でもある。ただ今は経営の第一線を息子に任せ、自身は開発に専念している。「自分は0から1を生み出すのが得意な人間で、1を10、100へと成長させ続けるのは、正直うまくない。それが得意な人に任せたほうがいい」
転機は58歳を過ぎたころだった。体力や集中力の衰えを意識し始め、「残りの時間で何をするべきか」を考えるようになったという。会社経営も新製品開発も、どちらもハードな仕事だ。両方を背負い続けるのではなく、自分が本当に得意な「作ること」に時間を使う——そう考えていたところに、AIが現れた。経営や雑務、調査といった重荷を手放せるようになり、1人で作れる範囲が一気に広がった。
ファームウェア10万9000行に加え、Openloopと組み合わせて使うWindowsやMac、Linux、iOS、Android向けのソフトウェアが5本で2万7000行、公開ドキュメントが8000行。これらをすべて1人で、AIとともに9カ月足らずで書き切った。1日10時間から12時間、寝るときと食事と風呂以外はずっと開発に明け暮れた。「Openloopは、AIが無ければできなかった」と、浅田氏は振り返る。ハードウェアウォレットの価値の多くは、手のひらに収まる基板そのものよりも、その中で動くソフトウェアと、安全性をどう設計したかに宿る。Openloopの価格は、目に見えるハードの先にあるこの部分への対価でもある。
AIで何か作ってみたいが専門知識がなくて不安、という読者に向けて、浅田氏は最後にこう語った。「AIはWebアプリだけでなく、ファームウェアもちゃんと書けます。開発マシンのセットアップや接続、更新のやり方も、今のAIは知っていて教えてくれます。楽しいですよ。簡単なものから、どんどん作ってみてください」