クリプト

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
クリプト

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

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

Bitcoin史 〜0.00076ドルから6万ドルへの歩み〜

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

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

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

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

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

Uniswap v3を完全に理解した

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

ジョークコインとして出発したDogecoin(ドージコイン)の誕生から現在まで。注目される非証券性🐶

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

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

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

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

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

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

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

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

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

クリプトスペルズで入手したMCHCを引き出す方法

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

UNISWAPでALISをETHに交換してみた

Like token Tip token
40.40 ALIS