著者:ヴィタリック・ブテリン(Vitalik Buterin)、編集:デン・トン(Deng Tong)、ゴールデンファイナンス(Golden Finance)
明日、量子コンピューターが利用可能になり、悪質な業者がすでに量子コンピューターにアクセスし、それを使ってユーザーのお金を盗むことができると発表されたとします。 このようなことが起こらないようにすることが、量子耐性暗号(Winternitz署名、STARKなど)の目標であり、アカウントの抽象化が行われれば、どのユーザーも計画通りに量子耐性署名スキームに切り替えることができます。 しかし、そんなに時間がなく、突然の量子シフトがそのずっと前に起きたらどうでしょうか?
実際、私たちはこれに対処するための非常にシンプルなリカバリフォークを作る準備ができていると思います。ブロックチェーンはハードフォークされ、ユーザーは新しいウォレットソフトウェアをダウンロードしなければなりませんが、お金を失うユーザーはほとんどいないでしょう。
量子コンピュータの主な課題は以下の通りです。 イーサリアムのアドレスはkeccak(priv_to_pub(k))[12:]と定義され、kは秘密鍵、priv_to_pubは秘密鍵を公開鍵に変換する楕円曲線乗算です。 量子コンピュータを使用すると、楕円曲線乗算は可逆になるが(これは離散対数の問題であるため)、ハッシュは安全なままである。 ユーザーがまだ自分のアカウントで取引を行っていない場合、アドレスのみが公開され、すでに安全である。 しかし、ユーザーが取引を行った場合、その取引の署名によって公開鍵が明らかになり、ポスト量子世界では秘密鍵が明らかになる。 したがって、ほとんどのユーザーは攻撃に対して脆弱である。
しかし、我々はもっとうまくやることができる。 重要なことは、実際にはほとんどのユーザーの秘密鍵は、それ自体がたくさんのハッシュ計算の結果であるということです。 多くの鍵はBIP-32を使用して生成されます。BIP-32はメインのシードフレーズから始まる一連のハッシュから各アドレスを生成します。 BIP-32以外の鍵生成方法の多くも同様に動作します。例えば、ユーザがブレインウォレットを持っている場合、それは通常、特定の暗号に適用される一連のハッシュです(または中程度に難しいKDF)。
つまり、EIPの自然な構造は、チェーンのハードフォークによって量子エマージェンシーから回復することです:
明らかに大量盗難が発生した最初のブロックの後、すべてのブロックを回復しました。
レガシーEOAベースのトランザクションは無効化されました。
新しい取引タイプまたはオペコードを追加し、(i) プライベートなオリジナル画像x、(ii) k個の承認済みハッシュ関数のリストからのハッシュ関数ID 1 <= i < k、および(iii) 公開アドレスAのSTARK証明を提供できるようにしました。keccak(priv_to_pub(hashes[i](x)))[12:]=Aとなるような公開アドレスA。STARKはまた、この新しい検証コードのハッシュを公開入力アカウントとして受け入れます。 証明が通れば、アカウントコードは新しい検証コードに切り替わり、それ以降スマートコントラクトのウォレットとして使用できるようになります。
ガス効率上の理由から(結局のところ、STARKは大きいのです)、STARKを一括証明にして、上記のタイプのN個のSTARKを証明することもできます(これは、複数の宣言を直接証明するのではなく、STARK-of-STARKでなければなりません。)
原理的には、このようなハードフォークを実装するためのインフラは、明日にでも構築し始めることができます。