Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Blockchain Kyoto #4 〜階層的決定性ウォレットについて〜
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
いっしー
June 21, 2018
Technology
290
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Blockchain Kyoto #4 〜階層的決定性ウォレットについて〜
いっしー
June 21, 2018
More Decks by いっしー
See All by いっしー
準同型暗号
issy
0
130
暗号
issy
0
130
パブリックチェーンとプライベートチェーン
issy
0
120
blockchain_scalability
issy
0
130
blockchain_kyoto_14
issy
0
120
blockchain_kyoto_13
issy
0
140
blockchain_kyoto_12
issy
0
150
blockchain勉強会_11.pdf
issy
0
190
Blockchain Kyoto #7 〜ブロックチェーン関連で読んだ本紹介〜
issy
0
170
Other Decks in Technology
See All in Technology
キヨさん、67歳。AIコーディングエージェントに挑む
happysamurai294
0
130
バイブコーディングの特徴と「コケて直す」ループ
happysamurai294
0
140
200人の配信コメント、 全部Jevが仕分けます 〜 マサカリガードを作ってみた 〜
katayamatg
1
480
Claude Codeから見る、エンジニアの世界の変容とその先
oikon48
8
5k
Devin プロモコードの受け取りと適用(2026.10.27)
kinopeee
1
780
E2Eってつらくないですか?E2Eの管理コストを下げる手段とその実践
akaboshinit
6
2.8k
なぜ東京にいる私が、新潟の技術コミュニティを運営するのか by 八雲慎之助
yakumo
0
210
増え続けるプロダクトの品質をどう担保するか。ProductSpecとTypeScriptによる取り組み
joere
3
290
20261031_IoTLT_vol140_kitazaki_v1.pdf
kitazaki
0
140
複雑な業務システムを高速でつくるため、チーム全員をつくれる人へ
ayakurabuchi
0
110
AIがGISを代替する日:〜すべてをAIが創る時代に、私たちがFOSS4Gに関わる意味〜
lehupa
0
160
生き様としてのSRE
hokkai7go
1
140
Featured
See All Featured
Game over? The fight for quality and originality in the time of robots
wayneb77
1
320
Ruling the World: When Life Gets Gamed
codingconduct
0
430
Docker and Python
trallard
47
4.2k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
600
What does AI have to do with Human Rights?
axbom
PRO
1
2.5k
How Software Deployment tools have changed in the past 20 years
geshan
2
35k
GraphQLとの向き合い方2022年版
quramy
50
15k
New Earth Scene 8
popppiees
4
2.7k
Into the Great Unknown - MozCon
thekraken
41
2.8k
Building Adaptive Systems
keathley
44
3.3k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
600
Un-Boring Meetings
codingconduct
0
480
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ウォレット推奨。 ɾ用途によってウォレットを選ぶ。 まとめ