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
Adaptor Signatureを利用した Atomic Swap - ECDSA 版 -
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
shigeyuki azuchi
January 24, 2019
Technology
240
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Adaptor Signatureを利用した Atomic Swap - ECDSA 版 -
GBEC動画解説コンテンツのスライドです。
https://goblockchain.network/2019/01/adaptor_signature-ecdsa/
shigeyuki azuchi
January 24, 2019
More Decks by shigeyuki azuchi
See All by shigeyuki azuchi
SLH-DSA (SPHINCS+)
azuchi
0
9
Hyper Tree
azuchi
0
18
FORS
azuchi
0
30
クラスターmempool
azuchi
0
42
W-OTS+
azuchi
0
49
Shorのアルゴリズム
azuchi
0
71
DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures
azuchi
0
55
Fiat-Shamir変換と注意点
azuchi
0
260
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
69
Other Decks in Technology
See All in Technology
その Lambda、8分で 管理者権限まで奪われます
k1nakayama
3
1.7k
事業課題から技術的負債に向き合う
sansantech
PRO
2
1.9k
【技術的負債conf】事業成長に伴う技術的負債の説明責任とAIによるモニタリング、認知的負債について
i35_267
3
1.6k
2026_devsumi_ozono.pdf
o3
3
510
すぐできる衛星通信対応 あとは山奥に行くだけ
tatetate55
0
130
現場で役立つ技術負債の効果的な返済方法
masuda220
PRO
8
4.2k
登壇の自信を奪う3匹のオバケ / 3 Ghosts That Rob You of Your Confidence in Public Speaking
pauli
9
960
2026-09-18 gotanda.sre Terraformで複数環境作ったり、複数Stateに分割したりそれとTerragrunt / Terraform multi envs and multi states
masasuzu
1
410
Claude in Chrome 入門 / Introduction to Claude in Chrome
cielo1985
0
830
What the customer really needed
kawaguti
PRO
3
190
品質と信頼性を地続きにする
grimoh
0
450
越境するなら専門用語を使うな高校校歌 / If you wanna cross border, you shouldn't use jargon
vtryo
0
140
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Facilitating Awesome Meetings
lara
57
7.1k
From π to Pie charts
rasagy
1
370
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.2k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
240
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
How to Talk to Developers About Accessibility
jct
2
550
Amusing Abliteration
ianozsvald
1
300
Game over? The fight for quality and originality in the time of robots
wayneb77
1
280
Become a Pro
speakerdeck
PRO
31
6.3k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
660
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Transcript
Adaptor Signatureを利用した Atomic Swap - ECDSA 版 -
1 Scriptless Scripts with ECDSA 2018年4月にPedro Moreno-Sanchezらが ホワイトペーパーを公開 https://lists.linuxfoundation.org/pipermail/lightning-dev/attac hments/20180426/fe978423/attachment-0001.pdf
• 前提知識 ◦ Adaptor Signatureを利用したAtomic Swap - Schnorr版 - https://goblockchain.network/2018/12/adaptor_signature/ ◦ 高速で安全な2者間のECDSA署名 https://goblockchain.network/2018/10/ecdsa_2-of-2_multisig/
2 ECDSA署名 • 楕円曲線の生成点:G • 秘密鍵:x、公開鍵:P = xG • 暗号学的ハッシュ関数:
H • メッセージダイジェスト: m 【署名の生成】 • ランダムなnonce kを選択する。 • R = kGを計算する(Rは楕円曲線上の点)。 • 点Rのx座標をrとする。 • • (r, s)が署名データ 【署名の検証】 秘密鍵 x の情報を知らなければ、 この式を満たす s は導出できない。 を計算し、その点のx座標がrと 一致するか検証する。 sの構成上、Schnorr署名のような 線形性がないため、署名の集約 スキームは持たない。 を計算する。
3 Scriptless Multisig with ECDSA 鍵ペア P1 = x1G nonce
R1 = k1G 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宛にコインを送金するとマルチシグへのロックとなる
4 Adaptor Signature with Schnorr Adaptor SignatureはAtomic Swapで必要な ハッシュのプリイメージとコインの交換を代替する署名テクニック •
通常のSchnorr署名 (R, s): R = kG、s = k + H(P, R, m) x • Adaptor Signature (R, s’, T): R = kG, s’ = k + t + H(P, R, m) x, T = tG ※ Rは同じ値 t がハッシュのプリイメージの代替でランダムに選択した数値 Tはtを秘密鍵とした楕円曲線上の点=公開鍵でハッシュの役割をする Adaptor Signature s’とsが揃うとそこからtを計算できる。 t = s’ - s
5 Adaptor Signature with ECDSA ECDSAの署名データには線形性は無いので Rにシークレットの値を加味して、Atomic Swapを実現する • 通常のECDSA署名
(R, s’): R = kG、 • Adaptor Signature 署名生成時に選択するnonceにシークレットaを含める。 (R, s): R = akG, s’とsが揃うとそこからaを計算できる。 a = s’/ s
6 Adaptor Signatureを使ったAtomic Swap Bitcoin Litecoin • 鍵ペア P1 =
x1G • nonce R1 = k1G • Paillier暗号の鍵ペア (Priv, Pub) • 鍵ペア P2 = x2G • nonce R2 = k2G • 鍵ペア P4 = x4G • nonce R4 = k4G • 鍵ペア P3 = x3G • nonce R3 = k3G P = x1P2 = x2P1 ① 1 BTCをロック P’ = x3P4 = x4P3 ② 10 LTCをロック ③ ボブはランダムなシークレット aを選択し、 A = aGを計算し、アリスに送る。 ⑥ R'を使って R = k1R’ を計算する。 ⑥ ボブも R = (a * k2)R1を計算する。 Rのx座標をrとする。 ⑧ を計算し、 を計算し、C3をアリスに送る。 ④ Paillier暗号の公開鍵Pubでx1を 暗号化したckey = Enc(x1)を ボブに送る。 ⑤ R' = k2Aを計算してアリスに送る。 R ④ Paillier暗号の公開鍵Pubでx4を 暗号化したckey’ = Enc(x4)を ボブに送る。 ⑤ T’ = k3Aを計算してアリスに送る。 ⑥ T'を使って T = k4T’ を計算する。 ⑥ ボブも T = (a * k3)R4を計算する。 Tのx座標をtとする。 T C3 Tx(m) ⑦ BTCをボブに送るTxから 署名対象のメッセージ mを生成し共有 ⑦ LTCをアリスに送るTxから 署名対象のメッセージ m’を生成し共有 Tx(m’) ※ この時、R'、T'がAから算出されていることを 証明するゼロ知識証明を必要とする。 ※ RもTも同じシークレット aが使われていることが重要 有効な署名をそれぞれのチェーンで構成するにあたって aの知識が必要となる。
⑫ アリスはボブがブロードキャストした トランザクションから sの値が分かるので、 それとs’’を使ってシークレット aを計算する。 7 Adaptor Signatureを使ったAtomic Swap
Bitcoin Litecoin ⑪ s’’とシークレットaを使ってsを計算する。 算出した(r, s)がボブがBitcoinを受け取る トランザクションの有効な署名になる。 ボブはTx(m)をブロードキャストし、 BTCを手に入れる。 ⑩ C3を復号し、s’を得る。 s’とk1を使ってs’’を計算し、 ボブに送る。 ⑬ アリスはu’’とaを使って、アリスが Litecoinを受け取るトランザクションの 有効な署名を完成させる。 Tx(m) (r, s) a ⑨ を計算し、 を計算し、C3’をアリスに送る。 Tx(m’) (t, u) ⑩ C3’を復号し、u’を得る。 u’とk4を使ってu’’を計算する。 C3’
8 まとめ • Adaptor Signatureはハッシュのプリイメージの交換を 代替する署名エンコード • タイムロックの仕組みはないので、予めnLocktimeを セットした払い戻し用のトランザクションを準備しておく 必要がある。
• オンチェーン上では、単純なアドレス(P2PKHのような) 宛の送金トランザクションに見えるだけで、 Atomic Swapが行われたことは当事者以外分からない。 • スクリプトのサイズ分手数料が安価に。 • ECDSAで現時点で利用可能