Ethereumステーキング:秘密鍵と公開鍵の概要
目次
- はじめに
- 基本的なキーの概念
1. 秘密鍵と公開鍵の関係
2. Ethereumアカウント
3. BLS12-381の特性 - おわりに
1. はじめに
Ethereum 2.0は、Ethereumというコンピューターネットワークをより速く、安全に、そして環境に優しくするための新しいバージョンである。これまでのシステムは、コンピューターが難しい計算を解く「Proof of Work」という方法で動いていたが、新しいバージョンでは「Proof of Stake」という新しい方法を採用している。この新しい方法において、ユーザーはEthereumの通貨(ETH)を「ステーキング」という方法で預け、ネットワークを支える役割を果たす。この役割を果たす者を「バリデータ」と称する。
バリデータは、この新しいシステムにおいて非常に重要な役割を持っている。その役割を適切に果たすためには、特別な鍵の正確な管理が必須である。本レポートでは、バリデータとして必要な基本的な鍵の概念に焦点を当て、秘密鍵と公開鍵の関係やEthereumアカウントの構造、そしてBLS12-381と呼ばれる鍵の特性について解説する。
2. 基本的なキーの概念
2. (1) 秘密鍵と公開鍵の関係
秘密鍵と公開鍵は、暗号技術の中で非常に重要な役割を果たしている。これらは、暗号化と復号またはデジタル署名とその検証のために使用されるペアの鍵である。秘密鍵は、その名の通り、秘密に保持されるべきものであり、公開鍵は公開されることが前提の鍵である。公開鍵は、秘密鍵から導出されるが、逆に秘密鍵を公開鍵から導出することは計算上不可能である。
2. (2) Ethereumアカウント
Ethereumのアカウントは、公開鍵と秘密鍵のペアに基づいている。秘密鍵を持っている人は、その鍵に関連付けられたEthereumのアドレスで秘密鍵を用いて署名し、トランザクションを送信することができる。また、Ethereum 2.0のステーキングの文脈では、バリデータは新しいブロックの提案や投票などの作業で、署名時に秘密鍵を使用する。
2. (3) BLS12-381の特性
BLS12-381は、Ethereum 2.0で使用される特定の暗号曲線の名前である。BLSはBoneh-Lynn-Shachamの略で、この名前はこの署名スキームを最初に提案した3人の研究者の名前から来ている。BLS署名は、その効率性と集約性のためにEthereum 2.0で採択された。集約性とは、多数の署名を1つの小さな署名に結合できる特性を指す。これにより、多数のバリデータの署名を効率的に処理することができる。
BLS12-381曲線は、安全性と効率性のバランスを取るために選ばれた。
2. (3). a. 特定の性能と安全性について
-
効率: BLS12-381は、特にペアリングベースの暗号において高い効率を持つ。これにより、計算コストは低減し、高速な操作が可能である。
-
集約性: BLS署名の最大の利点の一つは、多数の署名を一つの署名に集約できることだ。これは、大量の署名を効率的に検証する際に非常に有用である。
-
安全性: BLS12-381は、既知の攻撃に対して十分な安全性を持つと考えられる。特に、特定の暗号解析技術に対する耐性は高い。
-
広範な採用: BLS12-381は、Ethereum 2.0をはじめとする多くのブロックチェーンプロジェクトで採用されている。特に、Ethereum 2.0のProof of Stake (PoS) メカニズムにおいて、バリデータの署名を集約するために使用されている。
2. (3). b. ERC-2335: BLS12-381 Keystore
BLS12-381の特性に関する情報は、ERC-2335: BLS12-381 Keystore に記載されている。このEIPは、BLS12-381のプライベートキーの保存と交換のためのJSONフォーマットを提供している。以下に、このEIPの主要な内容について記載する。
- ERC-2335: BLS12-381 KeystoreKeystoreは、プライベートキーを保存するためのメカニズムである。ユーザーがパスワードを提供するまで、そのキーは安全である。この仕様は、Ethereum 2.0の標準としてだけでなく、BLS12-381署名標準を採用した広範なコミュニティで採用されることを目的とし、キーの安全な保存と交換は、ユーザーエクスペリエンスの重要な部分であり、ユーザーが自分のキーを保持することが期待される。 -
- KeystoreについてKeystoreとはプライベートキーを保存するためのメカニズムであり、ユーザーがパスワードを提供するまで、そのキーは安全であるという標準を示したものである。Keystoreの構造について以下のとおりであるが、実際に生成したKeystoreについては、Fuelcoメディア「Ethereumステーキング:鍵の生成と管理方法の 2.(4) keystore-m*.jsonについて」を参照してほしい。
- キー導出メカニズムキー導出メカニズムについては、ERC-2334: BLS12-381 Deterministic Account Hierarchyに記載あるとおり、EIP-2334のキー導出メカニズムはHD Wallet(Hierarchical Deterministic Wallet)の仕組みと似ているが、いくつかの重要な違いがある。HD WalletとEIP-2334の主な違いを以下に示す。
- パス構造についてEIP-2334におけるパス構造「m / purpose / coin_type / account / use」は、鍵の階層的な派生に関する規定である。このパス構造は、鍵の関係性や派生を明確にするためのものである。
3. おわりに
バリデータにとって、鍵の管理はEthereum 2.0のネットワークに参加する上での最も重要な要素のひとつである。本レポートでは、Ethereum 2.0における鍵の基本概念について解説し、バリデータがその役割を果たすために必要な知識を提供した。Proof of Stakeの採用によってEthereumネットワークが一層発展し、持続可能なものになることを目指しているが、同時にバリデータには鍵の管理責任が伴う。本レポートの内容が、バリデータの成功とネットワークの安全性向上に貢献する一助となれば幸いである。