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
高速で安全な2者間のECDSA署名
Search
shigeyuki azuchi
December 04, 2018
Technology
0
210
高速で安全な2者間のECDSA署名
GBEC動画解説コンテンツのスライドです。
https://goblockchain.network/2018/10/ecdsa_2-of-2_multisig/
shigeyuki azuchi
December 04, 2018
Tweet
Share
More Decks by shigeyuki azuchi
See All by shigeyuki azuchi
W-OTS+
azuchi
0
10
Shorのアルゴリズム
azuchi
0
30
DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures
azuchi
0
22
Fiat-Shamir変換と注意点
azuchi
0
140
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
27
BIP-374 離散対数の等価性証明
azuchi
0
49
BIP-353 DNS Payment Instructions
azuchi
0
70
OP_CAT and Schnorr Trick
azuchi
0
67
Pay to Anchorと1P1Cリレー
azuchi
0
57
Other Decks in Technology
See All in Technology
わからなくて良いなら、わからなきゃだめなの?
kotaoue
1
370
20年以上続く PHP 大規模プロダクトを Kubernetes へ ── クラウド基盤刷新プロジェクトの4年間
oogfranz
PRO
0
100
WebアクセシビリティをCI/CDで担保する ― axe DevTools × Playwright C#実践ガイド
tomokusaba
2
190
スケールアップ企業でQA組織が機能し続けるための組織設計と仕組み〜ボトムアップとトップダウンを両輪としたアプローチ〜
tarappo
1
210
It’s “Time” to use Temporal
sajikix
3
230
Go 1.26 Genericsにおける再帰的型制約 / Recursive Type Constraints in Go 1.26 Generics
ryokotmng
0
140
Keycloak を使った SSO で CockroachDB にログインする / CockroachDB SSO with Keycloak
kota2and3kan
0
170
大規模ECサイトのあるバッチのパフォーマンスを改善するために僕たちのチームがしてきたこと
panda_program
1
200
AI時代のSaaSとETL
shoe116
1
190
Windows ファイル共有(SMB)を再確認する
murachiakira
PRO
0
200
実践 Datadog MCP Server
nulabinc
PRO
2
250
ソフトバンク流!プラットフォームエンジニアリング実現へのアプローチ
sbtechnight
1
220
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.5k
The Cost Of JavaScript in 2023
addyosmani
55
9.8k
Six Lessons from altMBA
skipperchong
29
4.2k
KATA
mclloyd
PRO
35
15k
My Coaching Mixtape
mlcsv
0
79
Faster Mobile Websites
deanohume
310
31k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
160
WENDY [Excerpt]
tessaabrams
9
37k
Building the Perfect Custom Keyboard
takai
2
710
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.2k
Transcript
高速で安全な2者間のECDSA署名
1 Bitcoinの通常の2-of-2マルチシグ Bitcoinを使用する際に複数個の署名を必要とする仕組み 2人の署名があればBitcoinを使用できる アリス ボブ 2 <アリスの公開鍵> <ボブの公開鍵> 2 CHECKMULTISIG 2-of-2のマルチシグスクリプト scriptPubKey 0 <アリスの署名> <ボブの署名>
scriptSig
2 ECDSA Signature • 秘密鍵: x • 公開鍵: P =
xG • メッセージ: m • ハッシュ関数: H() 【署名の生成】 1. ランダムなnonce k を選択。 2. kを秘密鍵とした楕円曲線上の点 R = kGを計算。 3. 点Rのx座標をrとする。 4. を計算 5. 生成した (r, s)がECDSAの署名データ。 【署名の検証】
3 Yehuda Lindellのペーパー
4 ECDSAでマルチシグを構成するポイント 署名(r, s)の内、秘密鍵を使った計算をするのはsの計算↓ 秘密鍵xを2者の秘密鍵から計算する値にすると、署名は単 一だが、有効な署名を生成するためには2者の秘密鍵を必 要とするマルチシグを構成することができる。 x = アリスの秘密鍵
× ボブの秘密鍵 ※両者がお互い自分の秘密鍵を明らかにすることなく sを計算できる必要がある
鍵ペア P1 = x1G nonce R1 = k1G 5 コインのロック
Pにロックされたコインをアンロックするすためには が計算できればいい 鍵ペア P2 = x2G nonce R2 = k2G P1, R1, P2, R2を共有 P = x1 ・ P2 を計算 R = k1 ・R2 を計算 P = x2 ・ P1 を計算 R = k2 ・R1 を計算 計算した点Pと点Rはそれぞれ同じ点になる P宛にコインを送金するとマルチシグへのロックとなる
6 秘密計算で署名データを計算 ①アリスは、Paillier暗号用の鍵ペアを生成(priv, pub) ※Paillier暗号は加法準同型性がある暗号スキーム ②pubを使ってアリスの秘密鍵x1を暗号化Enc(x1)し、 pubと一緒にボブに送信 Enc(x1) pub ③
ボブは、以下の計算をしてpubで暗号化 Enc(x1)を使って以下を計算 c3 = c1⊕c2を計算して、アリスに送る。 ④ アリスはc3を復号して s’ を計算 ⑤ s’にk1^-1を掛けるとアンロックに必要な署名値 s が手に入る 両者ともに秘密鍵 x1, x2を明らかにすることなく、 マルチシグのアンロックに必要な署名値を計算できる 1
7 ECDSAベースのマルチシグのメリット • プライバシーの向上 ロックスクリプトも通常のP2PKHやP2WPKHのように単一の公開鍵への ロックとなるため、マルチシグを利用したコントラクトであることは当事者 以外分からない。 • データサイズの削減 通常のマルチシグの場合、1つの署名データにつき73バイトのデータを
必要とするが、Lindellのマルチシグでは単一の署名データになるため、 その分トランザクションサイズが削減され、ブロックチェーンのスペースも 削減できる。 • さまざまなコントラクトへの適用 Lightning Network(Multi-Hop Locks)やAdaptor Signatureを利用した Atomic SwapなどScriptlessなコントラクトに(Schnorrを待たずとも) 今すぐ適用可能。