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
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
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
Lambda MicroVMsが分からなすぎたので使い所を1から考えてみた
tsukuboshi
1
260
Mastering Agentic Development: Harness Engineering for Effective Coding Agents
konippi
3
660
個別開発で終わらせない。 現場の課題をプロダクトの強さに変える StockmarkのFDE
ktkrhr
0
460
【ゲームメーカーズスクランブル2026】『Shadowverse: Worlds Beyond』UIとアニメーションで実現する最高のユーザー体験を叶えるプロトタイピング
cygames
PRO
1
710
Execution in the Kingdom of Agents: Reflections on Abstraction and Complexity
bcantrill
0
370
行動するAIのためのオントロジー | DevRev — Encraft #26.pdf
dvrv_tknrszk
2
630
20260915deck.gl-raster を使ってみた
rena1208
0
180
あなたの知らないAmazon VPC Route Server/Amazon VPC Route Server you don't know about
masakiokuda
1
180
手を動かして実感する、Kiro が変える開発体験
inariku
0
420
MCPゲートウェイを作って運用してわかったこと — Agent時代の権限管理の現在地
mtpooh
6
2k
AIに書かせて、プラットフォームで縛る ― EKSプラットフォームで実践した責任境界と権限設計
elmodev09
1
1.1k
ビジネスを止めない技術的負債の返済のための戦略とその手法 - 技術的負債と向き合う / Complexity and Simplicity
soudai
PRO
1
150
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
340
58k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
270
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
380
Docker and Python
trallard
47
4.2k
Site-Speed That Sticks
csswizardry
13
1.5k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
Utilizing Notion as your number one productivity tool
mfonobong
4
600
We Are The Robots
honzajavorek
0
380
sira's awesome portfolio website redesign presentation
elsirapls
0
430
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
The Curious Case for Waylosing
cassininazir
1
550
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ウォレット推奨。 ɾ用途によってウォレットを選ぶ。 まとめ