octra-labs/wallet-gen
主な特徴
- Ed25519暗号化によるセキュアな鍵ペア生成
- BIP39準拠の12単語ニーモニックフレーズ
- カスタムHD(階層的決定性)ウォレット派生
- リアルタイム生成進捗表示(Server-Sent Events使用)
- 完全オフライン動作(ネットワーク通信なし)
- 複数のネットワークタイプ対応(MainCoin、SubCoin、Contract、Subnet、Account)
- 自動保存機能付きWebインターフェース
リポジトリ解析: octra-labs/wallet-gen
基本情報
- リポジトリ名: octra-labs/wallet-gen
- 主要言語: HTML
- スター数: 421
- フォーク数: 7,989
- 最終更新: 記載なし
- ライセンス: Octra Labs Proprietary Testnet License(プロプライエタリ)
- トピックス: ウォレット生成、暗号通貨、Ed25519、BIP39、TypeScript
概要
一言で言うと
Octraブロックチェーンのテストネット参加者向けに提供される暗号通貨ウォレット生成ツールで、Ed25519暗号化とBIP39ニーモニックを使用したセキュアなウォレット作成機能を提供。
詳細説明
Octra Wallet Generatorは、新興のOctraブロックチェーンプロジェクト用のウォレット生成ツールです。Bunランタイムを使用したTypeScriptで実装され、業界標準の暗号化アルゴリズム(Ed25519署名アルゴリズム、BIP39ニーモニックフレーズ)を採用しています。
スター数(421)に対してフォーク数(7,989)が異常に高いことから、このツールがOctraのテストネット参加やバリデーター運用に必須であり、参加者に対する何らかのインセンティブ(エアドロップや報酬)が関連している可能性が高いです。スイスの非営利組織Octra Labsが開発し、早期採用者とバリデーター向けに限定的にライセンスされています。
主な特徴
- Ed25519暗号化によるセキュアな鍵ペア生成
- BIP39準拠の12単語ニーモニックフレーズ
- カスタムHD(階層的決定性)ウォレット派生
- リアルタイム生成進捗表示(Server-Sent Events使用)
- 完全オフライン動作(ネットワーク通信なし)
- 複数のネットワークタイプ対応(MainCoin、SubCoin、Contract、Subnet、Account)
- 自動保存機能付きWebインターフェース
使用方法
インストール
前提条件
動作環境
- Bun(JavaScriptランタイム)
- 最新のWebブラウザ
- Linux、macOS、またはWindows
必要なツール
- Git
- Bun(インストールされていない場合は自動インストール)
インストール手順
# 方法1: リポジトリのクローンと起動
git clone https://github.com/octra-labs/wallet-gen.git
cd wallet-gen
# Linux/macOSの場合
chmod +x ./start.sh
./start.sh
# Windowsの場合
start.bat
# ブラウザで http://localhost:8888 にアクセス
基本的な使い方
Hello World相当の例
# サーバー起動後、ブラウザでアクセス
# 1. "GENERATE NEW WALLET" ボタンをクリック
# 2. リアルタイムで生成進捗が表示
# 3. 生成完了後、以下が表示される:
# - 12単語のニーモニックフレーズ
# - 秘密鍵(16進数とBase64形式)
# - 公開鍵(16進数とBase64形式)
# - Octraアドレス(oct + 44文字)
実践的な使用例
// 異なるネットワークタイプでのアドレス派生
// ブラウザ上のインターフェースで:
// 1. Network Type選択: "MainCoin" / "SubCoin" / "Contract" / "Subnet" / "Account"
// 2. Index入力: 0から任意の数値
// 3. "DERIVE ADDRESS" クリック
// 4. 派生されたアドレスが表示
// 署名テスト機能
// 1. "TEST SIGNATURE" をクリック
// 2. メッセージ「Hello Octra」の署名が生成・検証される
高度な使い方
HD派生パスの構造:
m/345'/coinType'/network'/contract'/account'/token'/subnet'/index
各パラメータ:
- 345': Octra用のコイン種別(固定)
- coinType': コインタイプ(現在は0)
- network': ネットワーク種別
- contract': コントラクトアドレス派生用
- account': アカウント番号
- token': トークン種別
- subnet': サブネット識別子
- index: アドレスインデックス
ドキュメント・リソース
公式ドキュメント
- README.md: 基本的な使用方法とクイックスタート
- LICENSE: Octra Labs独自のテストネットライセンス条項
サンプル・デモ
- index.html: ウォレット生成のWebインターフェース
- wallet_generator.ts: コア実装とサーバーロジック
チュートリアル・ガイド
READMEに記載された手順に従うことで、簡単にウォレット生成が可能
技術的詳細
アーキテクチャ
全体構造
Bunランタイム上で動作するシングルページアプリケーション。サーバーサイドでウォレット生成処理を実行し、Server-Sent Events(SSE)を使用してクライアントにリアルタイムで進捗を通知。
ディレクトリ構成
wallet-gen/
├── index.html # Webインターフェース
├── wallet_generator.ts # メインアプリケーションとサーバー
├── assets/ # スタティックリソース
│ ├── logo.svg # Octraロゴ
│ └── *.woff2 # フォントファイル
├── start.sh # Linux/macOS起動スクリプト
├── start.bat # Windows起動スクリプト
├── package.json # Node.js依存関係
└── bun.lock # Bunロックファイル
主要コンポーネント
-
ウォレット生成エンジン: Ed25519鍵ペア生成とBIP39実装
- 場所:
wallet_generator.ts
- 依存: tweetnacl、bip39ライブラリ
- インターフェース: REST API + SSE
- 場所:
-
Webインターフェース: ユーザー向けUI
- 場所:
index.html
- 依存: なし(バニラJavaScript)
- インターフェース: ブラウザベース
- 場所:
技術スタック
コア技術
- 言語: TypeScript
- ランタイム: Bun(高速なJavaScriptランタイム)
- 主要ライブラリ:
- tweetnacl (1.0.3): Ed25519暗号化実装
- bip39 (3.1.0): ニーモニックフレーズ生成
開発・運用ツール
- ビルドツール: Bun内蔵ビルドシステム
- パッケージマネージャー: Bun
- 型定義: TypeScript 5.3.3
設計パターン・手法
- BIP39標準に準拠したニーモニック生成
- Ed25519楕円曲線暗号
- PBKDF2-HMAC-SHA512によるシード導出(2048回反復)
- カスタムアドレスフォーマット("oct" プレフィックス)
- Base58エンコーディング
データフロー・処理フロー
- 128ビットのエントロピー生成
- BIP39ニーモニックフレーズ作成(12単語)
- PBKDF2でシード導出(パスワードなし)
- HMAC-SHA512で"Octra seed"を使用してマスターキー導出
- Ed25519鍵ペア生成
- SHA256ハッシュ化とBase58エンコーディングでアドレス生成
- "oct" + エンコード済みアドレスで最終アドレス形成
API・インターフェース
公開API
REST APIエンドポイント
- 目的: ウォレット生成と管理
- 使用例:
# 新規ウォレット生成(SSEストリーミング)
POST http://localhost:8888/generate
# ウォレット保存
POST http://localhost:8888/save
Content-Type: application/json
{
"mnemonic": "...",
"privateKey": "...",
"publicKey": "...",
"address": "..."
}
# アドレス派生
POST http://localhost:8888/derive
Content-Type: application/json
{
"mnemonic": "...",
"networkType": "MainCoin",
"index": 0
}
設定・カスタマイズ
設定ファイル
// HD派生パスのカスタマイズ
const DERIVATION_PATH = {
purpose: 345, // Octra固定
coinType: 0, // 現在は0固定
// その他のパラメータは動的
};
// サーバーポート設定
const PORT = 8888; // デフォルトポート
拡張・プラグイン開発
現在の実装では拡張機能はサポートされていないが、将来的なオープンソース化で可能になる予定。
パフォーマンス・スケーラビリティ
パフォーマンス特性
- Bunランタイムによる高速起動と実行
- Ed25519の高速署名アルゴリズム
- オフライン動作により遅延なし
スケーラビリティ
ローカル実行のため、各ユーザーが独立して動作。サーバー側のスケーラビリティは不要。
制限事項
- テストネット専用(メインネット非対応)
- 早期採用者とバリデーターのみ使用可能
- プロプライエタリライセンスによる使用制限
評価・所感
技術的評価
強み
- 業界標準の暗号化アルゴリズム採用
- 完全オフライン動作によるセキュリティ
- シンプルで使いやすいインターフェース
- 適切なセキュリティ警告の表示
改善の余地
- ドキュメントの充実
- テストコードの不足
- エラーハンドリングの強化
向いている用途
- Octraテストネットへの参加
- バリデーターノードの運用
- Octraエコシステムでの開発・テスト
- 早期採用者プログラムへの参加
向いていない用途
- 本番環境での使用(テストネット専用)
- 他のブロックチェーンでの使用
- 商用利用(ライセンス制限)
総評
Octra Wallet Generatorは、新興ブロックチェーンプロジェクトの典型的なパターンを示しています。高いフォーク数は、テストネット参加に対するインセンティブ(エアドロップや報酬)の存在を強く示唆しています。技術的には堅実な実装で、適切な暗号化アルゴリズムを使用し、セキュリティにも配慮されています。将来的なオープンソース化も計画されており、Octraプロジェクトの発展とともに重要なツールとなる可能性があります。