Ethereum Keystore Encryption について
Keystore MCP Server は、Web3 Secret Storage Definition Version 3 標準に従って Ethereum キーストアを暗号化・復号するための MCP サーバーです。コールドストレージでウォレット鍵を保管するユーザー向けに、ファイル管理やパスワード変更のツールを提供します。
主な機能
- 01Web3 Secret Storage V3 形式に対応
- 02scrypt と PBKDF2 の KDF に対応
- 039 のツールと 4 のリソースを提供
- 044 つのプロンプトワークフローを含む
- 05キーストアファイルを 0600 権限で保存
活用シーン
- 01コールドストレージ用の暗号化キーストアファイルの作成
- 02複数ウォレットの鍵の一括暗号化
- 03既存キーストアファイルの監査や移行
MCP 対応
本プロジェクトは MCP サーバーであり、キーストア関連のツール、リソース、プロンプトを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ツール一覧はまだ取得されていません
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Keystore MCP サーバー
Web3 Secret Storage Definition Version 3 標準に準拠した、Ethereum キーストアの暗号化、復号、および管理を行うための Model Context Protocol (MCP) サーバーです。
機能
ツール (9)
encrypt_keystore- 秘密鍵を Web3 Secret Storage V3 形式に暗号化しますdecrypt_keystore- キーストアを復号して秘密鍵を復元しますsave_keystore_file- Ethereum 標準の命名規則でキーストアを保存しますload_keystore_file- キーストアファイルを読み込んで検証しますget_keystore_info- 復号せずにメタデータを抽出しますvalidate_keystore- キーストアの構造を検証しますchange_keystore_password- パスワードを変更し、必要に応じて KDF をアップグレードしますbatch_encrypt_keystores- 複数のウォレットを暗号化しますkeystore_to_private_key_file- 復号した秘密鍵をエクスポートします(危険)
リソース (4)
keystore://specification- Web3 Secret Storage V3 仕様keystore://security-guide- セキュリティのベストプラクティスkeystore://kdf-comparison- Scrypt と PBKDF2 の比較keystore://examples/{type}- キーストアの例
プロンプト (4)
secure_wallet_backup- ガイド付きのバックアップ作成keystore_migration- レガシー形式からの移行keystore_recovery- 復元のサポートkeystore_security_audit- セキュリティ監査ワークフロー
インストール
pip install -e .
# Or with dev dependencies
pip install -e ".[dev]"
使用方法
サーバーの起動
keystore-mcp-server
Claude Desktop の設定
{
"mcpServers": {
"keystore": {
"command": "keystore-mcp-server"
}
}
}
暗号化標準
Web3 Secret Storage V3
- KDF: scrypt(推奨)または pbkdf2
- 暗号方式: AES-128-CTR
- MAC: Keccak-256
- UUID: バージョン 4
デフォルトの Scrypt パラメータ
| パラメータ | 値 | 説明 |
|---|---|---|
| N | 262144 (2^18) | CPU/メモリコスト |
| r | 8 | ブロックサイズ |
| p | 1 | 並列化 |
| dklen | 32 | 派生鍵の長さ |
デフォルトの PBKDF2 パラメータ
| パラメータ | 値 | 説明 |
|---|---|---|
| c | 262144 | 反復回数 |
| prf | hmac-sha256 | PRF |
| dklen | 32 | 派生鍵の長さ |
セキュリティ
⚠️ 重要なセキュリティ上の注意:
- キーストアのパスワードを決して共有しないでください - 秘密鍵と同様に扱ってください
- 強力なパスワードを使用してください - 最低 12 文字で、大文字と小文字、数字、記号を組み合わせてください
- ファイルを安全に保管してください - ファイルは 0600 のパーミッションで作成されます
- エアギャップ環境での操作 - 高額なウォレットにはオフラインで使用してください
- キーストアをバックアップしてください - 暗号化されたバックアップを複数の場所に保存してください
例
秘密鍵の暗号化
result = await encrypt_keystore(
private_key="0x...",
password="strong-password-123",
kdf="scrypt"
)
キーストアの復号
result = await decrypt_keystore(
keystore=keystore_json,
password="strong-password-123"
)
キーストアファイルの保存
result = await save_keystore_file(
keystore=keystore_json,
directory="./keystores"
)
# Creates: UTC--2024-01-15T10-30-00.000Z--address.json
テスト
pytest tests/ -v
ライセンス
MIT License
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。