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
いっしー
June 21, 2018
Technology
280
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
130
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
DGX Sparkを2台使って いろいろ動かす話
sonoda_mj
1
120
魔法少女がClaude Codeを監視する / ccportal-deck
noriyukitakei
3
130
JAWS-UG初心者支部#88わいわい初心塾(夏休みの宿題やったかGit編)
otsuki
0
120
DMMブックスのNext.js化を加速させるAI活用 / Migrating DMM Books to Next.js with AI
kentarom
1
330
データエンジニアリングワークショップ:Auto LoaderとSparkで学ぶデータパイプライン構築
databricksjapan
PRO
0
140
本番に近いテストをもっと手軽に - Postmanで広がるAPIテストの世界 / Expanding the World of API Testing with Postman
yokawasa
1
240
KPIだけでは評価できないプロダクトが考えるべき Evalsという第二の評価系 / Beyond KPIs: Evals as a Second Evaluation Framework for Products #PdEConf
aki_iinuma
3
3.5k
全員がプロダクトへ向き合う組織を持続成長させるために——組織づくりのフライホイールと4象限 / The Flywheel Model and Four Quadrants for Organizational Design
hiro_torii
3
760
[DroidKaigi 2026] Making UI specifications visible: Android UI development in the AI agent era supported by Compose Screenshot Testing and galleries
syarihu
0
530
Bet AI Day 2026丨AIを「使う」から、AIが「働く」へ ― LayerXが進める「組織AI」の社会実装
layerx
PRO
2
2.1k
いかに伝えるか 〜新卒エンジニアの教育のための、ライトノベル活用の一例
ikedon
1
190
AIエージェントの開発・提供におけるセキュリティリスクの論点と対策
flatt_security
1
540
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Documentation Writing (for coders)
carmenintech
77
5.5k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Statistics for Hackers
jakevdp
799
230k
Mobile First: as difficult as doing things right
swwweet
225
10k
A Modern Web Designer's Workflow
chriscoyier
698
190k
[SF Ruby Conf 2025] Rails X
palkan
2
1.3k
Side Projects
sachag
455
43k
Paper Plane (Part 1)
katiecoart
PRO
1
10k
Raft: Consensus for Rubyists
vanstee
141
7.7k
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
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ウォレット推奨。 ɾ用途によってウォレットを選ぶ。 まとめ