LoginSignup
20
16

More than 5 years have passed since last update.

BIP39 MNEMONIC GENERATOR

Last updated at Posted at 2015-07-25

BIP39 とは

  • 秘密鍵を人間でも覚えられるパスフレーズにすること※1
  • 通常は12-24個のフレーズを作るがもっと長くすることもできる

以下の表はENTがビット数、MSが文字の個数の対応表

ENT CS ENT+CS MS
128 4 132 12
160 5 165 15
192 6 198 18
224 7 231 21
256 8 264 24

※1
正確には乱数初期化に使うエントロピーをフレーズに置き換えたもの
エントロピーのことをマスターシード(master seed)という。
ビットコインの秘密鍵そのものではない。ほかの用途にも使えると思う。
個人的には管理が大変なsshの鍵ペアとかに使えたら楽できそう。

jsの実装をインストール

npm install bitcore-mnemonic

生成してみる

  • ランダムで生成
  • 24個のフレーズを生成(256bit)
var Mnemonic = require('bitcore-mnemonic');
var code = new Mnemonic(256, Mnemonic.Words.ENGLISH);
console.log(code.toString());
var xpriv = code.toHDPrivateKey();
console.log(xpriv.toString());

ニーモニック

sun soap spice bid session bring invest pyramid cruise midnight trust project bulb neck zero invest noble tornado party bean special faint mirror phrase

※ ニーモニックからマスターシードが得られる
※ マスターシードからマスター秘密鍵が得られる

マスター秘密鍵

xprv9s21ZrQH143K3MqcfykNnXeLVTNPFhyC8DBK9BUvLVftgffqE7PywFx9s1wjAuCx94nG51mNqX6jRbwJrU4vJNfNDLxUgTtWMEGcCWV736n

※ マスター秘密鍵はBIP32の拡張秘密鍵形式

復元してみる

var Mnemonic = require('bitcore-mnemonic');
var code = new Mnemonic("sun soap spice bid session bring invest pyramid cruise midnight trust project bulb neck zero invest noble tornado party bean special faint mirror phrase", Mnemonic.Words.ENGLISH);
console.log(code.toString());
var xpriv = code.toHDPrivateKey();
console.log(xpriv.toString());

参考リンク

おまけ

勘のいい人は気がついてると思うけど
考え方は昔のドラクエにあった復活の呪文みたいなもん

こちらはドラクエ2みたいな正しくメモっても復活できないバグは仕込まれてないはず・・・

ゆうて いみや おうきむ
こうほ りいゆ うじとり
やまあ きらぺ ぺぺぺぺ
ぺぺぺ ぺぺぺ ぺぺぺぺ
ぺぺぺ ぺぺぺ ぺぺぺぺ ぺぺ

リンク

仕組みを知りたい場合は以下のサイトへどうぞ

20
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
16