
量子コンピュータとあなたのコイン:本当に危ういのは何か
量子コンピュータは、暗号資産の話題のなかでも見事なほど安定して語られ方の悪いものです。一方の陣営はすべてが今にも壊れると言い、もう一方は何十年も先だと言ってそこで考えるのをやめます。どちらも本当に役に立つ部分を飛ばしています。すなわち、体系のどの部分が脆弱なのか、そしてあなたのどのコインが露出しているのか、という部分です。
答えは一様ではないからです。ある種の出力はほかよりもはっきりと危うく、その違いは今日のうちに手を打てるものです。
二つのアルゴリズム、まったく異なる二つの問題
懸念のほとんどは、一九九〇年代の二つの成果に行き着きます。
ショアのアルゴリズムは、公開鍵暗号が拠って立つ問題――素因数分解と、secp256k1 の署名が築かれている離散対数問題――を効率よく解きます。十分に大きな量子コンピュータがショアを走らせれば、公開鍵から秘密鍵を導けてしまう。これが本物の脅威であり、小さなものではありません。署名を弱めるのではなく、丸ごと破るからです。
グローバーのアルゴリズムは構造のない探索を速めますが、二乗の範囲にとどまります。ハッシュ関数に対しては実効的な安全性をおおむね半分にします。SHA-256 は 256 ビットからおよそ 128 ビットの耐性へ下がりますが、それでもなお手の届く範囲のはるか外側です。採掘には理論上の加速が生じますが、その意味は聞こえるほど大きくありません。プルーフ・オブ・ワークは固定された的ではなく、ほかの採掘者との競走だからです。
ですから本当に大切な要約はこうです。ハッシュは大丈夫、署名は違う。 真剣な懸念はすべて、この一文から派生します。
なぜアドレスは公開鍵ではないのか
ここが多くの議論の飛ばす部分であり、あなたの露出の度合いを決めているのはまさにここです。
ビットコインのアドレスは公開鍵ではありません。公開鍵のハッシュであり、スクリプト方式のアドレスならスクリプトのハッシュです。受け取るとき、公開鍵はチェーンに現れません。現れるのは使うときです。使うには署名と、それを検証する鍵を公開する必要があるからです。
そこから二つの区分が生まれます。
ハッシュ済みで未使用。 チェーンにあるのはハッシュだけです。これを攻めるには量子的な敵はまずハッシュを破らねばならず、グローバーではそこまで届きません。こうした出力は、署名とは無関係の一枚多い層に守られています。
公開鍵が露出済み。 あるアドレスから一度でも使えば、その鍵は永久に公開されます。以後そこに残るものを守るのは、署名方式そのものだけです。
この区別ゆえに、長年プライバシーだけを理由に勧められてきた「アドレスを使い回すな」という助言が、量子の文脈でも意味を持つことになります。使い回しとは、二度目の入金がハッシュではなく露出した公開鍵の背後に置かれるということです。
今日、実際に露出しているもの
初期のビットコインの出力。 最も古い取引はハッシュではなく公開鍵に直接支払っていました。その裸の鍵は、いまこの瞬間もチェーン上に見えています。一度も動いていない非常に古いコインのかなりの部分――サトシのものと目されているものの多くを含めて――がここに当たります。
使い回されたあらゆるアドレス。 一度使えば、その後そこで受け取るものはすべて公開済みの鍵の背後に置かれます。
取引を送ったことのあるすべてのイーサリアムのアドレス。 これは驚かれるので、はっきり述べておく値打ちがあります。EVM 系のチェーンでは、公開鍵は任意の署名から復元できます。アドレスが一度でも取引を送っていれば、その鍵は事実上公開されています。イーサリアムには、ビットコインの「ハッシュ済みで未使用」に当たる区分がありません。
Taproot の出力。 Taproot は公開鍵のハッシュではなく、公開鍵そのものを出力に置きます。プライバシーと効率の面で実利のある優美な設計であり、同時に鍵経路の出力は資金が入った瞬間から鍵を露わにするということでもあります。知っておく値打ちはありますが、今日の警報ではありません。
メモリプールの窓。 いざ使うとき、あなたの公開鍵は送信したその瞬間に――承認より前に――見えるようになります。その窓のうちに鍵を導き、競合する取引を採掘させられるほど速い量子攻撃者なら、移動中の資金を奪えるでしょう。これは本物の理論上の攻撃であり、これまで実証されたどんなものよりはるかに高い能力を要します。
SSP はどこに立っているか、正直に
SSP のビットコインのアドレスは P2WSH、すなわち証人スクリプトのハッシュです。よってあなたの未使用のコインはハッシュ済みの区分に入ります。使う前にチェーンにあるのはハッシュであって鍵ではありません。使う段になれば、スクリプトと二つの公開鍵が露わになります。ほかのあらゆるスクリプト方式の出力とまったく同じです。
さてここからは大きく言いすぎるのが容易な部分なので、そうはしません。2-of-2 のマルチシグは量子に対して助けになるか。ほとんどなりません。
使用済みのスクリプトに対してショアを走らせる攻撃者は、鍵を一つではなく二つ導く必要があります。おおむね二倍の手間です。二倍は定数倍であり、定数倍は安全性ではありません。secp256k1 の鍵を一つ破れる能力を持つ敵は、まず間違いなく二つ破る能力も持っています。二者のうち二者によるマルチシグは、端末の乗っ取り、なりすまし詐欺、盗難、そして単一の鍵への強要に対して優れた守りです。暗号学的に意味のある量子コンピュータに対しては、ほぼ無関係と言ってよく、マルチシグを量子対策として売る者はあなたを誤らせています。
本当に効いてくるのはチェーンの層での耐量子署名への移行であり、それは財布が単独でなしうることではありません。
これはどれくらい近いのか
どう正直に読んでも、近くはありません。
ショアで secp256k1 を破るには、大規模で誤り訂正を備えた量子コンピュータが要ります。物理的な量子ビットは雑音まみれなので、信頼できる論理量子ビット一つを作るのに多数が必要で、現実的な鍵長への攻撃について公表されている見積もりは数百万の物理量子ビットに達します。今日の機械は何桁も足りません。ハードウェアがもう一世代進めば済む、という話ではないのです。
それでもこの話題を無視してよい理由にはならない事情が二つあります。
第一に、時期は本当に不確かです。「何桁も遠い」は今日を正直に言い表しますが、二〇四〇年について自信ある予言をする土台としては貧しい。
第二に、そしてより重要なこととして、露出した鍵は失効しません。 暗号化された情報については「いま収穫し、あとで復号する」という懸念があります。コインの場合、対応するものはもっと単純で、もっと厄介です。今日見えている公開鍵はこの先も見えたままで、その背後にあるコインは、能力が到来した時点でいつでも奪えるのです。閉じる窓というものがない。脅威が遠いままであっても、自分のコインがどちらの区分にあるかを今から気にかける理由はここにあります。
実際に進んでいること
暗号側の土台はすでにあります。NIST は耐量子の署名方式を標準化しました――Dilithium と SPHINCS+ の提案から生まれた ML-DSA と SLH-DSA です――そしてこれらは今日、ごく普通のソフトウェアに載せられます。
難物はブロックチェーンのほうです。署名方式の変更は合意規則の変更であり、あらゆるノード、あらゆる財布、あらゆる取引所、あらゆる基盤が同意して移行しなければなりません。耐量子署名は現行のものよりかなり大きく、ブロックの容量と手数料に直に響きます。そして、持ち主がついに移行しなかったコインをどう扱うか――連絡がつかない、あるいは亡くなっているかもしれない持ち主の古い出力も含めて――を誰かが決めねばなりません。これは技術の問題に劣らず厄介な統治の問題です。
作業は進んでいます。まだ急務ではなく、急務になったときには何年もかかるでしょう。
何をすべきか
アドレスを使い回さないこと。 プライバシーのためにすでにそうしているはずです。加えて、あなたのコインを露出した鍵の背後ではなくハッシュ済みの区分に留めます。今日、個人にできる意味のある唯一のことであり、しかも無償です。
これを理由に保有を組み替えないこと。 慌てた動きに正当な理由はありません。量子コンピュータを持ち出して急いで資金を動かせと迫る者は、詐欺を働いているか、何かを売りつけようとしています。
脅威の比率を保つこと。 現実には、量子コンピュータよりも、失くしたシードフレーズや、なりすましのサイトや、読まずに与えた承認によって暗号資産を失う見込みのほうがはるかに高い。それらが今日の危険であり、今日の注意に値します。
プロトコルの層で扱われると見込むこと。 移行が来るとき、それは長い移行期間を伴うチェーンの更新として来るのであって、あなたの財布が黙って直してくれる何かとしてではありません。
正直な立場は華がありません。実在し、正しく見定められ、なお遠く、取り組みの進んでいる問題――そして今のところ、あなたと資産の喪失のあいだに立ちはだかっているものではない、ということです。


