クリプト

Liskのパスフレーズからアドレス生成の話

万博おじ's icon'
  • 万博おじ
  • 2019/06/18 13:56
Content image

 

 

noteの転記です。

 

この記事を書いている時点のLiskのパスフレーズからアドレスを生成する仕組みを記載しています。
既存の方法ではアドレス衝突の危険性が指摘されていますが、直近で問題になることはないので安心してください。
また、これについてはロードマップに変更予定が記載されています。
Development Roadmap > Network Longevity > Replace address system

 

パスフレーズの生成

BIP39を使用しています。
BIP39のワードリストには言語ごとに2048ワードあります。
なので、12ワードのパスフレーズのパターンは重複含めると2048^12あることになります。
が、実際には12ワードの場合は128bitのエントロピーから生成されます。(ちなみに24ワードだと256bit)

 

公開鍵と秘密鍵の生成

鍵生成にはed25519を使用しています。
BIP39で作成されたパスフレーズをそのままSHA256でハッシュ化し、それをed25519を使って鍵生成する流れ。

例:パスフレーズが以下の場合
chicken problem whip mobile shield angry hard toast disease chronic code category

1. SHA256でハッシュ化
[結果]
32 18 0f 8e a1 80 7f f1 b0 11 dc 4e 88 48 0c 14 5b a1 de 5a d0 82 31 73 25 72 56 67 b1 bf 43 64

2. ed25519で鍵生成
[結果] ※公開鍵のみ記載
26 e0 a6 95 a2 96 a3 c2 43 98 92 59 66 65 92 17 8b 77 f0 8b 66 7b 65 e2 e5 f1 e9 c2 09 2b db 8c

 

公開鍵からアドレスの生成

ed25519で作った公開鍵をSHA256でハッシュ化した値の頭8バイトを取得。
それをひっくり返して10進数に変換した値にLを付ける流れ。

例:公開鍵が以下の場合
26 e0 a6 95 a2 96 a3 c2 43 98 92 59 66 65 92 17 8b 77 f0 8b 66 7b 65 e2 e5 f1 e9 c2 09 2b db 8c

1. 公開鍵をSHA256でハッシュ化
[結果]
f9 eb 38 75 59 65 31 36 07 94 f2 84 f5 f1 5e 67 02 6d e0 87 c6 87 45 c0 0f 55 5b 30 83 7d 0a 89

2. 頭8バイトを取得
[結果]
f9 eb 38 75 59 65 31 36

3. リバース
[結果]
36 31 65 59 75 38 eb f9

4. 10進数に変換
[結果]
3905013786800090105

5. 末尾にLを付与
[結果]
3905013786800090105L

 

ということで

1. BIP39でパスフレーズを生成
2. 生成したパスフレーズをSHA256でハッシュ化
3. ed25519で鍵(公開鍵&秘密鍵)を生成
4. 生成した公開鍵をSHA256でハッシュ化
5. ハッシュ化した値の頭8バイト取得
6. 取得した8バイトの値をリバース
7. 10進数に変換
8. 末尾にLを付与
という流れになります。

以上!

Supporter profile icon
Article tip 1人がサポートしています
獲得ALIS: Article like 40.29 ALIS Article tip 11.00 ALIS
万博おじ's icon'
  • 万博おじ
  • @ysmdmg
万博によく出没するLisk大好きおじさん

投稿者の人気記事
コメントする
コメントする
こちらもおすすめ!
Eye catch
クリプト

Polygon(Matic)で、よく使うサイト(DeFi,Dapps)をまとめてみた

Like token Tip token
236.30 ALIS
Eye catch
クリプト

Eth2.0のステークによるDeFiへの影響を考える。

Like token Tip token
44.10 ALIS
Eye catch
クリプト

【初心者向け】$MCHCの基本情報と獲得方法

Like token Tip token
32.32 ALIS
Eye catch
クリプト

CoinList(コインリスト)の登録方法

Like token Tip token
15.55 ALIS
Eye catch
クリプト

【第8回】あの仮想通貨はいま「テレグラム-TON/Gram」

Like token Tip token
69.90 ALIS
Eye catch
クリプト

【初心者向け】JPYCを購入して使ってみました!

Like token Tip token
30.03 ALIS
Eye catch
クリプト

2021年1月以降バイナンスに上場した銘柄を140文字以内でざっくりレビュー(Twitter向け情報まとめ)

Like token Tip token
38.10 ALIS
Eye catch
クリプト

コインチェックに上場が決まったEnjin Coin(エンジンコイン)コインを解説

Like token Tip token
21.49 ALIS
Eye catch
クリプト

Uniswap v3を完全に理解した

Like token Tip token
18.92 ALIS
Eye catch
クリプト

17万円のPCでTwitterやってるのはもったいないのでETHマイニングを始めた話

Like token Tip token
46.60 ALIS
Eye catch
クリプト

約2年間ブロックチェ-ンゲームをして

Like token Tip token
61.20 ALIS
Eye catch
クリプト

【DeFi】複利でトークンを運用してくれるサイト

Like token Tip token
54.01 ALIS