Ethereumの開発者は25日、量子計算機による署名解読リスクを見据えた新たな預入契約の草案「EIP-9999」をGitHubのEIPリポジトリに登録した。可変長の公開鍵や認証情報を扱える設計とし、将来的なポスト量子暗号への対応を視野に入れる。あわせて、現行のBLS署名方式を段階的に廃止する移行手順も示した。
ブロックチェーンメディアのCoinpostによると、現行のEthereum預入コントラクトは固定長のBLS12-381公開鍵と署名サイズを前提としており、より大きなポスト量子鍵を受け入れにくい点が課題となっている。EIP-9999はこの制約を見直し、将来の暗号方式にも対応しやすい構造への変更を提案する内容だ。
新たなコントラクトでは、各預入に「スキーマ」と呼ぶ識別子を付与する。スキーマ0は従来のBLS署名向けに割り当て、それ以外の値は今後導入される別の暗号方式に対応できるようにする。預入データはEIP-7685の構造をベースに、コンセンサス層へリクエストとして引き渡す。
コントラクトの構造も改める。従来のマークルツリー方式は採用せず、EIP-6110で導入されたログベースの検証方式に合わせる。これに伴い、従来方式で必要だった検証用ハッシュのフィールドも削除する。預入関数は「スキーマ」「公開鍵」「出金クレデンシャル」「クレデンシャルメタデータ」の4つの引数を受け取る設計とした。
また、開発者はBLS方式を段階的に終了する手順も示した。提案ではコントラクトの状態を3つのモードで管理し、導入直後は預入を受け付けない無効モードから始める。その後、既存のBLS方式による預入を受け付ける段階を経て、最終的にはBLSの新規受け入れを停止する廃止モードへ移行する。
この移行は取り消せない設計とする。モードは一方向にのみ進み、いったん廃止モードに切り替えると、BLSによる新規預入は再び受け付けられない。
一方、実際の適用時期は決まっていない。活性化の時点やBLS廃止の時期はいずれも未定で、EIP-6110やEIP-7251など既存提案への依存関係も明記した。開発者は今回の提案を、量子計算機対応の方向性を示す草案に近い位置付けとしている。
現時点でEIP-9999はドラフト段階にあり、コア開発者による正式なレビューや採択合意は行われていない。仮番号の「9999」も正式登録前の暫定表記で、正式なEIP番号や実装スケジュールは今後の議論に委ねられる。
今回の提案では、既存のBLS体系を維持しながら将来の暗号方式を受け入れられる余地を残した点と、BLSの新規受け入れを恒久的に停止する移行条件が主な論点となりそうだ。Ethereumがステーキング預入の仕組みを将来の暗号体系にどう適応させるかを巡る議論のたたき台になりそうだ。