こんにちは。くろこんです。最近勉強した知識がフル活用できるニュースがあったので解説記事を書きました。
(yahoo ニュース様から引用しております)
https://news.yahoo.co.jp/articles/a66e3862fa38dfddae3312e57345c566268eb0b6
エルサルバドル国立ビットコイン局は、国家準備金の保有BTCを14アドレスに分割すると8月29日発表した。発表後、1アドレスあたり最大500BTCまでに制限されている。量子計算時代の脅威を見据えたセキュリティ強化と透明性向上が目的だという。
引用した内容に対して、最近量子コンピュータとビットコインを勉強した技術屋の見解としましては、
残念ですが無駄です
となります。どういうこと? と思う方も多いと思うので、できるだけわかるように説明していきます。
複数のウォレットに分割した人の想定
おそらく、ほとんどの方はこちら側の考えだろう、というものをまず書いていきます。
ビットコインでは署名に secp256k1 という方式を用いています。secp256k1 の楕円曲線上の方程式を解かれてしまえば、公開鍵から秘密鍵を特定されてビットコインを盗まれてしまいます。
ウォレットを複数にすれば、攻撃のコストが上がるのでは?
ウォレットの数の分、処理コストがあがるか? と聞かれたら、間違いではないです。(ウォレットが14個になったら14回計算するとは思いますが……)
公開鍵が示されていないアドレスにビットコインを送れば、安全性が上がるのでは?
secp256k1 の解き方と SHA-256 や RIPEMD-160 の解き方は大きく異なるため、解きにくいかもしれないです。公開鍵よりアドレスのほうが対応する秘密鍵はたくさんあるため、むしろ解きやすい可能性はあります。それでも、公開鍵が分からないのはセキュリティにはプラスです。
じゃあ「ビットコインに対する量子攻撃に備えて」いるのでは?
これは間違いです。複数のウォレットに分割した場合、厳密には 「ビットコインに対する古典攻撃に備えて」 います。
現実の量子攻撃
量子攻撃ができる人の気持ちになることがとても重要です。
確かにエルサルバドルにはたくさんのビットコインがあります。しかし、それを狙うでしょうか?
国立の組織に攻撃したら瞬く間にニュースになってしまうでしょう。その先にあるのは、ビットコイン価格の暴落です。
これでは盗む意味がないので、しばらく放置されていて誰も見ていなさそうなビットコインから狙われるでしょう(yahoo ニュース様にも全く同じ指摘がされています)。
そして、この盗難が発覚したとき、ビットコイン価格が暴落します。
この「暴落の意味」も重要です。今までのように古典攻撃での暴落であれば「他人のミスで、自分には関係なかったな。ほとぼりが冷めて、また価格も戻るだろう」となります。しかし、量子攻撃の場合「待ってたら自分も盗まれるかもしれない……ってこと? どうしよう……?」といつまでも不安がなくなりません。
エルサルバドル側からしたら、盗まれてはいないですが、価格が下がれば結局盗まれたのと同じです。この意味でウォレットの分割などは 「量子攻撃に対して無駄」 となります。
対策するときに混同してしまうのですが、ウォレットの分割は 「量子攻撃者の利益を減らす効果」 はあります。しかし、「量子攻撃者からの被害を減らす効果」 が無い、ということになります。
現実のビットコインに対する量子攻撃耐性とは
以上の内容から「ビットコインに対する量子攻撃に備えて」いる状態になるには、おそらく選択肢は2つです。
- ビットコイン以外の資産へ移行する
- ビットコインのプロトコルに量子攻撃耐性を与えるものを追加する
ビットコインにおいては、特に署名方式が secp256k1 であるため、どんなに高く見積もっても 256 の多項式に関する量子ビット数で、ショアのアルゴリズムやもしかしたら他のアルゴリズムで攻撃されてしまいます。
つまり 「ビットコインというプロトコルが量子攻撃耐性を持っていない」 ことになります。言い換えるなら 「ビットコインを保有すること自体が量子攻撃リスクを許容している」 ということもできます。(技術屋としては、プロトコルとして対策するなら早いほうがよいのでは、という気はします)
以上で今回の記事は終わりになりますが、この内容を読んで少しでも計算機科学のことを知ってもらえればと思います。