ウォレットは、秘密鍵の入れ物です。
TIP
- ビットコインのウォレットは、コインではなく、鍵を保存しています。
- ウォレットは、公開鍵・秘密鍵のペアが入っているキーチェーンです。
- 鍵で取引にサインすることで、取引出力(コイン)を所有していることを証明します。
- コインは、取引出力(vout, txout)の形でブロックチェーンに保存されています。
非決定的(ランダム)ウォレット
- 最初のビットコイン・クライアントでは、ウォレットはシンプルにランダムに作成された秘密鍵の集合でした。
- この形のウォレットは、Type-o 非決定的ウォレット(nondeterministic)と呼ばれています。
- ニックネームは、単なる鍵の集まり “Just a Bunch Of Keys”(JBOK)
- 決定的ウォレットに置き換えられている
- なぜなら、管理、バックアップ、取り込みが面倒だから
- ランダムな鍵の不便なところは、鍵を沢山作った場合に全部をコピーしなくてはいけない、つまり頻繁にバックアップをしないといけない
決定的(シード)ウォレット
- 決定的(deterministic)または、シード(seeded)ウォレットは、全て共通のシードから発生した秘密鍵を含むウォレットです。
- 一方向ハッシュ関数を使っている
- シードは、ランダムに生成
- HD(Hierarchical Deterministic Walltes)
- リカバリーが効率的
- ウォレットのエクスポート、インポートが効率的
ニーモニック・コード・ワード
- ニーモニック・コード・ワード(記憶しやすい単語)
- Mnemonic Code Words
- ニーモニック・コード・ワードは、シードウォレットのシードとして使われるランダムな数を表す一連の単語
- 12〜24の単語
- BIP-0039: Mnemonic code for generating deterministic keys
- Electrum やTrezorというウォレットで利用されている
- ただ、利用される単語が違う場合、互換性がなくなる
作り方
(いつか書く)
RFC 6979
取引署名時に推奨される決定的署名
参考
- オライリー 「Mastering Bitcoin」第4章