search
クリプト

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
Article registration Article registration
万博おじ's icon'
  • 万博おじ
  • @ysmdmg
万博によく出没するLisk大好きおじさん

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

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

CryptoChick 2020/03/05
Like token Tip token
44.10 ALIS
Eye catch
クリプト

Uniswap v3を完全に理解した

池田らいく 2021/04/04
Like token Tip token
18.92 ALIS
Eye catch
クリプト

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

nnppnpp(んぺー) 2021/09/08
Like token Tip token
46.60 ALIS
Eye catch
クリプト

NFT解体新書・デジタルデータをNFTで販売するときのすべて【実証実験・共有レポート】

otakucoin 2021/03/29
Like token Tip token
121.79 ALIS
Eye catch
クリプト

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

Macky3216 2020/09/28
Like token Tip token
40.40 ALIS
Eye catch
クリプト

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

昆布森ちゃん 2021/01/19
Like token Tip token
38.31 ALIS
Eye catch
クリプト

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

昆布森ちゃん 2021/01/24
Like token Tip token
21.49 ALIS
Eye catch
クリプト

バイナンスの信用取引(マージン取引)を徹底解説~アカウントの開設方法から証拠金計算例まで~

昆布森ちゃん 2020/06/15
Like token Tip token
3.50 ALIS
Eye catch
クリプト

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

Taka 2021/02/25
Like token Tip token
15.55 ALIS
Eye catch
クリプト

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

昆布森ちゃん 2021/03/16
Like token Tip token
38.10 ALIS
Eye catch
クリプト

Uniswap(ユニスワップ)で$ALISのイールドファーミング(流動性提供)してみた

Taka 2021/02/25
Like token Tip token
59.99 ALIS
Eye catch
クリプト

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

Taka 2021/07/24
Like token Tip token
69.90 ALIS