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
200
高速で安全な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
Fiat-Shamir変換と注意点
azuchi
0
25
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
6
BIP-374 離散対数の等価性証明
azuchi
0
24
BIP-353 DNS Payment Instructions
azuchi
0
40
OP_CAT and Schnorr Trick
azuchi
0
35
Pay to Anchorと1P1Cリレー
azuchi
0
38
プロアクティブ秘密分散法
azuchi
0
54
v3トランザクションリレー
azuchi
0
57
ランポート署名
azuchi
0
100
Other Decks in Technology
See All in Technology
Agile PBL at New Grads Trainings
kawaguti
PRO
1
440
JTCにおける内製×スクラム開発への挑戦〜内製化率95%達成の舞台裏/JTC's challenge of in-house development with Scrum
aeonpeople
0
250
Android Audio: Beyond Winning On It
atsushieno
0
2.4k
ブロックテーマ時代における、テーマの CSS について考える Toro_Unit / 2025.09.13 @ Shinshu WordPress Meetup
torounit
0
130
AWSを利用する上で知っておきたい名前解決のはなし(10分版)
nagisa53
10
3.2k
CDK CLIで使ってたあの機能、CDK Toolkit Libraryではどうやるの?
smt7174
4
190
2025年夏 コーディングエージェントを統べる者
nwiizo
0
180
自作JSエンジンに推しプロポーザルを実装したい!
sajikix
1
190
会社紹介資料 / Sansan Company Profile
sansan33
PRO
6
380k
COVESA VSSによる車両データモデルの標準化とAWS IoT FleetWiseの活用
osawa
1
350
5年目から始める Vue3 サイト改善 #frontendo
tacck
PRO
3
230
ハードウェアとソフトウェアをつなぐ全てを内製している企業の E2E テストの作り方 / How to create E2E tests for a company that builds everything connecting hardware and software in-house
bitkey
PRO
1
160
Featured
See All Featured
Building an army of robots
kneath
306
46k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Statistics for Hackers
jakevdp
799
220k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.1k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Facilitating Awesome Meetings
lara
55
6.5k
Done Done
chrislema
185
16k
GitHub's CSS Performance
jonrohan
1032
460k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
850
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Faster Mobile Websites
deanohume
309
31k
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を待たずとも) 今すぐ適用可能。