BITCOIN WALLET
- bitcoin は wallet(秘密) と blockchain(公開) 二つの機能に別れる
- wallet+blockchainをFullノード, walletのみをSPV(simplified payment verification)ノードという
- 現在はHDウォレットと呼ばれる実装が主流
- HDウォレットは、SPVノードとして実装される場合が多い
HD WALLETとは
- Hierarchical Deterministic Wallets
- bitcoindには実装されていない機能
- 一つのマスター秘密鍵から無限のビットコインアドレスを生成できる
- 生み出された無限のビットコインアドレスに対して残高確認専用のマスター公開鍵が作れる
- m/0'/0 などのスキーマ情報で階層構造を記述できる
- 法則をもったアドレス生成方法なので標準化されている方法(BIP44)ならウォレット間で互換性を保てる
導入した場合の利点
- アドレス生成するごとに秘密鍵のバックアップの必要がなくなる(別途、索引の管理をしなくてはいけない)
- 残高や入金を確認するためだけにオンライン上に秘密鍵を持ったウォレットを用意しなくてもよくなる
- 商用に使う場合はお客ごとにユーザーidなどを用いて専用の入金専用アドレスの用意ができる
- 個人の場合はプライバシーが多少守れる(支払いのたびに残高を別の新規のアドレスへ移動することができるため)
関連技術
- BIP32 HDウォレット
- BIP39 ニーモニック
- BIP44 マルチアカウントHDウォレット
資料
- https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki
- http://www.slideshare.net/bitbankink/ss-46429424
- https://www.youtube.com/watch?v=4Td5fUg2Nhk
HDウォレット実装
私が作ったJSのサンプル実装
コイン種別
bipではないがsatoshilabsがやってる模様
Monacoinは22番