Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Blockchain Kyoto #4 〜階層的決定性ウォレットについて〜
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
いっしー
June 21, 2018
Technology
270
0
Share
Blockchain Kyoto #4 〜階層的決定性ウォレットについて〜
いっしー
June 21, 2018
More Decks by いっしー
See All by いっしー
準同型暗号
issy
0
110
暗号
issy
0
120
パブリックチェーンとプライベートチェーン
issy
0
100
blockchain_scalability
issy
0
100
blockchain_kyoto_14
issy
0
110
blockchain_kyoto_13
issy
0
120
blockchain_kyoto_12
issy
0
140
blockchain勉強会_11.pdf
issy
0
170
Blockchain Kyoto #7 〜ブロックチェーン関連で読んだ本紹介〜
issy
0
150
Other Decks in Technology
See All in Technology
Kubernetesの「隠れメモリ消費」によるNode共倒れと、Request適正化という処方箋
g0xu
0
170
開発チームとQAエンジニアの新しい協業モデル -年末調整開発チームで実践する【QAリード施策】-
kaomi_wombat
0
280
AWS Systems Managerのハイブリッドアクティベーションを使用したガバメントクラウド環境の統合管理
toru_kubota
1
190
RGBに陥らないために -プロダクトの価値を届けるまで-
righttouch
PRO
0
130
How to install a gem
indirect
0
2k
OCI技術資料 : 証明書サービス概要
ocise
1
7.2k
Oracle Cloud Infrastructure:2026年3月度サービス・アップデート
oracle4engineer
PRO
0
230
TUNA Camp 2026 京都Stage ヒューリスティックアルゴリズム入門
terryu16
0
650
CREがSLOを握ると 何が変わるのか
nekomaho
0
330
Embeddings : Symfony AI en pratique
lyrixx
0
430
「できない」のアウトプット 同人誌『精神を壊してからの』シリーズ出版を 通して得られたこと
comi190327
3
460
ThetaOS - A Mythical Machine comes Alive
aslander
0
230
Featured
See All Featured
Music & Morning Musume
bryan
47
7.1k
The World Runs on Bad Software
bkeepers
PRO
72
12k
GitHub's CSS Performance
jonrohan
1032
470k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
HDC tutorial
michielstock
1
590
A Soul's Torment
seathinner
5
2.6k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
Into the Great Unknown - MozCon
thekraken
40
2.3k
Utilizing Notion as your number one productivity tool
mfonobong
4
280
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
64
53k
A Tale of Four Properties
chriscoyier
163
24k
Thoughts on Productivity
jonyablonski
75
5.1k
Transcript
Blockchain勉強会 in Kyoto #4 「階層的決定性ウォレットの話」 2018/06/21 石野隼伍
ウォレットの種類 ɾペーパーウォレット ɾWebウォレット ɾモバイルウォレット ɾデスクトップウォレット
ペーパーウォレット https://www.bitaddress.org
うぉれっと? Q. ウォレットにはビットコインが入ってる? A. 入ってません。 Q. じゃあ何が入ってる? A. 秘密鍵。
None
第4章後半のお話。
ビットコインアドレスの生成 ɿެ։伴 ɿൿີ伴 ΞυϨε = hash(ɹ)
ウォレットに求めること ɾビットコインアドレスは1回使い切りにしたい。 ɾつまり秘密鍵をたくさん管理したい。 ɾ大事な秘密鍵はオフラインで保管したい。
構造と鍵生成の仕組み ɾ非決定性ウォレット ɾ決定性ウォレット ɾ階層的非決定性ウォレット(HDウォレット)
構造と鍵生成の仕組み ɾ非決定性ウォレット ɾ決定性ウォレット ɾ階層的非決定性ウォレット(HDウォレット)
非決定性ウォレット 例えば、アプリの初回起動時に100個の秘密鍵 をランダムに生成し、そこから作成したビット コインアドレスを使い果たすと、また新しく秘 密鍵を生成していく。
WALLET 秘密鍵A 秘密鍵B 秘密鍵C コールドストレージ ホットストレージ 公開鍵A 公開鍵B 公開鍵C ビットコインアドレスA
ビットコインアドレスB ビットコインアドレスC
非決定性ウォレット ランダムに作成した秘密鍵をたくさん持っておく
こんなのいやだ。 ランダムに作成した秘密鍵をたくさん持っておく
問題いっぱい。。 ɾ大量の秘密鍵を管理する必要がある。 ɾバックアップが大変。 ɾ公開鍵がなくなったら都度追加が必要。
WALLET ɾ非決定性ウォレット ɾ決定性ウォレット ɾ階層的非決定性ウォレット(HDウォレット)
決定性ウォレット 秘密鍵生成のルールを決めるのはどうか? ランダムにマスター秘密鍵を生成。 秘密鍵1 = マスター秘密鍵 + 1 秘密鍵2 =
マスター秘密鍵 + 2 ɾ ɾ ɾ
決定性ウォレット 秘密鍵生成のルールを決めるのはどうか? マスター秘密鍵からマスター公開鍵を生成。 公開鍵1 = マスター公開鍵 + G 公開鍵2 =
マスター公開鍵 + 2G ɾ ɾ ɾ
決定性ウォレット マスター秘密鍵 秘密鍵B 秘密鍵C コールドストレージ ホットストレージ 公開鍵A 公開鍵B 公開鍵C ビットコインアドレスA
ビットコインアドレスB ビットコインアドレスC マスター公開鍵 秘密鍵A
いいかも。 ̋利点 ɾ管理する秘密鍵は1つだけ。 ɾマスター公開鍵があれば、 秘密鍵がなくても公開鍵を大量に作成できる。 ̋問題点 ɾ法則性が分かると一連の公開鍵が同じ人のものだと 分かってしまう。
WALLET ɾ非決定性ウォレット ɾ決定性ウォレット ɾ階層的非決定性ウォレット(HDウォレット)
階層的決定性ウォレット 秘密鍵がツリー構造をなしている。
階層的決定性ウォレット ̋特徴&利点 ɾ用途ごとにブランチを割り当てることができる。 ɾ親は子の鍵を全て管理できる。 ɾ秘密鍵にアクセスすることなく公開鍵を作成できる。
階層的決定性ウォレット ̋マスター鍵のつくりかた Mnemonic Code Words マスターchain code 暗号学的に安全な 疑似乱数生成器 HMAC-SHA512
一方向ハッシュ関数 左 側 256ビ ッ ト 右 側 256ビ ッ ト ルートシード マスター秘密鍵 マスター公開鍵
階層的決定性ウォレット ̋親秘密鍵から子秘密鍵をつくる(コールドストレージ) 親公開鍵 親chain code 子秘密鍵 子公開鍵 子chain code HMAC-SHA512
一方向ハッシュ関数 左 側 256ビ ッ ト 右 側 256ビ ッ ト 親秘密鍵 インデックス 親秘密鍵+左側256ビット
階層的決定性ウォレット 親chain code 子chain code HMAC-SHA512 一方向ハッシュ関数 インデックス 親公開鍵 左
側 256ビ ッ ト 右 側 256ビ ッ ト ̋親公開鍵から子公開鍵をつくる(ホットストレージ) 子公開鍵 親公開鍵 + 左256bit * G
階層的決定性ウォレット ̋利点 ɾ覚えておくのは1つのシードのみ。 ɾ親公開鍵から秘密鍵なしに子公開鍵を作成できる。 ɾchain codeが分からないと公開鍵を特定できない。 ɾ階層的に鍵を管理できる。
ɾ強化子公開鍵。 ɾ子鍵を使ってさらに孫鍵、孫鍵からひ孫鍵と延々に作れる。 ɾルートシードはMnemonic Code Wordsで管理(BIP39)。 もうちょい。 ɾ階層に意味づけをして使う(BIP43, BIP44)。 ɾHDウォレット(BIP32)。
ɾウォレットは鍵を管理してる。 ɾHDウォレット推奨。 ɾ用途によってウォレットを選ぶ。 まとめ