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
Shamir Backup
Search
shigeyuki azuchi
January 14, 2020
Technology
380
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Shamir Backup
GBEC動画解説コンテンツのスライドです。
https://goblockchain.network/2020/01/shamir-backup/
shigeyuki azuchi
January 14, 2020
More Decks by shigeyuki azuchi
See All by shigeyuki azuchi
SLH-DSA (SPHINCS+)
azuchi
0
22
Hyper Tree
azuchi
0
22
FORS
azuchi
0
37
クラスターmempool
azuchi
0
44
W-OTS+
azuchi
0
50
Shorのアルゴリズム
azuchi
0
72
DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures
azuchi
0
59
Fiat-Shamir変換と注意点
azuchi
0
270
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
73
Other Decks in Technology
See All in Technology
ビジネス部門からPOを迎えての半年間の進歩と課題
zozotech
PRO
0
150
E2Eってつらくないですか?E2Eの管理コストを下げる手段とその実践
akaboshinit
5
2.5k
局所最適は悪ではない。壊れているのは指標です。量と質を同時に見る先行指標の設計
recruitengineers
PRO
3
1.3k
アカウント統制の健康診断
kenichinakamura
1
210
【Oracle AI SPOTLIGHT ウェビナー】事例から見る!なぜOCIが選ばれたのか ― AI時代のクラウド戦略を紐解く ―
oracle4engineer
PRO
1
110
契約で守るコンパウンドプロダクトのデザインシステム
yug1224
1
1.6k
構造で守らせる データ・法務・セキュリティ・開発チームとつくる AI時代のデータガバナンスとデータ基盤のリアル
legalontechnologies
PRO
2
620
kintoneで在庫管理システムを作るときの要件定義・設計ポイント
kai0707
0
110
Devin プロモコードの受け取りと適用(2026.10.27)
kinopeee
1
640
バイブコーディングの特徴と「コケて直す」ループ
happysamurai294
0
110
You Have Agency(サンキュー、Ruby)
snoozer05
PRO
3
450
reInvent2026stby LT00 "Change your life!"
shinichirokawano
1
370
Featured
See All Featured
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
460
Large-scale JavaScript Application Architecture
addyosmani
516
110k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
650
Building AI with AI
inesmontani
PRO
1
1.3k
The Curse of the Amulet
leimatthew05
3
16k
From π to Pie charts
rasagy
1
420
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
580
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
380
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
490
Amusing Abliteration
ianozsvald
1
360
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
Transcript
【Bitcoin】Shamir Backup
1. Shamir Backupの概要 2. シャミアの秘密分散法 3. SLIP-0039 a. 2段階のシェアの分割 b.
シェアのフォーマット定義 c. シェアのニーモニック変換 1 今日話すこと Shamir Bakcup
Trezor Model Tが新しい秘密鍵のバックアップ方法として Samir Backup機能を導入 https://blog.trezor.io/shamir-backup-the-revolution-of-private-keys-backup-is-here-858687ed7fe7
• マスターシードをシャミアの秘密分散法を利用して複数のシェアに分割。 • 分割したシェアは20個の単語で表現される。 • ユーザーが予め指定した数分のシェアを集めるとマスターシードが復元可能。 (例:2-of-3, 3-of-5など) 2 TrezorのShamir Bakcup
3 Shamir Backupの利用イメージ ① Shamir Backupのウォレットを作成 ② 生成するシェアの数を指定 ③
閾値を指定 ④ 1つのシェア毎に生成される20個のワードを記録 Share Share Share Share Share 各シェアを分散して保存 シェアが閾値分集まればリカバリー可能 ※ Shamir Backupに使われるワードリストは、通常の バックアップで使われるものとは異なる。
4 シャミアの秘密分散法とは? 秘密の値をN個のシェアに分割し、そのシェアをT個集めると秘密の値を 復元できる暗号技術の一種。 1. シェアの数Nと閾値Tを決める。 2. T-1次の多項式を生成する。 f(x)
= a t-1 ・xt-1 + a t-2 ・xt-2 + a t-3 ・xt-3 + … a 1 ・x+ s a t-1 〜a 1 の係数はランダムに決定、通常、定数項f(0)=sが秘密の値 3. 生成した多項式を使ってシェア(x, f(x))を作成する。 4. シェアをT個集めると、そのシェアから多項式を復元できるため、 復元した多項式から秘密の値sが分かる。 ※ T個より少ないと復元できない
5 シャミアの秘密分散法とは? 1. シェアの数N=5と閾値3を決める。 2. T-1=2次の多項式を生成する(秘密の値=35)。 f(x) = 23・x2 +
15・x + 35 3. 生成した多項式を使って5つのシェアを作成する。 (3, 287), (18, 7757), (31, 22603), (11, 2983), (22, 11497) 4. シェアを3個集めると、そのシェアから多項式を復元できる。 287 = 9a + 3b + c 2983 = 121a + 11b + c 22603 = 961a + 31b + c ラグランジュ補完を利用することでT個のシェアからT-1次の多項式を 求める事ができる。 f(x) = 23・x2 + 15・x + 35 a, b, cが計算できるので
6 SLIP-0039 シャミアの秘密分散法を利用する際の標準化および シェアのニーモニックへの変換方法を定義した仕様 https://github.com/satoshilabs/slips/blob/master/slip-0039.md • 2段階のシェア分割
2つのシェアで シークレットを復元したい Share A Share B 2つのシェアが破損した場合 • 5人の友人の内3人 • 6人の家族の内2人 のシェアがあればシークレットを復元でき るようにしたい 友人 家族 Share Share Share Share Share Share Share Share Share Share Share シェアの分割を2段階で行う 1. 2-of-4でシェアを分割 シェアA, B, C, D 2. A, Bはアリスが保持 3. Cをさらに3-of-5で分割し友人に配布 4. Dをさらに2-of-6で分割し家族に配布 ※ 友人が全員共謀してもシークレットは復元できない。 ※ 家族が全員共謀してもシークレットは復元できない。 ※ 友人と家族が共謀した場合、シークレットは復元できる。 2段階にしない場合は、最初に単一グループのシェアを作成し、それをN 個のシェアに分割する。 Share C Share D
7 SLIP-0039 • シェアのフォーマットを定義 • シェアをニーモニックワードに変換
シェアを10bit毎のセグメントに分割し、それをワードリストのインデックスとして利用 し、ニーモニックワードに変換する。 https://github.com/satoshilabs/slips/blob/master/slip-0039/wordlist.txt マスターシークレットが128 bitsの場合、20ワードになる。 • パスフレーズを用いたマスターシークレットの暗号化 • シークレットは多項式f(255)の値となる。 識別子 反復指数 グループ インデックス グループ 閾値 グループ数 メンバー インデックス x メンバー閾値 パディングされた シェア f(x) チェックサム 15 bits 5 bits 4 bits 4 bits 4 bits 4 bits 4 bits パディング+ 8n bits 30 bits
8 まとめ • TrezorのShamir Backupはシャミアの秘密分散法を利用して マスターシークレットを分散管理するための仕組み。 • ウォレット間で相互運用性を担保するためSLIP-0039で標準化の提案。 ※実際に標準化されるかは他のウォレットの採用次第なところも。 ◦
2段階のシェアの分割をサポート ◦ シェア⇔ニーモニックの変換仕様を定義 • 秘密分散法自体は広く利用されており、暗号通貨の秘密鍵管理以外にも 多くの応用がある。 ◦ 単純にマスターシークレットを復元するのではなく、閾値署名と 組み合わせることで、t-of-nの閾値署名の署名値を導出することも可能。