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
BIP39について
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Yasuhiro Shimizu
June 03, 2019
Programming
220
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
BIP39について
Yasuhiro Shimizu
June 03, 2019
More Decks by Yasuhiro Shimizu
See All by Yasuhiro Shimizu
Jetpack Composeから始める、頑張らないVRT
yshrsmz
0
1.3k
Kotlin Multiplatform Projectを導入してみて
yshrsmz
1
1.2k
Android Fireside Chatまとめ
yshrsmz
3
2.4k
RxJava1からRxJava2へ
yshrsmz
0
110
Other Decks in Programming
See All in Programming
AIは賢い。でも実行環境は? CLIおじさんがAI時代に伝えたいこと ~ CLIおじさんがAI時代に伝えたいこと ~
curekoshimizu
1
240
ALB ログから Trace を気合で繋げる技術
fohte
7
880
信頼性の目標を誰も求めてない
shubox
0
500
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
4.4k
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
450
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
470
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
6
1.9k
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
1
500
AWS DevOps Agentで インシデント対応をAIに任せたい
honmarkhunt
7
2.7k
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
3
280
typoなんかねぇよ
raspython3
0
690
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
130
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
500
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
240
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
980
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
410
The Limits of Empathy - UXLibs8
cassininazir
1
650
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.2k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
930
Transcript
BIP39について 秘密鍵を安全に保管する
BIP39(Mnemonic Code)とは - 秘密鍵を簡単に覚えられる単語の組み合わせで表現する - 決定性ウォレット(deterministic wallet)のシード値の保存によく 使われる alarm boost
mom torch couple owner myself gift sugar tell ticket panther 27d28fc240b66cff0eb7bb89d9aa99f4dddc43954db4565c25b1226347e0b2a59 dd5281b6ce384606bc30479e3ab0f41702e27fd3442269b7b187f86601e8db1
対応言語 - 英語 - 日本語 - 韓国語 - 中国語(簡体字) -
中国語(繁体字) - フランス語 - イタリア語 ただ、Unicodeのnormalizationが必要な言語も多いので、英語が用いられることが多そ う(個人の感想です)
BIP39のステップ 1. Mnemonic Codeを生成 2. バイナリのシード値に変換
Mnemonic Codeの生成 1. 初期エントロピー(ENT)を取得(暗号学的にランダムな値。 32bits区切りで128-256bits) 2. エントロピーのSHA256ハッシュをとり、その結果の最初の (ENT/32)bitsをチェックサムとする(128bitのENTなら、ハッシュ の最初の4bits) 3.
チェックサムをENTの末尾に連結 4. 11bitsごとに区切る 5. 11bitsの数字をインデックスとして、ワードリストから単語を取得 する
None
Mnemonic Codeからシード値を得る 1. Mnemonic Codeとパスフレーズ(任意) 2. Mnemonic Codeと`mnemonic${パスフレーズ}`を PBKDF2(HMAC-SHA512)でハッシュ化。BIP39では2048回 ハッシュ化を行う(Key
Stretching)い、512bitsのシード値を得 る。 → あとはBIP32とかでよしなに
None
BIP39の派生 そもそもBIP39はElectrumというWalletのmnemonic code生成手 法をベースに、trezorの製造元によって提案された。 Electrumの作者はBIP39には欠点があるとして認めていない
Electrum Seed V1 - BIP39の元になった仕様 - ワードリストは1626(BIP39は2048) - シードとMnemonic Codeを相互変換可能
Electrum Seed V2〜 - BIP39の問題点を改善した実装 - ワードリストはBIP39と同じ - ワードリストなしに入力されたMnemonic Codeの間違いが検
出できる - Mnemonic Codeから生成に使われた仕様のバージョンを取 得できる
Electrum Seed V2でMnemonic Code取得 1. エントロピーの取得(暗号学的にランダムな値) 2. エントロピーとnonce(0から始まる正の整数)からmnemonic codeを取得 3.
mnemonic codeを`hmac_sha_512(b”Seed Version”, mnemonic)`して、バージョン コードが含まれているか確認。 4. 含まれていたら終了。含まれていなかったらnonceをインクリメントして、2-3を繰り 返す。