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
Shamir Backup
Search
shigeyuki azuchi
January 14, 2020
Technology
360
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
FORS
azuchi
0
13
クラスターmempool
azuchi
0
32
W-OTS+
azuchi
0
36
Shorのアルゴリズム
azuchi
0
59
DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures
azuchi
0
43
Fiat-Shamir変換と注意点
azuchi
0
230
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
55
BIP-374 離散対数の等価性証明
azuchi
0
74
BIP-353 DNS Payment Instructions
azuchi
0
91
Other Decks in Technology
See All in Technology
20260720_クラウド女子会×PyLadiesTokyoコラボ Amazon Bedrock ハンズオン用資料
yuuka51
1
110
大量データに対しても、生成AIを用いてリーズナブルにデータ加工をしたい!Databricksのai_queryについて調べてみた
kamoshika
1
270
『モデル + ハーネス』で読み解く AIエージェント入門
oracle4engineer
PRO
2
160
PHPで作って学ぶリアルタイム音声対話AIとWebSocket入門 by ムナカタ
munakata
0
120
なぜ、あなたのエージェントは言うことを聞かないのか
segavvy
1
320
AI時代の開発生産性は、個人技からチーム設計へ
moongift
PRO
4
2.5k
ソニー銀行におけるビジネスアジリティ向上のためのクラウドシフト戦略
srenext
0
1k
“それは自分の仕事じゃない"を越えて行け
yuukiyo
1
520
どこまでAIに任せるか 〜確率論と決定論の境界決定〜
shukob
0
430
SoccerMaster: A Vision Foundation Model for Soccer Understanding
kzykmyzw
0
160
JAWS_ICEBERG_BASECAMP
iqbocchi
2
110
Amazon Quick 入門!
ysuzuki
2
130
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.5k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
370
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
320
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
220
sira's awesome portfolio website redesign presentation
elsirapls
0
300
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
270
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.1k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
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の閾値署名の署名値を導出することも可能。